game agent无限画布开发 #136

Merged
kdletters merged 73 commits from codex/infinite-canvas into master 2026-08-12 10:54:16 +08:00
Contributor

主要工作是共享同一套“画布内核与通用 UI 源码”,网站和 Tauri 只分别实现宿主适配层。

主要工作是共享同一套“画布内核与通用 UI 源码”,网站和 Tauri 只分别实现宿主适配层。
menghao self-assigned this 2026-08-05 12:49:31 +08:00
menghao added this to the 陶泥儿gameAgent project 2026-08-05 12:49:31 +08:00
menghao requested review from kdletters 2026-08-05 12:49:31 +08:00
kdletters changed target branch from codex/resource-management to master 2026-08-05 19:15:48 +08:00
kdletters added 40 commits 2026-08-05 19:15:48 +08:00
实现资源依赖关系图层
Project CI / Frontend tests (pull_request) Successful in 2m40s
Project CI / Native shell tests (pull_request) Successful in 10m40s
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Backend tests (pull_request) Failing after 7s
8531a9af3e
新增资源依赖图模型、去重、环检测与上下游查询。

使用原生 SVG 渲染资源引用和聚合任务流,并接入搜索、高亮、拖动及生命周期清理。

修复资源自引用连线被卡片遮挡的问题。

补充前端回归测试并同步工作台 PRD、技术方案和决策记录。
合并最新 AI 游戏创作 App 分支
Project CI / Frontend tests (pull_request) Successful in 3m18s
Project CI / Repository checks (pull_request) Failing after 22s
Project CI / Backend tests (pull_request) Failing after 22s
Project CI / Native shell tests (pull_request) Failing after 22s
0b6be155dd
合并最新 master 并解决资源依赖图冲突
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Frontend tests (pull_request) Failing after 2m19s
Project CI / Backend tests (pull_request) Failing after 8s
Project CI / Native shell tests (pull_request) Successful in 12m34s
68ea9bdff3
同步 mentor 已合入 master 的最新工程改动。

保留资源依赖图决策记录并整合 master 的新增决策。

# Conflicts:
#	docs/project-memory/shared-memory/decision-log.md
同步最新 master 修复 CI 基线
Project CI / Repository checks (pull_request) Successful in 1m15s
Project CI / Frontend tests (pull_request) Successful in 3m23s
Project CI / Native shell tests (pull_request) Successful in 11m51s
Project CI / Backend tests (pull_request) Failing after 2m47s
246fd1d9d6
合并画板素材上传后的私有图片预览修复。

确保 PR 分支包含当前 master 基础提交。
修复后端源码约束测试
Project CI / Native shell tests (pull_request) Successful in 11m56s
Project CI / Repository checks (pull_request) Successful in 59s
Project CI / Frontend tests (pull_request) Successful in 3m35s
Project CI / Backend tests (pull_request) Successful in 3m49s
11140b9fb6
同步 UI 素材切片持久化失败断言至现有 warning 映射函数
保持生产逻辑和持久层不变
合并最新 master 并解决依赖图文档冲突
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / Backend tests (pull_request) Successful in 3m37s
Project CI / Native shell tests (pull_request) Successful in 12m20s
Project CI / Repository checks (pull_request) Successful in 59s
a431ab47cd
保留资源依赖图的纯前端 SVG 决策记录
保留主分支新增的抠图元数据与 OpenAPI 决策记录
同步 master 最新代码并保持依赖图与后端测试修复
优化资源依赖图连线外观
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m5s
Project CI / Native shell tests (pull_request) Successful in 10m26s
f582ecf032
将任务流分支改为平滑贝塞尔曲线
调整两类连线的线宽、虚线和箭头样式
补充连线几何测试与相关文档
将资源依赖图计算迁移到Rust
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 7s
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / Native shell tests (pull_request) Successful in 11m33s
29dce59b35
新增只读资源依赖图模型,完成过滤、去重、环检测和任务流聚合
前端SVG仅负责几何渲染、搜索联动、选中高亮和拖动预览
补充资源图、覆盖层和工作台回归测试
同步更新工作台PRD、技术方案与项目记忆
合并最新master并解决资源图冲突
Project CI / Repository checks (pull_request) Failing after 47s
Project CI / Frontend tests (pull_request) Successful in 3m21s
Project CI / Backend tests (pull_request) Successful in 3m49s
Project CI / Native shell tests (pull_request) Successful in 11m42s
e77d187497
合并远端master的运行收口、聊天输出与画布交互更新
保留资源依赖图只读命令注册和Rust测试隔离配置
解决main.rs入口附近的内容冲突
完成依赖图、退出保护及完整前端回归验证
修复合并后的前端Lint门禁
Project CI / Repository checks (pull_request) Successful in 55s
Project CI / Frontend tests (pull_request) Successful in 2m55s
Project CI / Native shell tests (pull_request) Successful in 11m45s
Project CI / Backend tests (pull_request) Successful in 3m54s
cced839da5
稳定项目总控响应流更新回调并补齐Effect依赖
调整Agent Runtime模型测试的导入顺序
通过完整ESLint、类型检查和AppSurface回归测试
合并game-chat五分钟首版与平台美术硬门更新
解决App响应流Hook的等价内容冲突
稳定新增消息追加回调并整理合并后的导入顺序
通过前端完整测试、Lint、类型检查和Rust tests编译
合并最新master并解决工作台冲突
Project CI / Repository checks (pull_request) Successful in 1m17s
Project CI / Frontend tests (pull_request) Successful in 3m13s
Project CI / Backend tests (pull_request) Successful in 3m45s
Project CI / Native shell tests (pull_request) Failing after 5m39s
37f4a63112
合并 master 最新游戏聊天前端 Lint 修复。

保留依赖图分支的 Hook 稳定化逻辑并统一注释格式。
修复资源依赖图布局初始化与拖动性能
Project CI / Repository checks (pull_request) Successful in 1m0s
Project CI / Frontend tests (pull_request) Successful in 3m4s
Project CI / Backend tests (pull_request) Successful in 3m29s
Project CI / Native shell tests (pull_request) Failing after 5m34s
05c608214e
将任务依赖深度迁移到 Rust SCC 压缩图并返回稳定结果

为 dependency 模式增加图加载屏障并重派生自动布局

通过 DOM 热路径和局部 SVG 缓存避免拖动全量 React 重渲染

补充 4096 资源、异步初始化及布局保持回归测试

同步工作台 PRD、技术方案与共享项目记忆
修复运行时恢复路径栈溢出
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 2m51s
Project CI / Native shell tests (pull_request) Failing after 7m51s
7f038490f1
为 pending continuation 与后台主循环增加可取消的 Tokio 任务边界
保留 durable batch 恢复防重和父任务取消语义
补充运行时技术约束与共享排障记录
Merge branch 'master' into codex/dependency-graph
Project CI / Repository checks (pull_request) Successful in 54s
Project CI / Frontend tests (pull_request) Failing after 2m9s
Project CI / Backend tests (pull_request) Successful in 3m46s
Project CI / Native shell tests (pull_request) Failing after 3m4s
b95da30721
修复Linux进程树探活与Runtime默认栈溢出
Project CI / Repository checks (pull_request) Successful in 1m7s
Project CI / Frontend tests (pull_request) Successful in 3m0s
Project CI / Backend tests (pull_request) Successful in 3m32s
Project CI / Native shell tests (pull_request) Failing after 7m38s
bda0d0d398
Linux进程组探活忽略已终止但未回收的zombie成员

pending恢复与后续队列统一跨越装箱的Tokio任务边界

