补齐真实子画布端口与外部连线原子创建接口 #14

Merged
Zayden-Jung merged 1 commits from codex/canvas-connections into main 2026-11-06 11:39:53 +00:00
Collaborator

前端无法给没有现成端口的子画布节点新建外部连线:普通 Canvas PATCH 会拒绝端口变更,而现有接口只在迁移/移动内容时产生端口。

新增 POST B/connections,由两个真实端点的最近共同祖先画布协调。在同一事务内校验用户会话、完整父链权限和所有参与版本,逐层创建/复用稳定端口,并在共同祖先保存唯一一条带完整 V2 data 的连线。覆盖父子、兄弟和多层子图;普通 PATCH 的端口保护保持不变。

请求:{source:{board_id,node_id,handle},target:{board_id,node_id,handle},edge:{id,data?},expected_versions:{board_id:version}},要求 V2 Accept 和 UUID Idempotency-Key。201 返回 parent、所有参与 snapshots、实际存储的 connection.edge、created_ports 和7天 undo receipt。所有参与版本各增加一次;同 key 同 body 重试不重复创建。现有 undo 接口可原子撤销新建连线和新增端口。

拒绝错用共同祖先、无权/跨 workspace/无关画布、非法节点/handle、重复 edge ID、缺失或过期版本、端口/节点/边/快照超限,失败不残留端口、连线、版本或 receipt。capabilities.subgraphs.connections 标明能力。README 提供最终请求/响应、错误、版本吸收和撤销契约,前端无需自行生成或 PATCH frame.ports。

验证:在用户确认的 ECS runner 上运行全量 Go 测试、Linux 构建及隔离 PostgreSQL 迁移/集成测试。新增覆盖多层双向端口链、端口复用/碰撞/容量、完整快照和样式保留、撤销/redo、四个并发相同 key、缺失/过期版本、权限和跨 workspace 拒绝、容量整体回滚,以及新端口链能被实际 AI reader 解析。本机未编译构建。

本 PR 不包含前端变更或真实画布修改;合并部署前,新接口尚不可在线调用。Base main,head codex/canvas-connections,等待用户手动合并,不代为合并。

前端无法给没有现成端口的子画布节点新建外部连线:普通 Canvas PATCH 会拒绝端口变更,而现有接口只在迁移/移动内容时产生端口。 新增 `POST B/connections`,由两个真实端点的最近共同祖先画布协调。在同一事务内校验用户会话、完整父链权限和所有参与版本,逐层创建/复用稳定端口,并在共同祖先保存唯一一条带完整 V2 data 的连线。覆盖父子、兄弟和多层子图;普通 PATCH 的端口保护保持不变。 请求:`{source:{board_id,node_id,handle},target:{board_id,node_id,handle},edge:{id,data?},expected_versions:{board_id:version}}`,要求 V2 Accept 和 UUID Idempotency-Key。201 返回 parent、所有参与 snapshots、实际存储的 connection.edge、created_ports 和7天 undo receipt。所有参与版本各增加一次;同 key 同 body 重试不重复创建。现有 undo 接口可原子撤销新建连线和新增端口。 拒绝错用共同祖先、无权/跨 workspace/无关画布、非法节点/handle、重复 edge ID、缺失或过期版本、端口/节点/边/快照超限,失败不残留端口、连线、版本或 receipt。capabilities.subgraphs.connections 标明能力。README 提供最终请求/响应、错误、版本吸收和撤销契约,前端无需自行生成或 PATCH frame.ports。 验证:在用户确认的 ECS runner 上运行全量 Go 测试、Linux 构建及隔离 PostgreSQL 迁移/集成测试。新增覆盖多层双向端口链、端口复用/碰撞/容量、完整快照和样式保留、撤销/redo、四个并发相同 key、缺失/过期版本、权限和跨 workspace 拒绝、容量整体回滚,以及新端口链能被实际 AI reader 解析。本机未编译构建。 本 PR 不包含前端变更或真实画布修改;合并部署前,新接口尚不可在线调用。Base main,head codex/canvas-connections,等待用户手动合并,不代为合并。
codex-bot added 1 commit 2026-11-06 11:38:27 +00:00
Add atomic connections across canvas subgraph boundaries
Foundry Go checks / check (push) Failing after 10m4s
Foundry Go checks / check (pull_request) Successful in 7m53s
07fd678cf3
Zayden-Jung merged commit 630ed42d53 into main 2026-11-06 11:39:53 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayden-Jung/foundry-core#14