实现 Canvas V2:真实子画布、异步 AI 与受管图片资产 #12

Merged
Zayden-Jung merged 1 commits from codex/canvas-v2 into main 2026-11-06 10:48:55 +00:00
Collaborator

本轮实现 Canvas V2 后端契约:旧客户端对 V2 明确拒绝;新客户端可无损保存连线样式、动画和贝塞尔链。框对应真实 child board,成员与内部边只归属子画布,跨边界连接使用稳定端口。

实现范围:

  • 新增子图、跨画布事务/撤销、资产与 AI runs/steps/events 数据库迁移;原子创建、显式旧框迁移、父子/兄弟移动、解散和撤销,校验所有参与版本、唯一归属、循环/深度/容量与父链权限。
  • 新增用户会话模型目录、图片上传/鉴权下载、异步文本/真实图像生成、可恢复事件轮询、活动任务查询、取消和冲突结果显式应用。任务冻结输入,按内容/配置指纹局部回写,保留用户几何编辑;持久队列租约避免重启后重复执行,已明确拒绝的 worker 并发请求安全退回队列。
  • 子图端口展开为逻辑 DAG,按拓扑依赖执行并支持部分失败、静态输入与跨图传播;只读取执行涉及的子画布。
  • Codex worker 以私有 Unix socket 返回真实图片字节,独立临时任务目录与受限工具;不向浏览器暴露服务令牌、CLI 日志或登录文件。图片模型仅由实际验证后的运维配置启用。
  • 发布脚本配套更新 worker、验证模型目录,并在启动失败时恢复旧 worker;内存限制调整至 1 GiB。README 提供最终接口、限制、保留期、取消语义及登录会话 curl 示例。

验证:用户确认的 ECS runner aliyun-ces-control(ces-control:host)已运行 Go 全量测试、Linux 构建、隔离 PostgreSQL 迁移/重复迁移/权限检查与数据库集成验收。本机未编译。覆盖并发相同 key 仅建一个 child、事务失败回滚、V1/V2兼容、移动/解散/撤销、资源越权、AI 幂等与事件重放、迟到结果/取消/撤权、忙碌重排队、独立分支失败和循环拒绝。

另于 2026-11-06 在 ECS 隔离环境真实调用已部署 Codex CLI:文本模型 codex-18061daa6ba6e3a576dda453d0df839f;图片模型 codex-42cfda1d607e416417a1a0ac5c73d437。实际图片 PNG 1254×1254、857723 bytes,经 Core 受管资产接口鉴权重读。真实模型测试为显式运维测试,不在普通 CI 自动付费调用,临时记录已清理;生产应查询实时目录。

尚未完成:生产部署,以及用户指定画布 workspace-8d775c90-74c9-4109-a1ad-6d0ad3a00ac7/canvas-a9f9a985-e99a-43eb-b088-7edc9301452f 的实际迁移与重读证据。只在本 PR 人工合并、部署成功后对该画布执行显式 dry-run/迁移,不扩展到其他账号资源。当前前端尚未接入 V2,不能将本 PR 描述为整体验收完成或已上线。

Base: main;head: codex/canvas-v2。等待用户手动合并;bot 不合并、不自动合并、不直接推送 main。

本轮实现 Canvas V2 后端契约:旧客户端对 V2 明确拒绝;新客户端可无损保存连线样式、动画和贝塞尔链。框对应真实 child board,成员与内部边只归属子画布,跨边界连接使用稳定端口。 实现范围: - 新增子图、跨画布事务/撤销、资产与 AI runs/steps/events 数据库迁移;原子创建、显式旧框迁移、父子/兄弟移动、解散和撤销,校验所有参与版本、唯一归属、循环/深度/容量与父链权限。 - 新增用户会话模型目录、图片上传/鉴权下载、异步文本/真实图像生成、可恢复事件轮询、活动任务查询、取消和冲突结果显式应用。任务冻结输入,按内容/配置指纹局部回写,保留用户几何编辑;持久队列租约避免重启后重复执行,已明确拒绝的 worker 并发请求安全退回队列。 - 子图端口展开为逻辑 DAG,按拓扑依赖执行并支持部分失败、静态输入与跨图传播;只读取执行涉及的子画布。 - Codex worker 以私有 Unix socket 返回真实图片字节,独立临时任务目录与受限工具;不向浏览器暴露服务令牌、CLI 日志或登录文件。图片模型仅由实际验证后的运维配置启用。 - 发布脚本配套更新 worker、验证模型目录,并在启动失败时恢复旧 worker;内存限制调整至 1 GiB。README 提供最终接口、限制、保留期、取消语义及登录会话 curl 示例。 验证:用户确认的 ECS runner `aliyun-ces-control`(`ces-control:host`)已运行 Go 全量测试、Linux 构建、隔离 PostgreSQL 迁移/重复迁移/权限检查与数据库集成验收。本机未编译。覆盖并发相同 key 仅建一个 child、事务失败回滚、V1/V2兼容、移动/解散/撤销、资源越权、AI 幂等与事件重放、迟到结果/取消/撤权、忙碌重排队、独立分支失败和循环拒绝。 另于 2026-11-06 在 ECS 隔离环境真实调用已部署 Codex CLI:文本模型 `codex-18061daa6ba6e3a576dda453d0df839f`;图片模型 `codex-42cfda1d607e416417a1a0ac5c73d437`。实际图片 PNG 1254×1254、857723 bytes,经 Core 受管资产接口鉴权重读。真实模型测试为显式运维测试,不在普通 CI 自动付费调用,临时记录已清理;生产应查询实时目录。 尚未完成:生产部署,以及用户指定画布 `workspace-8d775c90-74c9-4109-a1ad-6d0ad3a00ac7/canvas-a9f9a985-e99a-43eb-b088-7edc9301452f` 的实际迁移与重读证据。只在本 PR 人工合并、部署成功后对该画布执行显式 dry-run/迁移,不扩展到其他账号资源。当前前端尚未接入 V2,不能将本 PR 描述为整体验收完成或已上线。 Base: main;head: codex/canvas-v2。等待用户手动合并;bot 不合并、不自动合并、不直接推送 main。
codex-bot added 1 commit 2026-11-06 10:36:25 +00:00
Implement Canvas V2 subgraphs, assets and asynchronous AI execution
Foundry Go checks / check (push) Successful in 2m40s
Foundry Go checks / check (pull_request) Successful in 2m36s
d6ee8942f1
Zayden-Jung merged commit b4e537b4ad into main 2026-11-06 10:48:55 +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#12