补充Tauri生命周期和Runtime默认栈回归测试与文档
同步自主首批任务图测试夹具
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Successful in 2m46s
Project CI / Native shell tests (pull_request) Successful in 10m54s
d8064eff49
补齐可信 Supervisor 根任务与三 Leader 首批合同测试数据

更新视觉失败和 Ready 任务调度断言以匹配最新任务图

修复 Provider 重试恢复响应仍使用旧底层 Agent 合同的问题
Merge remote-tracking branch 'origin/master' into codex/dependency-graph
Project CI / Repository checks (pull_request) Successful in 1m3s
Project CI / Frontend tests (pull_request) Failing after 2m7s
Project CI / Backend tests (pull_request) Successful in 3m25s
Project CI / Native shell tests (pull_request) Successful in 10m41s
c24e3010f8
暂缓资源卡拖动并统一资源管理合同
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Failing after 2m18s
Project CI / Native shell tests (pull_request) Successful in 11m37s
7339bb5da1
移除资源卡 Pointer 拖动入口并保留点击详情
改写交互与布局测试,覆盖指针不改坐标且不提交 CAS
同步工作台 PRD、技术方案和项目决策记录
完成资源分类投影与中央聚焦
Project CI / Repository checks (pull_request) Failing after 49s
Project CI / Frontend tests (pull_request) Failing after 2m16s
Project CI / Backend tests (pull_request) Successful in 3m55s
Project CI / Native shell tests (pull_request) Successful in 11m17s
2c65878b60
收口文档、版本、美术和音频资源分类
将资源详情改为中央主视窗聚焦并恢复列表上下文
补充资源身份、聚焦状态和依赖图回归测试
同步工作台PRD、技术方案和项目决策记录
完成资源聚焦阶段四
Project CI / Repository checks (pull_request) Successful in 1m16s
Project CI / Frontend tests (pull_request) Failing after 2m37s
Project CI / Backend tests (pull_request) Successful in 3m29s
Project CI / Native shell tests (pull_request) Successful in 11m21s
d374f3292a
新增项目文档与媒体资源安全读取命令
补齐Markdown、扩展美术媒体与音频聚焦展示
增加安全边界与工作台回归测试
同步PRD、技术方案与共享决策
完成资源依赖排列阶段五
Project CI / Frontend tests (pull_request) Failing after 21s
Project CI / Repository checks (pull_request) Successful in 1m1s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Native shell tests (pull_request) Successful in 11m49s
ba996aad80
计算资源引用 SCC 与任务深度下限
拆分 producer assignment 和布局深度合同
补齐依赖布局回归测试
同步工作台 PRD、技术方案与项目记忆
完成正式项目版本阶段六
Project CI / Repository checks (pull_request) Failing after 43s
Project CI / Frontend tests (pull_request) Failing after 2m6s
Project CI / Backend tests (pull_request) Successful in 3m37s
Project CI / Native shell tests (pull_request) Successful in 11m49s
fef53b634e
扩展 manifest 正式迭代版本合同并强制历史记录追加不可变
接入版本卡、父子关系与绑定资源高亮
补齐共享契约、Tauri 存储与工作台回归测试
同步工作台 PRD、技术方案与项目记忆
同步 Runtime、外部 API 与统一弹窗等主分支更新

解决开发栈进程探活、Runtime continuation 与启动测试冲突

保留资源依赖图排障记忆并验证冲突路径
完成资源管理阶段七验收
Project CI / Repository checks (pull_request) Successful in 1m1s
Project CI / Backend tests (pull_request) Successful in 3m43s
Project CI / Native shell tests (pull_request) Successful in 10m47s
Project CI / Frontend tests (pull_request) Failing after 1m41s
80bcb4ba0e
补齐视频与资源读取失败空态测试
完成全量前后端和 Rust CI 验收
修复 macOS/BSD 跨平台门禁与测试隔离
更新阶段七验收与共享项目记忆
修复前端异步读取卸载竞态
Project CI / Repository checks (pull_request) Successful in 55s
Project CI / Backend tests (pull_request) Successful in 4m13s
Project CI / Native shell tests (pull_request) Successful in 11m16s
Project CI / Frontend tests (pull_request) Successful in 2m29s
6d8c7ae496
未登录画布不再触发受保护的钱包刷新
充值中心读取在换代与卸载时中止并失效
补充卸载取消回归测试与共享排障经验
调整资源依赖视图连线规则
Project CI / Repository checks (pull_request) Failing after 48s
Project CI / Backend tests (pull_request) Failing after 29s
Project CI / Frontend tests (pull_request) Successful in 2m54s
Project CI / Native shell tests (pull_request) Successful in 10m33s
ab16c87c5d
限制任务虚线仅在同资源类型分区内渲染
调亮精确资源引用橙线并保持持续展示
取消资源点击后的依赖高亮与无关连线弱化
补充依赖图单元测试与工作台集成测试
同步更新项目开发工作台 PRD
修复CI依赖准备顺序
Project CI / Repository checks (pull_request) Successful in 1m1s
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / Backend tests (pull_request) Successful in 3m48s
Project CI / Native shell tests (pull_request) Successful in 10m55s
2e0ef02fda
修复依赖图测试import排序门禁

在后端构建门禁前预取锁定Cargo依赖

新增Backend-CI执行顺序回归测试

同步更新Gitea-CI开发运维约定
拒绝维护目标符号链接并补充回归测试
为 manifest 写入增加跨进程锁与并发不可变校验
实时同步 Supervisor manifest 到资源、任务和版本工作台
在 Agent DB 截断时关闭不完整依赖推导
补齐依赖图文本等价、焦点恢复和对比度门禁
同步更新产品、技术、运维与项目记忆文档
合入画布副本持久化与素材类型覆盖变更
合入画布编辑器多行输入框样式调整
保留资源管理审核修复与项目记忆更新

# Conflicts:
#	docs/project-memory/shared-memory/decision-log.md
整理资源工作台与画布编辑模块导入顺序
移除画布测试未使用类型导入
等待最终化审计落盘后再断言后台恢复状态
合并最新主分支并同步资源管理修复
Project CI / Repository checks (pull_request) Failing after 42s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / Backend tests (pull_request) Successful in 4m14s
Project CI / Native shell tests (pull_request) Failing after 9m50s
d4e500f52e
合入智能体协作提示词与游戏验收边界更新
保留资源管理审核修复与合并后门禁整理

# Conflicts:
#	docs/project-memory/shared-memory/pitfalls.md
修复仓库门禁与Supervisor Prompt断言
Project CI / Frontend tests (pull_request) Successful in 3m3s
Project CI / Backend tests (pull_request) Successful in 3m30s
Project CI / Native shell tests (pull_request) Successful in 12m29s
Project CI / Repository checks (pull_request) Successful in 56s
4e70f3623b
修正Supervisor视图与Runtime模型测试的导入排序
对齐Project Supervisor静态测试与权威Prompt Bundle措辞
同步补充Prompt静态门禁技术约束
在首次创建临时文件前注册 set -u 安全的统一 EXIT 清理。

补充 marker 与公告页符号链接失败后的临时文件残留回归断言。

更新生产运维文档中的维护页临时文件安全边界。
保留 Rust manifest 与引用 read model 的合法依赖深度,仅关闭不完整 producer 审计数据。
补充模型、布局 Hook 与工作台截断回归,阻止自动布局扁平写回。
同步 PRD、技术方案和项目记忆中的跨层合同。
冻结客户端素材创作无限画布阶段一合同
Project CI / Frontend tests (pull_request) Failing after 20s
Project CI / Repository checks (pull_request) Successful in 1m5s
Project CI / Backend tests (pull_request) Successful in 3m27s
Project CI / Native shell tests (pull_request) Successful in 11m34s
3522285894
新增共享画布、宿主适配、草稿与正式资产提交的完整技术合同
同步工作台 PRD 与 AI 游戏创作 App 实施计划的产品范围
补充事务恢复、焦点竞态、状态机和验收矩阵
更新文档索引、决策记录与踩坑记忆
抽取网站与客户端共用的无限画布核心源码
Project CI / Repository checks (pull_request) Failing after 45s
Project CI / Frontend tests (pull_request) Successful in 2m56s
Project CI / Backend tests (pull_request) Successful in 3m35s
Project CI / Native shell tests (pull_request) Successful in 11m32s
a5a8a6b085
迁移画布交互模型、历史与舞台控制到共享 core
迁移画布视口、世界、图层、框选、小地图和 portal 到共享 React
让主站通过兼容导出和共享组件消费唯一实现
补齐 Web Host Port 边界与 Tauri 共享源码构建配置
增加双实例、重复挂载和核心交互回归测试
同步无限画布阶段二实施边界与项目记忆
完成客户端素材创作无限画布阶段三闭环
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Failing after 20s
Project CI / Native shell tests (pull_request) Successful in 11m31s
02b16ae8ad
新增客户端共享画布宿主适配与独立创作界面
实现草稿并发保存、恢复副本和本地媒体安全校验
实现项目写锁内的可恢复素材提交与清单登记
补齐非破坏精修、幂等并发和故障恢复测试
同步阶段三技术方案与团队共享记忆
完成素材无限画布阶段四资源总览实时闭环
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Failing after 20s
Project CI / Native shell tests (pull_request) Successful in 12m15s
c633b1d2af
同步资源总览稳定基线并接入新增与精修入口
实现 revision 单调合并、事件去重和旧 scope 隔离
补齐依赖图、双布局协调和三阶段一次性聚焦
覆盖保存、项目切换、搜索隐藏及异步竞态测试
同步阶段四技术方案、决策记录和排障经验
完成客户端素材画布阶段五真实图片生成闭环
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Failing after 19s
Project CI / Native shell tests (pull_request) Successful in 12m20s
c776f9225b
通过共享生成端口接入 External Editor 图片生成与精修
建立稳定生成幂等身份和私有可恢复账本
复用正式资产事务及资源投影布局选择链路
补齐取消迟到、重复完成、重启恢复和隐私隔离测试
同步更新素材画布技术合同与项目共享记忆
menghao added 1 commit 2026-08-06 10:12:33 +08:00
完成素材无限画布最终审计与恢复安全收口
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Failing after 19s
Project CI / Native shell tests (pull_request) Successful in 12m10s
050d06ddb5
同步资源管理最新稳定的 manifest relay、Runner 重挂与 MCP 域名修复
统一网站与 Tauri 的共享画布 history、缩放恢复和宿主边界
移除生成账本中的临时上传凭证与 Provider 敏感字段
补齐事务快照发布前故障恢复和同幂等身份重放
更新最终 PRD、技术方案、decision-log 与 pitfalls
补齐前端、Tauri Rust、竞态、锁、恢复和原生壳门禁
menghao added 1 commit 2026-08-06 12:54:44 +08:00
统一主站画布共享视觉组件
Project CI / Repository checks (pull_request) Failing after 8s
Project CI / Backend tests (pull_request) Failing after 8s
Project CI / Frontend tests (pull_request) Successful in 2m55s
Project CI / Native shell tests (pull_request) Successful in 13m59s
f9847c8f15
新增共享画布按钮、工具栏、分组与分隔符及作用域样式
主站图片画布默认动作与底部工具栏改用共享实现
补齐 UI 对齐合同、决策记录和定向测试
menghao added 1 commit 2026-08-06 13:01:22 +08:00
修复素材画布登录态生成闭环
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Frontend tests (pull_request) Failing after 2m23s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Native shell tests (pull_request) Failing after 29s
f4fed35660
复用客户端登录态与服务端环境配置,移除客户手填 API Key 的生成路径。

补齐外部生成幂等查询、泥点扣费结果回填与失败错误映射。

修复确认生成后返回原界面的问题,并完善生成中、成功和失败状态展示。

更新契约、测试、技术方案、PRD 与项目决策记录。
menghao added 1 commit 2026-08-06 13:31:11 +08:00
完成 Game Agent 画布 UI 对齐
Project CI / Repository checks (pull_request) Failing after 7s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / Frontend tests (pull_request) Failing after 2m11s
Project CI / Native shell tests (pull_request) Failing after 3m59s
0c0e7f6382
中央素材画布接入共享 chrome 与平台主题 token
统一 Supervisor、主视窗和 Agent Dock 的横屏布局
补齐按钮状态、非裁剪和 1280×800 布局测试
同步技术方案、PRD 与项目长期记忆
menghao added 1 commit 2026-08-06 15:15:09 +08:00
修复素材画布保存区与项目状态展示
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 7s
Project CI / Frontend tests (pull_request) Failing after 5m5s
Project CI / Native shell tests (pull_request) Failing after 6m16s
ad7b8095cd
调整素材保存区响应式布局,固定资源用途并保留精修继承语义。
收口普通用户项目路径展示,补充画布与工作台回归测试。
同步更新技术方案、产品需求文档与项目长期记忆。
menghao added 1 commit 2026-08-06 15:43:49 +08:00
修复素材画布保存栏排版
Project CI / Backend tests (pull_request) Failing after 8s
Project CI / Frontend tests (pull_request) Failing after 2m19s
Project CI / Native shell tests (pull_request) Failing after 3m46s
Project CI / Repository checks (pull_request) Failing after 8s
3403855c7d
调整素材字段最小宽度与紧凑字号,确保标题完整显示。

补充保存栏布局和字体样式回归测试。

同步更新 AI 游戏创作画布视觉约束文档。
menghao added 1 commit 2026-08-06 16:02:49 +08:00
修复素材画布顶部设置越界
Project CI / Repository checks (pull_request) Failing after 8s
Project CI / Backend tests (pull_request) Failing after 8s
Project CI / Frontend tests (pull_request) Failing after 2m25s
Project CI / Native shell tests (pull_request) Failing after 3m50s
98d1e9252c
将画布工具与保存设置固定为纵向两层布局。

限制保存设置宽度并保证窄中央区完整显示。

补充布局回归测试并同步技术方案。
Author
Contributor

image.png image.png 生图功能正常

![image.png](/attachments/6f00b6d7-4ed8-4533-b903-00fbbe386899) ![image.png](/attachments/5bf3de06-d96b-43bc-aae5-16e8b8974a92) 生图功能正常
318 KiB
467 KiB
menghao added 2 commits 2026-08-07 10:18:08 +08:00
合并主线 Runtime、编辑器与 SpacetimeDB 最新改动
保留无限画布资源投影、布局与焦点恢复合同
统一共享画布历史和生成对话框类型
同步更新技术方案、项目记忆与回归测试
合并最新主线并统一画布素材合同
Project CI / Repository checks (pull_request) Successful in 1m10s
Project CI / Frontend tests (pull_request) Successful in 3m4s
Project CI / Backend tests (pull_request) Successful in 3m39s
Project CI / Native shell tests (pull_request) Successful in 13m22s
80c9317e4e
合并主线背景音乐与角色动作素材能力
保留无限画布共享渲染和历史恢复合同
统一正式序列帧与素材类型字段
补齐后端、SpacetimeDB 与 CI 回归验证
menghao marked the pull request as ready for review 2026-08-07 10:19:36 +08:00
kdletters requested changes 2026-08-07 18:31:19 +08:00
kdletters left a comment
Member

当前 head 的四组 CI 绑定正确且全绿,但仍有 4 个 P1,暂不能合并:

  1. 生成状态写入绕过草稿 CAS revision,旧 UI 快照可覆盖 accepted/running/reconciliation 状态。
  2. operation 已受理后遇到 401/403 会永久落为 Failed;重新登录重试会创建新任务,存在重复生成与重复扣费风险。
  3. 返回按钮会无确认 discard dirty 或已保存草稿。
  4. 图层选择与缩放只有 pointer 路径,键盘和辅助技术无法完成核心操作。

此外,master 已前进到 6c53eda71,当前 merge-tree 在 docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md 冲突;请融合最新 master、处理以上问题并在新 head 上重跑完整 CI。提交历史中的 c24e3010fb95da3072 为英文空正文,0b6be155d 为空正文,也请按仓库规范整理。

当前 head 的四组 CI 绑定正确且全绿,但仍有 4 个 P1,暂不能合并: 1. 生成状态写入绕过草稿 CAS revision,旧 UI 快照可覆盖 accepted/running/reconciliation 状态。 2. operation 已受理后遇到 401/403 会永久落为 Failed;重新登录重试会创建新任务,存在重复生成与重复扣费风险。 3. 返回按钮会无确认 discard dirty 或已保存草稿。 4. 图层选择与缩放只有 pointer 路径,键盘和辅助技术无法完成核心操作。 此外,master 已前进到 `6c53eda71`,当前 merge-tree 在 `docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md` 冲突;请融合最新 master、处理以上问题并在新 head 上重跑完整 CI。提交历史中的 `c24e3010f`、`b95da3072` 为英文空正文,`0b6be155d` 为空正文,也请按仓库规范整理。
@@ -0,0 +542,4 @@
draft.status = AssetCanvasDraftStatus::Generating;
}
draft.updated_at = now;
write_asset_canvas_draft_locked(root, &draft)?;
Member

[P1] 生成状态写入必须推进草稿 revision

upsert_public_generation_record 会修改 draft.generationsdraft.statusupdatedAt 后直接落盘,却没有推进 draft.revision。恢复或异步轮询写入新状态后,仍持有同一 revision 的旧 UI 快照可以继续通过 CAS,并把 accepted/running/reconciliation 状态覆盖掉。请让每次公开生成状态落账都严格推进 revision,并同步更新 ledger 后续 staging/commit 的 expected revision;前端也需要消费新 revision 或重新加载草稿。

**[P1] 生成状态写入必须推进草稿 revision** `upsert_public_generation_record` 会修改 `draft.generations`、`draft.status` 和 `updatedAt` 后直接落盘,却没有推进 `draft.revision`。恢复或异步轮询写入新状态后,仍持有同一 revision 的旧 UI 快照可以继续通过 CAS,并把 accepted/running/reconciliation 状态覆盖掉。请让每次公开生成状态落账都严格推进 revision,并同步更新 ledger 后续 staging/commit 的 expected revision;前端也需要消费新 revision 或重新加载草稿。
@@ -0,0 +1637,4 @@
fn classify_canvas_generation_error(error: &str) -> (bool, &'static str) {
if error.contains("authentication-required") {
return (false, "authentication-required");
Member

[P1] 已受理任务的鉴权失效不能永久终结为 Failed

这里把轮询阶段的 401/403 归为非 reconciliation,后续会写成 Failed,而恢复扫描又跳过所有 Failed ledger。此时远端 operation 可能已经受理且仍在执行;用户重新登录后只能用新的 generation/idempotency/commit 身份重试,可能产生第二个任务和第二次扣费。请保留原 operation 身份,进入可恢复的等待鉴权状态,并允许使用刷新后的登录态继续轮询同一 operation。

**[P1] 已受理任务的鉴权失效不能永久终结为 Failed** 这里把轮询阶段的 401/403 归为非 reconciliation,后续会写成 `Failed`,而恢复扫描又跳过所有 Failed ledger。此时远端 operation 可能已经受理且仍在执行;用户重新登录后只能用新的 generation/idempotency/commit 身份重试,可能产生第二个任务和第二次扣费。请保留原 operation 身份,进入可恢复的等待鉴权状态,并允许使用刷新后的登录态继续轮询同一 operation。
@@ -0,0 +1063,4 @@
return;
}
const epoch = epochRef.current;
void host.project
Member

[P1] 返回不能无确认丢弃 dirty 草稿

cancelCanvas 对除 saving 外的状态直接调用 discardDraft,没有检查 dirty,也没有“保留草稿并退出 / 确认放弃”的独立面板。用户在 180ms 自动保存窗口内点击返回会丢失内存修改;已经持久化的草稿也会被直接标为 cancelled。请按取消合同增加独立确认流程,并在选择保留时先 flush 或保留可恢复草稿。

**[P1] 返回不能无确认丢弃 dirty 草稿** `cancelCanvas` 对除 saving 外的状态直接调用 `discardDraft`,没有检查 dirty,也没有“保留草稿并退出 / 确认放弃”的独立面板。用户在 180ms 自动保存窗口内点击返回会丢失内存修改;已经持久化的草稿也会被直接标为 cancelled。请按取消合同增加独立确认流程,并在选择保留时先 flush 或保留可恢复草稿。
@@ -0,0 +1794,4 @@
layer={layer}
selected={selected}
aria-label={`图层 ${layer.title}`}
onPointerDown={(event: ReactPointerEvent<HTMLElement>) => {
Member

[P1] 核心画布交互缺少键盘路径

图层虽然使用原生 button,但这里只绑定 onPointerDown;Enter/Space 产生的 click 不会选中图层。缩放句柄同样只有 pointer handler,并以 role="button"tabIndex=0 嵌套在外层 button 中。请提供键盘选择和可操作的缩放替代入口,避免嵌套交互元素,并补 Enter/Space、焦点与辅助技术回归测试。

**[P1] 核心画布交互缺少键盘路径** 图层虽然使用原生 `button`,但这里只绑定 `onPointerDown`;Enter/Space 产生的 click 不会选中图层。缩放句柄同样只有 pointer handler,并以 `role="button"`、`tabIndex=0` 嵌套在外层 button 中。请提供键盘选择和可操作的缩放替代入口,避免嵌套交互元素,并补 Enter/Space、焦点与辅助技术回归测试。
menghao marked the pull request as work in progress 2026-08-10 10:05:44 +08:00
menghao added 2 commits 2026-08-10 12:08:42 +08:00
同步 origin/master 的场景、音效、运行时与后端原子提交改动

保留共享画布包导出并补齐场景、生成配方和历史动作类型

融合清单刷新测试、幂等请求、生成合同校验与项目记忆文档
支持画布编辑现有图片并保留原资源
Project CI / Repository checks (pull_request) Failing after 45s
Project CI / Frontend tests (pull_request) Failing after 2m3s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Native shell tests (pull_request) Successful in 13m33s
ea8e74dc2e
禁用资源新增入口并将现有图片资源接入编辑画布

提示词精修生成新图片并保留原图、原素材与来源血缘

同步生成阶段草稿版本并支持鉴权失败后的原操作恢复

补齐草稿退出确认、键盘可访问性、回归测试与工程文档
menghao added 1 commit 2026-08-10 15:20:01 +08:00
支持所有现有资源非破坏性编辑
Project CI / Repository checks (pull_request) Failing after 50s
Project CI / Frontend tests (pull_request) Failing after 2m8s
Project CI / Native shell tests (pull_request) Failing after 2m59s
Project CI / Backend tests (pull_request) Successful in 3m51s
fe02999904
前端统一现有资源编辑入口,按图片、视频、音频、文本、Agent 回执和版本分流。
Tauri 增加来源复核、稳定幂等、远端轮询、非破坏性派生与恢复账本。
服务端补齐资源编辑队列身份、视频音频幂等键和裁剪后的稳定完成结果。
同步共享合同、产品技术文档与定向回归测试。
menghao added 1 commit 2026-08-10 16:04:19 +08:00
修复客户端资源编辑参考媒体上传
Project CI / Repository checks (pull_request) Failing after 48s
Project CI / Frontend tests (pull_request) Failing after 2m10s
Project CI / Native shell tests (pull_request) Failing after 3m0s
Project CI / Backend tests (pull_request) Successful in 3m47s
f6732a9c97
图片精修改用合法私有上传命名空间
全类型本地媒体统一复用授权前缀
细分参考资源准备失败阶段并保持错误脱敏
补充上传确认顺序和非破坏性编辑回归测试
同步技术合同与项目共享记忆
menghao added 1 commit 2026-08-10 17:17:36 +08:00
切换客户端全类型资源编辑至External API
Project CI / Repository checks (pull_request) Failing after 48s
Project CI / Frontend tests (pull_request) Failing after 2m6s
Project CI / Native shell tests (pull_request) Failing after 2m57s
Project CI / Backend tests (pull_request) Successful in 3m46s
44d362c587
移除WebView登录Token读取及Tauri命令透传
统一图片视频音效和背景音乐的External v1调用链
严格校验202受理语义并保护历史站内账本
补齐凭据隔离非破坏性派生和视频端到端测试
同步客户端创作合同与项目共享记忆
menghao added 1 commit 2026-08-10 18:52:40 +08:00
修复资源编辑分支持续集成门禁
Project CI / Repository checks (pull_request) Successful in 1m17s
Project CI / Frontend tests (pull_request) Successful in 2m53s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Native shell tests (pull_request) Successful in 15m38s
bbff36c642
同步全类型资源投影与工具栏测试断言
补齐 HTML 文本资源预览回归
消除委派回执测试的异步唤醒竞态
更新资源编辑验证约定
menghao marked the pull request as ready for review 2026-08-10 19:08:51 +08:00
kdletters requested changes 2026-08-10 19:30:13 +08:00
kdletters left a comment
Member

请求修改。当前 head 已融合最新 master,merge-tree 无冲突,run 953 四项 CI 均绑定当前提交且全绿;旧 review 中的草稿 revision 推进、基础退出确认和键盘可访问性已有针对性修复,但当前仍存在七条会阻断正常创作或造成重复生成/扣费的 P1:任务图片正规化后把 task:* 误作 External 稳定引用;API Key 修正后无法恢复原 operation;非图片资源编辑没有跨重启恢复入口;长任务期间项目 revision 前进会让已付费结果永久无法提交;失败态返回仍会丢失 dirty 内存修改;Shift 单击多选被 pointerdown/click 双重切换抵消;生成遮罩只禁 pointer,键盘仍可修改画布并破坏生命周期。另有旧 generation 快照覆盖权威记录、派生视频无法再次编辑、版本派生缺少崩溃 journal、Tauri 滚轮语义漂移等 P2。请先修复这些恢复、CAS 和交互边界并补对应回归,再重新请求 review。正式门禁还需整理 145 文件的超大范围,以及 c24e3010f、b95da3072 的英文空正文标题和 0b6be155d 的空正文。

请求修改。当前 head 已融合最新 master,merge-tree 无冲突,run 953 四项 CI 均绑定当前提交且全绿;旧 review 中的草稿 revision 推进、基础退出确认和键盘可访问性已有针对性修复,但当前仍存在七条会阻断正常创作或造成重复生成/扣费的 P1:任务图片正规化后把 task:* 误作 External 稳定引用;API Key 修正后无法恢复原 operation;非图片资源编辑没有跨重启恢复入口;长任务期间项目 revision 前进会让已付费结果永久无法提交;失败态返回仍会丢失 dirty 内存修改;Shift 单击多选被 pointerdown/click 双重切换抵消;生成遮罩只禁 pointer,键盘仍可修改画布并破坏生命周期。另有旧 generation 快照覆盖权威记录、派生视频无法再次编辑、版本派生缺少崩溃 journal、Tauri 滚轮语义漂移等 P2。请先修复这些恢复、CAS 和交互边界并补对应回归,再重新请求 review。正式门禁还需整理 145 文件的超大范围,以及 c24e3010f、b95da3072 的英文空正文标题和 0b6be155d 的空正文。
@@ -0,0 +838,4 @@
.resource_id
.as_deref()
.map(str::trim)
.filter(|value| {
Member

[P1] task:* 不能直接作为 External 稳定引用

任务产物正规化会把 task:<taskId>:<path> 写入 manifest 的 source.resourceId,这里却只排除 local-asset:draft-media:,随后把 task:* 原样作为 sourceImageSrc。External 服务只解析当前账号的 objectKey、正式项目 resource ID 或素材 ID,因此“已完成任务图片 → 编辑资源 → refine”会在生成前稳定返回 400。请把 task:* 视为本地身份,走上传、confirm 后的 objectKey,并补该完整路径的端到端回归。

**[P1] `task:*` 不能直接作为 External 稳定引用** 任务产物正规化会把 `task:<taskId>:<path>` 写入 manifest 的 `source.resourceId`,这里却只排除 `local-asset:` 和 `draft-media:`,随后把 `task:*` 原样作为 `sourceImageSrc`。External 服务只解析当前账号的 objectKey、正式项目 resource ID 或素材 ID,因此“已完成任务图片 → 编辑资源 → refine”会在生成前稳定返回 400。请把 `task:*` 视为本地身份,走上传、confirm 后的 objectKey,并补该完整路径的端到端回归。
@@ -0,0 +1569,4 @@
ledger.error_code.as_deref().unwrap_or("generation-failed"),
));
}
let configuration_fingerprint = canvas_api_identity_fingerprint(api_base_url, api_mode);
Member

[P1] 修正 API Key 后必须能恢复原 operation

当前配置指纹同时包含 base URL 和 API Key。已受理 operation 在轮询阶段遇到 401/403 后虽然进入 ReconciliationRequired,但用户按提示修正或轮换 Key 时指纹必然变化,这里会在查询原 operation 前改写为 configuration-changed。原付费任务因此无法对账,只能新建 identity,仍有重复生成和重复扣费风险。请把凭据轮换与服务/账号身份分开,并验证新凭据仍由服务端 owner 边界授权后继续轮询同一 operation。

**[P1] 修正 API Key 后必须能恢复原 operation** 当前配置指纹同时包含 base URL 和 API Key。已受理 operation 在轮询阶段遇到 401/403 后虽然进入 `ReconciliationRequired`,但用户按提示修正或轮换 Key 时指纹必然变化,这里会在查询原 operation 前改写为 `configuration-changed`。原付费任务因此无法对账,只能新建 identity,仍有重复生成和重复扣费风险。请把凭据轮换与服务/账号身份分开,并验证新凭据仍由服务端 owner 边界授权后继续轮询同一 operation。
@@ -0,0 +1695,4 @@
None,
);
}
if current_revision.revision != input.expected_project_revision {
Member

[P1] 项目 revision 前进后不能永久丢弃已付费结果

前端在远端调用前冻结一次 expectedProjectRevision,同一 operation 的所有重试继续使用旧值。最长 35 分钟的生成期间,只要 Agent 或另一个窗口推进项目 revision,即使媒体已经远端完成、下载并进入 MediaDownloaded,这里也会永远报冲突;“使用原请求重试”仍带旧 revision,取消重开则会创建新 operation。请在保持源资源摘要/身份不变的前提下为已完成结果重新取得提交 CAS,或提供正式 reconciliation,而不是逼用户再次生成。

**[P1] 项目 revision 前进后不能永久丢弃已付费结果** 前端在远端调用前冻结一次 `expectedProjectRevision`,同一 operation 的所有重试继续使用旧值。最长 35 分钟的生成期间,只要 Agent 或另一个窗口推进项目 revision,即使媒体已经远端完成、下载并进入 `MediaDownloaded`,这里也会永远报冲突;“使用原请求重试”仍带旧 revision,取消重开则会创建新 operation。请在保持源资源摘要/身份不变的前提下为已完成结果重新取得提交 CAS,或提供正式 reconciliation,而不是逼用户再次生成。
@@ -0,0 +1153,4 @@
});
}, [exitActionPending, onCancel, persistDraft, stableScope.draftId]);
const requestCanvasExit = useCallback(() => {
Member

[P1] 失败态退出也必须保护未持久化修改

退出确认只在 canvas.editing && dirty 时打开。自动保存发生 revision conflict、IPC 或磁盘错误后,persistDraft 会把 lifecycle 改为 canvas.failed,但当前内存图层仍可能是 dirty;失败卡的“返回资源总览”会直接走到 onCancel 并卸载页面。请独立追踪未持久化版本,所有非生成中的退出路径都按该事实弹出保留/放弃面板。

**[P1] 失败态退出也必须保护未持久化修改** 退出确认只在 `canvas.editing && dirty` 时打开。自动保存发生 revision conflict、IPC 或磁盘错误后,`persistDraft` 会把 lifecycle 改为 `canvas.failed`,但当前内存图层仍可能是 dirty;失败卡的“返回资源总览”会直接走到 `onCancel` 并卸载页面。请独立追踪未持久化版本,所有非生成中的退出路径都按该事实弹出保留/放弃面板。
@@ -0,0 +1935,4 @@
className="asset-canvas-surface__layer-hit-target"
aria-label={`选择图层 ${layer.title}`}
aria-pressed={selected}
onClick={(event) => {
Member

[P1] Shift 多选不能在 pointerdown 和 click 各切换一次

鼠标操作先在 onPointerDown 按 Shift 切换选择,React 刷新后原生 click 又按新状态执行这里的同一切换:未选图层刚加入就被移除,已选图层刚移除又被加回,因此 Shift 单击无法增删多选。请让 pointer/click 只有一路负责选择,或显式区分键盘 click,并补真实 pointer 序列的多选回归。

**[P1] Shift 多选不能在 pointerdown 和 click 各切换一次** 鼠标操作先在 `onPointerDown` 按 Shift 切换选择,React 刷新后原生 `click` 又按新状态执行这里的同一切换:未选图层刚加入就被移除,已选图层刚移除又被加回,因此 Shift 单击无法增删多选。请让 pointer/click 只有一路负责选择,或显式区分键盘 click,并补真实 pointer 序列的多选回归。
@@ -0,0 +133,4 @@
color: var(--platform-button-primary-text);
}
.asset-canvas-surface[data-state='canvas.generating']
Member

[P1] 生成期间不能只屏蔽 pointer 交互

pointer-events: none 不会把底层原生按钮移出键盘焦点顺序。用户仍可 Tab 到图层或缩放按钮,用 Enter/Space/方向键调用 markDirty(),把 lifecycle 从 canvas.generating 改回 editing,生成遮罩随即消失;后续 progress 又会反复覆盖状态。请让生成期画布真正 disabled/inert,并在事件处理器内增加生命周期门禁。

**[P1] 生成期间不能只屏蔽 pointer 交互** `pointer-events: none` 不会把底层原生按钮移出键盘焦点顺序。用户仍可 Tab 到图层或缩放按钮,用 Enter/Space/方向键调用 `markDirty()`,把 lifecycle 从 `canvas.generating` 改回 editing,生成遮罩随即消失;后续 progress 又会反复覆盖状态。请让生成期画布真正 disabled/inert,并在事件处理器内增加生命周期门禁。
@@ -1089,0 +1388,4 @@
pendingResourceFocusRef.current = null;
setAssetCanvasRoute(null);
setAssetCanvasNotice('');
setResourceEditorRoute({
Member

[P1] 未完成资源编辑必须具备跨重启恢复入口

这里每次进入编辑器都无条件生成新的 operationId/idempotencyKey.agent/resource-edits 中已进入 202/Accepted 的账本只有再次提交同一 ID 才会被读取,但当前没有扫描和恢复入口。视频、音频或图片编辑在应用退出/崩溃后,重开只能发起新任务并再次扣费,原 operation 永远不会继续轮询。请恢复现有未完成账本或明确进入可见的对账流程。

**[P1] 未完成资源编辑必须具备跨重启恢复入口** 这里每次进入编辑器都无条件生成新的 `operationId/idempotencyKey`;`.agent/resource-edits` 中已进入 202/Accepted 的账本只有再次提交同一 ID 才会被读取,但当前没有扫描和恢复入口。视频、音频或图片编辑在应用退出/崩溃后,重开只能发起新任务并再次扣费,原 operation 永远不会继续轮询。请恢复现有未完成账本或明确进入可见的对账流程。
menghao marked the pull request as work in progress 2026-08-10 20:01:20 +08:00
menghao added 2 commits 2026-08-10 21:20:27 +08:00
接入主线 Codex App Server 与 Codex CLI 节点能力。

保留开发者 External Editor 配置按入口显隐。

融合资源依赖图按需加载与独立布局状态。
完善全类型资源非破坏性编辑
Project CI / Repository checks (pull_request) Failing after 1m9s
Project CI / Frontend tests (pull_request) Successful in 3m5s
Project CI / Backend tests (pull_request) Successful in 4m5s
Project CI / Native shell tests (pull_request) Failing after 6m38s
cf81a71dce
禁用新增资源并为所有现役资源提供按类型编辑入口。

图片、视频、音频、文本、任务产物和项目版本派生新资源且保留原资源。

完善 External operation 私有账本、幂等恢复、旧指纹迁移与安全校验。

修复画布生成期间交互冻结、滚轮平移缩放与 Shift 选择行为。

同步资源编辑合同、决策记录与排障经验。
menghao added 1 commit 2026-08-11 10:16:42 +08:00
修复资源编辑分支CI失败
Project CI / Repository checks (pull_request) Successful in 1m28s
Project CI / Frontend tests (pull_request) Successful in 2m54s
Project CI / Backend tests (pull_request) Successful in 3m55s
Project CI / Native shell tests (pull_request) Failing after 10m25s
7786fd1efc
补齐资源依赖图的 sortMode Hook 依赖
统一后台 Agent 使用专用 Runtime worker,避免默认栈溢出
同步更新 Runtime 技术方案与踩坑记录
menghao added 1 commit 2026-08-11 10:46:32 +08:00
合并最新主线并完善Runtime栈边界
Project CI / Repository checks (pull_request) Successful in 1m18s
Project CI / Frontend tests (pull_request) Successful in 2m56s
Project CI / Backend tests (pull_request) Successful in 3m59s
Project CI / Native shell tests (pull_request) Failing after 10m41s
039e52a811
合入Provider多模式请求future装箱修复

保留后台Agent专用Runtime worker边界

合并共享技术方案与排障经验
menghao added 3 commits 2026-08-11 11:51:23 +08:00
仅在持久Goal编辑时立即中断旧Provider,保留普通steer安全边界。

固定隔离模拟Provider测试的agentMode,避免默认Codex app-server干扰。

同步Runtime技术方案、决策记录与测试隔离排障经验。
对齐主线Goal条件中断语义
Project CI / Repository checks (pull_request) Successful in 1m13s
Project CI / Frontend tests (pull_request) Successful in 3m23s
Project CI / Backend tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Successful in 14m47s
d6abd2a1fc
恢复普通runtime.steer仅入队语义,避免Goal编辑提前中断Provider。

移除与最新主线不一致的Goal立即中断说明。
menghao added 1 commit 2026-08-11 12:47:21 +08:00
Merge branch 'master' into codex/infinite-canvas
Project CI / Repository checks (pull_request) Successful in 58s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / Backend tests (pull_request) Successful in 4m14s
Project CI / Native shell tests (pull_request) Successful in 14m29s
9ff16393e0
menghao marked the pull request as ready for review 2026-08-11 13:24:49 +08:00
kdletters requested changes 2026-08-11 14:05:09 +08:00
kdletters left a comment
Member

请求修改。当前 head 9ff16393e0ccc65f3e14244a86cf8516723c3e37 的 run 977 四项 required CI 均成功,但代码复审仍确认 3 组恢复/并发 P1:异步草稿刷新可被旧回包降级;远端终态失败仍留在 pending 且 UI 只允许恢复首项,会永久阻塞后续 operation;manifest 已写而 project revision 尚未推进的崩溃窗会在重启后被误判 committed。对应位置已写 4 条行内意见。另当前 master 已前进到 755bf808587a7cb663c458160e1f102a4a676ff8,本分支 merge-base 仍为 4c0fdf18065eb631bc8bb012f42c32e0b53c4be6,merge-tree 在 Cargo.lock、工作台 PRD 和 AI 游戏创作技术方案产生冲突,且当前 head 无有效审批。提交历史中 9ff16393e0、08a96e251c、c24e3010f8、b95da30721 的英文标题/空正文以及 0b6be155dd 的空正文也不符合仓库提交规范。请修复并融合最新 master 后重新请求审查。

请求修改。当前 head `9ff16393e0ccc65f3e14244a86cf8516723c3e37` 的 run 977 四项 required CI 均成功,但代码复审仍确认 3 组恢复/并发 P1:异步草稿刷新可被旧回包降级;远端终态失败仍留在 pending 且 UI 只允许恢复首项,会永久阻塞后续 operation;manifest 已写而 project revision 尚未推进的崩溃窗会在重启后被误判 committed。对应位置已写 4 条行内意见。另当前 master 已前进到 `755bf808587a7cb663c458160e1f102a4a676ff8`,本分支 merge-base 仍为 `4c0fdf18065eb631bc8bb012f42c32e0b53c4be6`,merge-tree 在 Cargo.lock、工作台 PRD 和 AI 游戏创作技术方案产生冲突,且当前 head 无有效审批。提交历史中 9ff16393e0、08a96e251c、c24e3010f8、b95da30721 的英文标题/空正文以及 0b6be155dd 的空正文也不符合仓库提交规范。请修复并融合最新 master 后重新请求审查。
@@ -0,0 +1500,4 @@
return Ok(result);
}
Some("failed") => {
return Err("资源编辑生成失败".to_string());
Member

[P1] 远端明确返回 failed 已是终态,但这里只返回普通错误,没有把账本推进为可识别的 terminal failed/skip 状态。该账本随后仍会被 list_pending_local_project_resource_edits 列出;请持久化明确终态并从可恢复队列排除,或提供跳过/选择状态机。

[P1] 远端明确返回 `failed` 已是终态,但这里只返回普通错误,没有把账本推进为可识别的 terminal failed/skip 状态。该账本随后仍会被 `list_pending_local_project_resource_edits` 列出;请持久化明确终态并从可恢复队列排除,或提供跳过/选择状态机。
@@ -0,0 +1944,4 @@
}
if let Some(existing) = manifest.assets.iter().find(|asset| asset.id == asset_id) {
ledger.result_asset_id = Some(existing.id.clone());
update_resource_edit_phase(root, ledger, ResourceEditLedgerPhase::Committed)?;
Member

[P1] 这里把“manifest 已存在 asset”直接当作 committed,但上一次执行可能恰好崩溃在 write_manifest 之后、advance_agent_runtime_project_revision_locked 之前。重启走到此分支会标记账本 committed,却永远不补 project revision,manifest 与 CAS 真相分叉。manifest 写入、revision 推进和账本提交需要 journal/可恢复事务覆盖这个崩溃窗。

[P1] 这里把“manifest 已存在 asset”直接当作 committed,但上一次执行可能恰好崩溃在 `write_manifest` 之后、`advance_agent_runtime_project_revision_locked` 之前。重启走到此分支会标记账本 committed,却永远不补 project revision,manifest 与 CAS 真相分叉。manifest 写入、revision 推进和账本提交需要 journal/可恢复事务覆盖这个崩溃窗。
@@ -0,0 +459,4 @@
) {
return;
}
draftRef.current = loaded.value;
Member

[P1] 这里仍可能被乱序回包降级:假设 r5 的 loadDraft 先发、r6 后发但先返回,r6 已写入 draftRef 后,r5 回包仍满足 loaded.value.revision >= revision(它比较的是各自捕获的 revision),随后会把当前草稿从 r6 覆盖回 r5,下一次保存就会触发 revision conflict。回包落地前还需与 draftRef.current.revision 做单调比较,并补 r5/r6 逆序完成的回归。

[P1] 这里仍可能被乱序回包降级:假设 r5 的 loadDraft 先发、r6 后发但先返回,r6 已写入 draftRef 后,r5 回包仍满足 `loaded.value.revision >= revision`(它比较的是各自捕获的 revision),随后会把当前草稿从 r6 覆盖回 r5,下一次保存就会触发 revision conflict。回包落地前还需与 `draftRef.current.revision` 做单调比较,并补 r5/r6 逆序完成的回归。
@@ -1192,0 +1969,4 @@
type="button"
disabled={resumingResourceEditId !== null}
onClick={() => {
const pending = pendingResourceEdits[0];
Member

[P1] UI 始终只取排序后的第一条 pending。结合远端终态失败仍被列为 pending 的路径,一个不可恢复的旧 operation 会永久占住这个按钮,后续已受理、可能已扣费的 operation 没有选择或跳过入口。请渲染可选择的恢复队列,并对终态失败提供明确处置。

[P1] UI 始终只取排序后的第一条 pending。结合远端终态失败仍被列为 pending 的路径,一个不可恢复的旧 operation 会永久占住这个按钮,后续已受理、可能已扣费的 operation 没有选择或跳过入口。请渲染可选择的恢复队列,并对终态失败提供明确处置。
kdletters reviewed 2026-08-11 14:06:56 +08:00
kdletters left a comment
Member

补充 review #210 的当前 head 可定位意见:另有 1 个 Key 轮换恢复 P1 和 3 个交互/错误呈现 P2。

补充 review #210 的当前 head 可定位意见:另有 1 个 Key 轮换恢复 P1 和 3 个交互/错误呈现 P2。
@@ -0,0 +1575,4 @@
if ledger
.api_identity_fingerprint
.as_ref()
.is_some_and(|value| value != &configuration_fingerprint)
Member

[P1] 旧版本账本使用 H(baseUrl, H(oldKey)),当前只计算 H(baseUrl) 并在查询原 operation 前直接判 configuration-changed。若旧 Key 已失效,用户无法先用旧凭据迁移,已受理/已付费任务无法对账,只能建立新 identity,仍有重复生成与扣费风险。请提供历史 fingerprint schema 的显式迁移/确认路径,并补“旧 Key 已失效、升级后以新 Key 恢复旧 operation”的回归;只覆盖旧 Key 仍可用时的迁移不足以证明恢复。

[P1] 旧版本账本使用 `H(baseUrl, H(oldKey))`,当前只计算 `H(baseUrl)` 并在查询原 operation 前直接判 configuration-changed。若旧 Key 已失效,用户无法先用旧凭据迁移,已受理/已付费任务无法对账,只能建立新 identity,仍有重复生成与扣费风险。请提供历史 fingerprint schema 的显式迁移/确认路径,并补“旧 Key 已失效、升级后以新 Key 恢复旧 operation”的回归;只覆盖旧 Key 仍可用时的迁移不足以证明恢复。
@@ -0,0 +1899,4 @@
<section
className="asset-canvas-surface__operation-overlay"
role="alert"
aria-label="图片生成失败"
Member

[P2] canvas.failed 也承载草稿保存冲突、素材 commit 和取消失败,但这里统一宣告“图片生成失败 / AI 图片生成”,并继续提供生成重试动作。保存或 revision 故障会误导用户再次生成。请让失败态携带操作类别:只有生成故障显示生成重试,保存/CAS/取消故障提供重载、保留草稿或对账动作,并补可访问名称回归。

[P2] `canvas.failed` 也承载草稿保存冲突、素材 commit 和取消失败,但这里统一宣告“图片生成失败 / AI 图片生成”,并继续提供生成重试动作。保存或 revision 故障会误导用户再次生成。请让失败态携带操作类别:只有生成故障显示生成重试,保存/CAS/取消故障提供重载、保留草稿或对账动作,并补可访问名称回归。
@@ -0,0 +2024,4 @@
onPointerDown={(event: ReactPointerEvent<HTMLButtonElement>) => {
if (lifecycleRef.current.kind !== 'canvas.editing') return;
event.stopPropagation();
const targetIds = event.shiftKey
Member

[P2] 仅选中一个图层时,Shift 点击该图层会在这里删掉最后一个选择,得到空 targetIds;共享 core 的 selection helper 明确保留最后一项。同一画布 core 在 Web/Tauri 因此产生不同选择和拖拽语义。请复用共享选择逻辑,并补单选后 Shift 点击自身的回归。

[P2] 仅选中一个图层时,Shift 点击该图层会在这里删掉最后一个选择,得到空 targetIds;共享 core 的 selection helper 明确保留最后一项。同一画布 core 在 Web/Tauri 因此产生不同选择和拖拽语义。请复用共享选择逻辑,并补单选后 Shift 点击自身的回归。
@@ -0,0 +2043,4 @@
}
return;
}
captureHistory({
Member

[P2] pointerdown 立即写 history,而后续 pointerup 会标脏;仅单击已选图层或零位移序列也会生成空撤销项并触发保存。用户第一次撤销只会消费无效操作,同时扩大 revision 冲突窗口。请仅在首次有效位移时 capture,并只在最终快照确实变化时 mark dirty,补零位移回归。

[P2] pointerdown 立即写 history,而后续 pointerup 会标脏;仅单击已选图层或零位移序列也会生成空撤销项并触发保存。用户第一次撤销只会消费无效操作,同时扩大 revision 冲突窗口。请仅在首次有效位移时 capture,并只在最终快照确实变化时 mark dirty,补零位移回归。
menghao added 7 commits 2026-08-11 17:44:02 +08:00
合并 master 的现有 Godot 项目导入与客户端 HTTP 调整。

保留无限画布和非破坏性资源编辑分支行为。

# Conflicts:
#	apps/ai-game-creator-shell/src-tauri/Cargo.lock
#	docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md
#	docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md
同步原生 HTTP 依赖归属与客户端测试导入顺序。

保留无限画布和非破坏性资源编辑分支行为。
完善资源编辑终态分类、单飞锁与资产和版本可恢复事务。
统一服务身份迁移与旧操作显式确认,保留非破坏性编辑。
修复草稿revision乱序、共享选择与零位移历史污染。
新增独立恢复面板、分类型失败交互和并发焦点隔离。
补充定向回归、权威文档与临时闭环计划。
保留完美像素逻辑分辨率和External v1契约更新。
合并无限画布恢复事务与共享记忆结论。
更新修复提交、主线融合与分支祖先关系。
记录无限画布和完美像素定向测试结果。
保留远端历史方案、required CI和审查待办。
核对PR一百三十六的required CI与审查状态。
记录旧提交标题和空正文仍需历史方案闭环。
保留替代分支或force-push的用户授权门。
移除无限画布临时修复计划
Project CI / Repository checks (pull_request) Successful in 1m14s
Project CI / Frontend tests (pull_request) Successful in 3m0s
Project CI / Backend tests (pull_request) Successful in 4m4s
Project CI / Native shell tests (pull_request) Successful in 14m28s
912df59c2b
删除已完成阶段使用的临时修复清单。
保留权威技术文档与项目共享记忆中的稳定结论。
继续排除本地环境文件与手工验证产物。
Author
Contributor

未处理英文或空标题内容。以后注意

未处理英文或空标题内容。以后注意
kdletters added 1 commit 2026-08-12 10:21:30 +08:00
修复无限画布恢复与幂等链路
Project CI / Repository checks (pull_request) Successful in 1m0s
Project CI / Backend tests (pull_request) Successful in 3m48s
Project CI / Frontend tests (pull_request) Successful in 2m57s
Project CI / Native shell tests (pull_request) Failing after 11m11s
daaef0917f
补齐 refine 草稿跨重启唯一恢复与生命周期门禁

完善 Provider durable handoff、认证恢复和旧密钥服务确认

修复资源事务前向恢复与异步导入迟到写入

补充前后端回归测试并同步权威文档与项目记忆
kdletters added 1 commit 2026-08-12 10:41:44 +08:00
合并master并解决PR136冲突
Project CI / Repository checks (pull_request) Successful in 1m5s
Project CI / Frontend tests (pull_request) Successful in 3m2s
Project CI / Backend tests (pull_request) Successful in 3m51s
Project CI / Native shell tests (pull_request) Has been cancelled
156cf253e1
保留无限画布阶段一至五与恢复一致性合同

合入Goal Contract和动态Acceptance Graph约定

同步运行时测试与项目技术文档
kdletters added 1 commit 2026-08-12 10:51:33 +08:00
Merge branch 'master' into codex/infinite-canvas
Project CI / Frontend tests (pull_request) Successful in 4m3s
Project CI / Repository checks (pull_request) Successful in 1m6s
Project CI / Backend tests (pull_request) Successful in 4m20s
Project CI / Native shell tests (pull_request) Successful in 17m13s
b136734166
kdletters merged commit 03a4410272 into master 2026-08-12 10:54:16 +08:00
kdletters deleted branch codex/infinite-canvas 2026-08-12 10:54:17 +08:00
Sign in to join this conversation.