k88936
70a2246e8b
移除 UI 文档引用新增测试
...
删除 Direct Codex UI 文档 fixture 与专门测试用例
保留生产引用逻辑和现有业务测试
2026-09-14 21:41:53 +08:00
k88936
b7e3dac661
统一引用 UI 文档资产类型常量
...
前端入口、资源桥接与引用预览统一使用共享常量
Rust 持久化与测试复用共享契约常量
补齐 UI 编辑器入口 fixture 的新资产类型
2026-09-14 21:36:43 +08:00
k88936
2e4a1996c8
同步 UI 编辑器入口测试资产类型
...
将项目开发 UI 编辑器回程测试 fixture 更新为 ui-design-doc
2026-09-14 21:12:03 +08:00
k88936
fe4e952853
更新 UI 文档资源编辑器入口
...
将 ui-design-doc 资源纳入选中资源的 UI 编辑器按钮判定
保留 ui-prototype 图片资源的编辑器桥接入口
2026-09-14 21:04:08 +08:00
k88936
18654b6806
同步 UI 文档资产共享契约与前端识别
...
共享契约新增 ui-design-doc 分类及中英文映射
前端编辑器与资源桥接严格识别文档资产
更新技术方案、实施计划和长期决策记录
2026-09-14 20:45:04 +08:00
k88936
ee7d00c0b1
统一 UI 编辑器文档资产类型
...
新增 ui-design-doc 与 application/json 常量
创建、桥接、工作流和持久化统一使用严格资产类型
2026-09-14 20:44:49 +08:00
k88936
9cd1a94369
接入 UI 文档引用代码上下文生成
...
Direct Codex 引用 ui-design-doc 时生成带文档的 JS 文件
生成成功或失败信息追加到当前 prompt
补充成功、失败与 ui-prototype 隔离测试
2026-09-14 20:44:49 +08:00
k88936
470e85c0ff
Add UI-specific prompt rendering for design assets in resource references
2026-09-14 20:44:49 +08:00
k88936
279a5e8e0e
Merge pull request '修复 UI 编辑器返回后资源画布平移' ( #356 ) from fix/cant-pan-after-ui-editor into master
...
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m53s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m26s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m37s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 3m59s
Project CI / AI game creator shell Rust crates (push) Successful in 2m10s
Project CI / Repository checks (push) Successful in 3m5s
Project CI / Frontend tests (push) Successful in 4m3s
Project CI / Backend tests (push) Successful in 7m8s
Project CI / Native shell tests (push) Successful in 6m37s
Project CI / AI game creator shell web tests (push) Successful in 3m23s
Reviewed-on: #356
Reviewed-by: 孔令弘 <ink29535@proton.me >
2026-09-14 20:13:28 +08:00
lhk229
a5dfa322cb
Merge branch 'master' into fix/cant-pan-after-ui-editor
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m12s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m18s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m22s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m23s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m39s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m21s
Project CI / Frontend tests (pull_request) Successful in 4m18s
Project CI / Native shell tests (pull_request) Successful in 6m7s
Project CI / Repository checks (pull_request) Successful in 3m1s
Project CI / Backend tests (pull_request) Successful in 7m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m4s
2026-09-14 19:56:40 +08:00
k88936
174b6dd347
抽取共享 ResizeObserver 测试桩
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m59s
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
让项目开发测试复用统一 observer 安装 helper
保留 observer 创建与断开计数断言
2026-09-14 19:24:23 +08:00
lhk229
a7c40da6cf
修复自动切分问题节点恢复与临时文件清理
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m3s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m46s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m46s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m4s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m3s
Project CI / Frontend tests (pull_request) Successful in 4m13s
Project CI / Repository checks (pull_request) Successful in 3m26s
Project CI / Native shell tests (pull_request) Successful in 6m30s
Project CI / Backend tests (pull_request) Successful in 7m27s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m14s
Project CI / AI game creator shell Rust shard 1/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (push) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
将 problematic_nodes 纳入失败判定并保留恢复状态
清理完成或放弃流程产生的 processed 和 binding 临时文件
2026-09-14 19:11:27 +08:00
k88936
a0b5a84d61
Merge branch 'master' into fix/cant-pan-after-ui-editor
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Has been cancelled
2026-09-14 19:00:47 +08:00
k88936
411f49a65d
Merge pull request 'UI编辑器自动分图层切图标' ( #304 ) from feat/ui-editor-auto-seperation into master
...
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m9s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m31s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m27s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m26s
Project CI / AI game creator shell Rust crates (push) Successful in 2m0s
Project CI / Frontend tests (push) Successful in 4m14s
Project CI / Repository checks (push) Successful in 3m25s
Project CI / Backend tests (push) Failing after 5m18s
Project CI / Native shell tests (push) Successful in 6m55s
Project CI / AI game creator shell web tests (push) Successful in 3m17s
Reviewed-on: #304
2026-09-14 18:59:00 +08:00
k88936
a8aacb27bd
修正资源画布回归测试 IPC 桩
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
使用 manifest projectId 匹配真实布局读取契约
补充初始化布局更新命令回执
2026-09-14 18:53:52 +08:00
kdletters
e8403e547b
补齐游戏从策划到成品的完整生产流程
...
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m15s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m33s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m29s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m19s
Project CI / AI game creator shell Rust crates (push) Successful in 1m53s
Project CI / Frontend tests (push) Successful in 4m10s
Project CI / Repository checks (push) Successful in 3m19s
Project CI / Native shell tests (push) Successful in 6m39s
Project CI / Backend tests (push) Successful in 7m27s
Project CI / AI game creator shell web tests (push) Successful in 3m6s
新增 AGC 完整游戏生产 workflow Skill,定义策划、资源、实现、构建、试玩和交付阶段。
将真实美术生成、处理、登记和接入从可选提示改为新游戏交付链路要求。
同步 Skill Pack 清单、系统提示、测试契约和实施计划文档。
2026-09-14 18:43:12 +08:00
kdletters
90d216e241
Merge remote-tracking branch 'origin/master'
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m58s
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 4m38s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m41s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m21s
Project CI / AI game creator shell Rust crates (push) Successful in 1m55s
Project CI / Frontend tests (push) Successful in 4m32s
Project CI / Repository checks (push) Successful in 3m34s
Project CI / Native shell tests (push) Successful in 7m1s
Project CI / Backend tests (push) Successful in 7m36s
Project CI / AI game creator shell web tests (push) Successful in 3m15s
2026-09-14 18:35:22 +08:00
kdletters
c799d00a93
记录分支保护现状:不把 Project CI 配成合并必需检查
...
复核后确认本仓库不把 Project CI 的 context 配成 master 分支保护的合并必需检查,合并前由人工
确认最近一次结果。据此把文档里"必须设为合并必需检查 / 需补 6 个新 context"的强制口径改成
与现状一致,避免下次有人照着一个不执行的待办去逐个勾选 context:
- 开发运维文档:说明当前不配 required context(代价是门禁红了不会自动阻止合并),把 11 个
context 清单降级为"将来若要启用时的清单",并保留"不能残留已不再上报的旧 job 名,否则 PR
会永远停在等待该检查"这一条;master 交付口径里"当前 head 的七个 required context 全绿"
改为"最近一次 Project CI 全绿"。
- shared-memory/decision-log:AGC 壳分片那条的"影响范围"不再把它列为待补 context 的待办。
- shared-memory/pitfalls:置顶条目新增"分支保护口径",并把旧条目里"要补齐两个新 AGC
context"改成"确认没有残留旧 job 名"。
- .craft 的 gitea-ci-triage 技能同步为"改 job 集合或 job 名不需要同步分支保护"。
验证:prettier、check:encoding、check:doc-index 通过。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com >
2026-09-14 18:35:00 +08:00
lhk229
2b5ce24a97
Merge branch 'master' into feat/ui-editor-auto-seperation
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m48s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m21s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m16s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 3m55s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m52s
Project CI / Frontend tests (pull_request) Successful in 4m10s
Project CI / Repository checks (pull_request) Successful in 3m14s
Project CI / Native shell tests (pull_request) Successful in 6m35s
Project CI / Backend tests (pull_request) Successful in 7m32s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m58s
2026-09-14 18:31:38 +08:00
k88936
c485ce94a1
修复 UI 编辑器返回后资源画布平移
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
资源管理卸载重挂时重新绑定画布 wheel 监听
补充 UI 编辑器返回后的资源画布平移回归用例
记录资源画布事件监听重挂排障经验
2026-09-14 18:30:33 +08:00
lhk229
a70ef2d6e1
Merge pull request 'Opt/win ssache' ( #354 ) from opt/win-ssache into master
...
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 5m21s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 5m27s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 5m30s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 5m37s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m32s
Project CI / AI game creator shell Rust crates (push) Successful in 2m19s
Project CI / Repository checks (push) Successful in 3m6s
Project CI / Frontend tests (push) Successful in 4m18s
Project CI / Native shell tests (push) Successful in 6m25s
Project CI / Backend tests (push) Successful in 7m18s
Project CI / AI game creator shell web tests (push) Successful in 2m58s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/354
2026-09-14 18:15:12 +08:00
lhk229
0fea75952a
保留显式 sccache wrapper 路径
...
探测成功后将用户配置的 wrapper 原样交给 Cargo
2026-09-14 18:15:12 +08:00
lhk229
25769ad5e8
更新 AGC 构建版本
...
同步 AI Game Creator Shell 的包、Tauri 和锁文件版本
2026-09-14 18:15:12 +08:00
lhk229
b7100c7188
使用用户配置路径探测 sccache
...
Windows wrapper 探测改用显式配置的可执行路径
将 wrapper 路径纳入探测缓存键
2026-09-14 18:15:12 +08:00
lhk229
cf4a275d26
缓存 sccache 探测结果避免重复阻塞
...
在当前 dev 编排进程内复用 sccache wrapper 探测结果
避免 API 与 worker 重启重复同步等待
同步更新排障文档
2026-09-14 18:15:12 +08:00
lhk229
fed9960684
修正 POSIX sccache 绕过日志
...
明确记录 Linux 和 macOS 本地开发实际绕过 sccache
补充 POSIX 日志回归测试并更新排障文档
2026-09-14 18:15:12 +08:00
lhk229
a3918c89f0
按显式配置控制 Windows sccache
...
未配置 wrapper 时默认回退到直接 rustc
处理 sccache 探测失败与 wrapper 配置冲突
同步更新开发运维和排障文档
2026-09-14 18:15:12 +08:00
lhk229
f955661146
增强 Windows sccache wrapper 探测回退
...
使用限时真实 rustc wrapper 探测替代版本检查
探测失败或超时时回退到直接 rustc
同步更新 sccache 故障排障记录
2026-09-14 18:15:12 +08:00
lhk229
5cf5b541af
修正 sccache 测试的平台隔离
...
为启用 sccache 的用例补充 Windows platform mock
确保 POSIX 环境下测试不会误走 env wrapper 分支
2026-09-14 18:15:12 +08:00
lhk229
dcaa1a2dd5
支持 Windows 本地 sccache 自动回退
...
Windows 本地开发检测可用的 sccache 并启用缓存
未安装或不可执行时清空 Rust wrapper 并回退到 rustc
补充测试并更新开发运维文档
2026-09-14 18:15:12 +08:00
k88936
b082addc34
Merge remote-tracking branch 'origin/master' into feat/ui-editor-auto-seperation
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m1s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m35s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m42s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m38s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m49s
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
2026-09-14 17:41:36 +08:00
kdletters
2566ae705f
AGC 壳 Rust 套件改为「一片一个 job」,客户端 Rust 关键路径压到 7 分钟以内
...
Project CI / AI game creator shell Rust shard 2/4 (push) Successful in 3m53s
Project CI / AI game creator shell Rust shard 1/4 (push) Successful in 4m11s
Project CI / AI game creator shell Rust shard 3/4 (push) Successful in 4m6s
Project CI / AI game creator shell Rust shard 4/4 (push) Successful in 4m2s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m26s
Project CI / AI game creator shell Rust crates (push) Successful in 2m21s
Project CI / Backend tests (push) Successful in 6m22s
Project CI / Native shell tests (push) Successful in 5m25s
Project CI / Repository checks (push) Successful in 2m17s
Project CI / Frontend tests (push) Successful in 2m58s
Project CI / AI game creator shell web tests (push) Successful in 2m6s
上一轮把 2466 条 bin target 单测切成 4 片放在同一个 job 内多进程并行,run 2102 证明这条路
不通:门禁步骤跑满 18 分钟仍未结束,比整套串行的 507 秒还慢——同一容器内这几片共享
HOME、target 目录与固定临时路径,会互相拖慢。这一轮改成按 job 拆分。
- run-rust-shell-test-shards.mjs 新增 --shard-index=<i>:只跑第 i 片,供 CI 的每个分片 job
使用;覆盖自校验(片并集等于 --list 全集且互斥)仍针对全集执行,所以每个 job 都会
发现分片规则改动,不会被"只跑一片"绕过。负例 --shard-index 超出 --shards 立即失败。
不传 --shard-index 时行为不变(一条命令把 N 片放进程里并行),留给本地全量自测。
- project-ci.yml 由 7 个 job 变 11 个:原 AGC Rust job 拆成 AI game creator shell Rust
shard 1/4 ~ 4/4 与 AI game creator shell Rust smoke,加上已有的 Rust crates,AGC 相关
门禁共 6 个 job。4 个片 job 只预热 AGC 壳自己那份锁定依赖,且与 smoke、crates 一样都是
纯 cargo 门禁,因此这 6 个 job 都不再执行 npm ci(每个省 1~3 分钟)。
- check-native-shells.mjs 分组由五个变十个:agc-rust-shard-1 ~ agc-rust-shard-4 与
agc-rust-smoke 取代 agc-rust-shell;每个分片分组的命令是
`npm run ai-game-creator-shell:check:rust:shell -- --shard-index=<i>`。
- project-ci-workflow.test.ts 相应更新:11 个 job、6 个 job 免 npm ci、10 个分组各被一个
job 恰好调用一次,并新增「每个分片 job 都落到 --shard-index」「4 个 index 各一次」
「分片运行器保留覆盖自校验」等断言。
- 同步运维文档、development-workflow、decision-log、pitfalls 与 gitea-ci-triage 技能到
job 级分片口径,并记录 run 2102 的反面实验,避免以后又改回单 job 内并行。
验证:npx vitest run scripts/project-ci-workflow.test.ts(12 passed)、eslint、prettier、
check:encoding(13330 文件)、check:doc-index、--groups=contract、mobile check-config 全绿;
分片运行器本地以 agent-runtime-core(7 条 → 2/2/2/1)验证 --shard-index 四个 index 各自
只跑一片、片 TMPDIR 隔离、无 index 时全量模式不变。Gitea master 分支保护需补 6 个新
context(共十一个),其中含 4 个分片 job、smoke job 与 crates job。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com >
2026-09-14 17:32:06 +08:00
kdletters
86b830cf2d
AGC 壳 Rust 套件分片并行,客户端 Rust 关键路径压到 7 分钟以内
...
Project CI / AI game creator shell Rust crates (push) Successful in 3m17s
Project CI / Native shell tests (push) Successful in 6m1s
Project CI / Backend tests (push) Successful in 6m39s
Project CI / Frontend tests (push) Successful in 3m59s
Project CI / Repository checks (push) Successful in 2m37s
Project CI / AI game creator shell web tests (push) Successful in 2m37s
Project CI / AI game creator shell Rust tests (push) Has been cancelled
run 2097 显示 AI game creator shell Rust tests 是客户端 CI 的关键路径(15 分 27 秒):
前置 5 分 30 秒(checkout + npm ci + Cargo fetch)、编译 1 分 39 秒、AGC 壳 bin target
的 2466 条单测一条命令串行 507 秒、agent-run smoke 51 秒。
- 新增 apps/ai-game-creator-shell/scripts/run-rust-shell-test-shards.mjs:cargo test
--no-run 编译一次拿到测试可执行文件,用 --list 取全部用例名,排序后按 index % shards
切 4 片,每片作为独立进程执行 <bin> --exact <名单> --test-threads=1,并给每片独立
TMPDIR。片并集必须等于 --list 全集且互斥(assertShardsCoverEveryTest),改分片规则
不会静默漏跑。串行口径只从「整套串行」放宽到「片内串行」:当年 libtest 线程并行会
互相干扰的是进程内后台锁与异步终态,进程分片不共享这些状态,因此不必放宽断言。
- package.json:ai-game-creator-shell:check:rust 拆成 :rust:crates(agent-runtime-core /
orchestration / platform-llm / shared-contracts)与 :rust:shell(分片运行器),聚合
脚本保持同序,ai-game-creator-shell:check 与本地全量入口语义不变。
- check-native-shells.mjs:分组由五个变六个(新增 agc-rust-crates、agc-rust-shell,
移除 agc-rust);smoke 与壳测试同组以共享 AGC 壳的依赖预热。
- project-ci.yml:新增第 7 个 job AI game creator shell Rust crates(预热 server-rs 与
两个无锁独立 crate 后跑四条 crate 测试);AI game creator shell Rust tests 只保留壳
分片与 agent-run smoke,并只预热 AGC 壳自己那份 manifest(其 Cargo.lock 的 path 依赖
已覆盖 platform-llm / platform-agent / agent-runtime-core / shared-contracts)。
这两个 job 只用 cargo 与 node 内建模块,因此都不再执行 npm ci(各省 1~3 分钟)。
- project-ci-workflow.test.ts:新增纯 cargo job 免 npm ci、分片运行器覆盖校验、crate 级
job 预热顺序等断言;同步运维文档、development-workflow、decision-log、pitfalls。
验证:分片运行器本地以 agent-runtime-core(7 条 → 2/2/2/1)与 platform-llm(146 条 →
49/49/48)验证分片、--exact 与片 TMPDIR 隔离,参数负例 exit 1;vitest
scripts/project-ci-workflow.test.ts 12 passed;contract 分组、AGC 与 mobile 壳
check-config、eslint、prettier、check:encoding(13400 文件)、check:doc-index 全绿。
Gitea master 分支保护需补 Project CI / AI game creator shell Rust crates (pull_request)。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com >
2026-09-14 17:02:34 +08:00
kdletters
f9bd0adae1
补齐客户端 CI 拆分的共享记忆:label 字面量契约与实测耗时
...
Project CI / Frontend tests (push) Successful in 5m6s
Project CI / Native shell tests (push) Successful in 7m1s
Project CI / Backend tests (push) Successful in 7m45s
Project CI / Repository checks (push) Successful in 2m58s
Project CI / AI game creator shell web tests (push) Successful in 2m10s
Project CI / AI game creator shell Rust tests (push) Successful in 14m39s
- pitfalls:新增「根门禁的 [check:native-shells] <label> 是别处按字面量校验的契约」,
记录 run 2095 里 desktop-shell typecheck 的失败根因(label 被抽进公共打印函数后,
check-config 的字面量断言落空)、处置与本地验证方式。
- decision-log:把「预计收敛到约 13 分钟量级」换成 run 2097 实测——六个 job 全绿、
wall-clock 15 分 27 秒(拆分前 run 2094 为 22 分 15 秒),关键路径转移到
AI game creator shell Rust tests,壳体串行套件 507 秒是硬底。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com >
2026-09-14 16:47:35 +08:00
kdletters
11beb65c36
修复桌面壳对根门禁 label 字面量的断言
...
Project CI / Frontend tests (push) Successful in 4m24s
Project CI / Native shell tests (push) Successful in 7m34s
Project CI / Backend tests (push) Successful in 7m36s
Project CI / Repository checks (push) Successful in 2m45s
Project CI / AI game creator shell web tests (push) Successful in 2m15s
Project CI / AI game creator shell Rust tests (push) Successful in 15m27s
run 2095 的 Native shell tests 红了,失败点是 desktop-shell 的 typecheck:
apps/desktop-shell/scripts/check-config.mjs 断言根门禁脚本必须包含
`console.log('[check:native-shells] desktop-release-binary-artifact')` 字面量,
而拆分时我把 label 挪进了公共打印函数 runNativeShellGate(group, label, gate),
源码里不再有这个字面量,断言随即报
「root native shell gate must keep desktop release artifact check」。
- runNativeShellGate 收窄为 (group, gate):label 改回各门禁执行体里的字面量打印,
分组能力、日志格式与 `--groups=` 语义都不变,外部按字面量做的快照断言继续有效。
- 在该函数旁注明不要把 label 抽成变量:apps/desktop-shell 与 apps/mobile-shell 的
check-config 都会读取根脚本源码做字面量断言。
验证:node --check 通过;contract 分组通过(groups=contract + OK);mobile-shell
check-config exit 0;desktop-shell check-config 已越过第 740-777 行的根脚本断言
(本机只卡在本机不存在的 Tauri 生成产物目录,Linux CI 不受影响);
vitest scripts/project-ci-workflow.test.ts 11 passed;eslint 通过。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com >
2026-09-14 16:26:10 +08:00
kdletters
20f109027a
按门禁组拆分客户端 CI,AGC 的 web / rust 两段并行
...
Project CI / Native shell tests (push) Failing after 3m36s
Project CI / Frontend tests (push) Successful in 4m13s
Project CI / Repository checks (push) Successful in 3m3s
Project CI / AI game creator shell web tests (push) Successful in 2m31s
Project CI / Backend tests (push) Successful in 7m49s
Project CI / AI game creator shell Rust tests (push) Successful in 14m10s
原生壳门禁原本挤在同一个 job 里串行执行,跑一遍 18 分 37 秒,其中 AI 游戏创作
壳独占约 15 分钟(壳内 Rust 套件 2451 条用例串行 441 秒),而微信 / 移动 / 桌面 /
H5 的全部门禁加起来不到 50 秒。长尾拖住短门禁,runner 也无法并行。
- scripts/check-native-shells.mjs 支持 `--groups=`(contract / shells / agc-web /
agc-rust / release):每个步骤与静态断言归属且只归属一个分组,不带参数时仍按
原顺序串行跑全部分组,本地 `npm run check:native-shells` 语义不变。
- 顺带修掉 H5 HostBridge 调用链扫描在 Windows 上恒红的缺陷:collectFiles 返回
反斜杠路径而期望清单是 POSIX 写法,scannedFiles.has() 永远为假。新增
normalizeScannedFilePath 只统一分隔符(不能复用会去后缀的 normalizeModulePath),
在 Linux 上是恒等变换。
- package.json 增加 5 个分组脚本,并把 ai-game-creator-shell:check 拆成
:check:web 与 :check:rust;聚合脚本保持 web && rust && agent-run:smoke 同序。
agent-run smoke 会 spawn cargo,因此归入 agc-rust。
- .gitea/workflows/project-ci.yml 拆成 6 个 job:新增 native-shell-tests(contract +
shells + release)、ai-game-creator-shell-web-tests、ai-game-creator-shell-rust-tests
三个门禁 job,与 backend-tests / frontend-tests / repository-checks 并列。
- scripts/project-ci-workflow.test.ts 增加 3 条结构测试:分组恰好被一个 job 调用且
与脚本内声明一致、CI 不再调用全量入口、AGC web/rust 拆分与聚合脚本等价、独立
crate 预热必须发生在 AGC Rust 门禁之前。
- 同步运维文档、development-workflow、decision-log、pitfalls。
验证:`--groups=contract` 本地通过;vitest 11 passed;eslint 与 prettier 通过;
check:encoding 13329 文件通过;check:doc-index 103 份通过。shells / agc-web /
agc-rust / release 分组只能由 Linux CI 执行(Windows 上 spawnSync npm.cmd 报
EINVAL,属既有平台限制,非本次引入)。分支保护需补两个新 required context:
`Project CI / AI game creator shell web tests (pull_request)` 与
`Project CI / AI game creator shell Rust tests (pull_request)`。
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com >
2026-09-14 16:13:11 +08:00
kdletters
4e553bb15d
收窄项目写锁同进程复用判据为同线程重入
...
Project CI / Repository checks (push) Successful in 3m21s
Project CI / Frontend tests (push) Successful in 4m15s
Project CI / Backend tests (push) Successful in 6m13s
Project CI / Native shell tests (push) Successful in 18m37s
- 修复 write_lock.rs:advisory 复用判据从「本进程持锁」收窄为「同一线程重入或自主流水线」,新增按锁路径登记真实持锁线程的 PROJECT_WRITE_LOCK_THREAD_OWNERS,登记在 create_new 成功处、在 guard Drop 里按路径注销(guard 会被移到别的线程再 Drop)
- 恢复本进程其它线程写通道的串行化:一致快照读、project.diff / action_history、command.output_read、steer 序号分配、项目 revision 侧车、pending sidecar 复核与恢复安装重新等待并保持终态占用
- 调整 tests/project_tools.rs 的 agent_runtime_file_write_lock_failure_redacts_project_path:改为在另一条线程持锁,保持「别的写者持锁时 file.write 失败关闭且脱敏」的断言语义
- 调整 ui_editor/persistence.rs 的 recovery_install_respects_the_project_write_lock:同样改为在另一条线程持锁,保持占用失败断言
- 同步技术方案「2026-09-14 项目客户端占用锁收敛」段落,以及里程碑和实施计划的目标、验收标准、修改顺序、验证命令与未决事项
- 在 decision-log 记录复用判据收窄为同线程重入,并在 pitfalls 记录「同进程复用判据不能只看 pid」的现场、原因、处理与易错点
- 回答 AGC 生命周期文档「同 PID advisory guard 是否放过并行写」的未决项:确认会放过并行写,已收窄
Co-authored-by: DotCraft <273930855+dotcraft-ai@users.noreply.github.com >
2026-09-14 15:41:17 +08:00
k88936
ad8f42a68f
回写自动切分问题节点状态
...
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
扩展 problematic DTO 携带完整返工历史
分离流程回写 NeedReview 并清理成功节点旧状态
补充概览计数定位与状态覆盖测试
同步 UI workflow 规范文档
2026-09-14 14:34:33 +08:00
k88936
a0325d653e
补充图片编辑代理与素材切分工作流技术文档链接
Project CI / Repository checks (pull_request) Successful in 3m13s
Project CI / Frontend tests (pull_request) Successful in 3m24s
Project CI / Backend tests (pull_request) Successful in 6m18s
Project CI / Native shell tests (pull_request) Successful in 19m37s
2026-09-14 11:58:53 +08:00
k88936
b617873f46
调整模块引用顺序及精简测试断言格式
2026-09-14 11:58:42 +08:00
k88936
513c25898c
Merge remote-tracking branch 'origin/master' into feat/ui-editor-auto-seperation
...
Project CI / Repository checks (pull_request) Failing after 2m16s
Project CI / Frontend tests (pull_request) Successful in 4m44s
Project CI / Backend tests (pull_request) Successful in 7m39s
Project CI / Native shell tests (pull_request) Successful in 18m52s
# Conflicts:
# apps/ai-game-creator-shell/src/view/project-development/index.tsx
2026-09-14 11:32:17 +08:00
k88936
9856bb7057
补充 UI 工作流安全边界说明
...
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 2m58s
Project CI / Native shell tests (pull_request) Successful in 18m31s
记录提示清洗、图片解码限制、上传超时和 sidecar 产物恢复约束。
2026-09-12 21:44:12 +08:00
k88936
16db7ae8aa
为识别根节点补充名称兜底
...
LLM 返回空根名称时使用页面根节点默认名称,避免空标题进入 UI 树。
2026-09-12 21:40:20 +08:00
k88936
0ea7c7745c
保留分离结果的必要类型断言
...
TypeScript 对闭包赋值结果无法完成控制流收窄,恢复断言以通过类型检查。
2026-09-12 21:37:04 +08:00
k88936
6baf358bc7
完善素材分离恢复与步骤映射
...
回填部分失败时重新读取恢复状态;移除冗余类型断言并改用显式步骤映射。
2026-09-12 21:34:45 +08:00
k88936
462fc856aa
为原始图片上传解析增加超时
...
从请求入口开始计算准备截止时间,并限制 multipart 上传解析阶段的最长等待。
2026-09-12 21:33:48 +08:00
k88936
274bb1a3d2
兼容带参数的 PNG 内容类型
...
解析 multipart Content-Type 的媒体类型部分,接受合法的 image/png 参数。
2026-09-12 21:33:06 +08:00
k88936
8a96190db8
限制素材分离图片的 Base64 解码大小
...
对源图和服务端处理图在解码前后统一执行 64 MiB 上限检查,避免无界内存分配。
2026-09-12 21:32:20 +08:00
k88936
584da5b76b
限制视觉绑定处理图的解码规模
...
在解码前限制 base64 字节数并校验图像宽高,避免异常响应造成过量内存分配。
2026-09-12 21:31:13 +08:00
k88936
d1a03aec0e
统一预览画布适配与缩放滑杆计算
...
自动适配复用 fitToCanvas,避免重复计算;滑杆直接从原始缩放比例计算步进值。
2026-09-12 21:29:04 +08:00
k88936
b90d12c5fb
补充 Windows 原子替换安全说明
...
记录 MoveFileExW 路径缓冲区的所有权、终止符和调用生命周期不变量。
2026-09-12 21:27:57 +08:00
k88936
8135b4c374
避免 LLM 重试循环生产环境崩溃
...
将理论不可达分支改为显式错误返回,防止重试边界变化触发 panic。
2026-09-12 21:27:34 +08:00
k88936
124d94de93
保证素材批次补丁失败时状态原子
...
在修改状态前预检所有成功绑定节点的裁剪路径,避免中途错误留下部分更新。
2026-09-12 21:27:05 +08:00
k88936
103fe6fcd6
移除无效的裁剪路径伪校验
...
裁剪路径由 UUID 文件名和 sidecar 目录构造,直接依靠项目相对路径校验。
2026-09-12 21:26:33 +08:00
k88936
1370094c52
为素材处理产物生成唯一文件名
...
处理图 sidecar 文件名改用 UUID,避免全批次返工时覆盖前一批产物。
2026-09-12 21:25:58 +08:00
k88936
be8155c4a8
保留素材切分原始失败原因
...
检查点写入失败时仅记录日志,继续返回图像处理、绑定或裁剪的原始错误。
2026-09-12 21:25:21 +08:00
k88936
9052ff14f8
区分素材提取的完成与问题节点
...
仅将已绑定节点标记为 DONE,达到返工上限的节点继续作为上下文提供给提取模型。
2026-09-12 21:24:25 +08:00
k88936
9d9f1b8164
清理素材提取提示中的备注内容
...
对 YAML 提示中的描述和返工备注做有界清洗,避免代码围栏破坏提示结构。
2026-09-12 21:23:44 +08:00
k88936
8629a228a1
限制并清理视觉绑定提示备注
...
为节点描述和返工备注增加长度上限并移除控制字符、代码围栏字符。
2026-09-12 21:23:35 +08:00
k88936
a92121e09d
校准素材切分概览的资源绑定统计
...
图片与字体槽位仅在引用的项目资源存在时计为已绑定。
概览组件接入字体资源表并保留无资源参数时的旧调用语义。
2026-09-12 21:22:21 +08:00
k88936
e49d6741ca
修正组件移除失败弹窗处理
...
移除操作失败时关闭确认弹窗以展示错误;未执行时保留弹窗。
2026-09-12 21:19:36 +08:00
k88936
f7666339fe
修正组件替换失败弹窗处理
...
替换操作失败时关闭确认弹窗以展示错误;未执行时保留弹窗。
2026-09-12 21:19:14 +08:00
k88936
891cf50c0e
按节点重置组件检查面板
...
为 ComponentPanel 绑定节点 key,切换节点时清理折叠与确认状态。
2026-09-12 21:18:30 +08:00
k88936
b15a95e774
扩大 UI 节点随机标识空间
...
将节点 ID 从 8 位十六进制扩展到 16 位,降低批量识别中的碰撞概率。
2026-09-12 21:18:00 +08:00
k88936
e0f743b608
修复组件计数的布尔值转换
...
将布尔值显式转换为 usize,恢复 Rust 工作流模块编译。
2026-09-12 21:17:41 +08:00
k88936
a19684a5f5
Merge remote-tracking branch 'origin/master' into feat/ui-editor-auto-seperation
Project CI / Repository checks (pull_request) Failing after 1m7s
Project CI / Frontend tests (pull_request) Successful in 3m10s
Project CI / Backend tests (pull_request) Successful in 6m0s
Project CI / Native shell tests (pull_request) Successful in 18m41s
2026-09-12 19:46:41 +08:00
k88936
46b0871e6d
补充背景节点规则说明
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 2m48s
Project CI / Native shell tests (pull_request) Successful in 19m57s
2026-09-12 18:56:31 +08:00
k88936
5c40abce47
识别树根节点改为模型根节点
...
识别协议改用 trees[].root 并保留根节点非几何字段
同步根节点解析校验、提示词与 UI 树转换
2026-09-12 18:10:45 +08:00
k88936
47d09d51ef
简化并集中化随机 NodeId 生成逻辑
2026-09-12 17:57:48 +08:00
k88936
f05f6e49ab
复用原始图片编辑 HTTP 客户端
...
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 3m12s
Project CI / Native shell tests (pull_request) Failing after 4m20s
让 raw edit 接收 api-server 构造的 VectorEngine reqwest 客户端。
通过 request builder 保留有效请求超时,不修改现有连接池策略。
移除不再使用的客户端构造错误分支并同步技术方案。
2026-09-12 16:33:33 +08:00
k88936
c7fe531b16
恢复预览百分比按钮适配画布
...
将缩放百分比显示改为可点击的适配画布按钮
复用工具栏按钮的鼠标焦点处理并按当前容器重新计算视口
补充预览缩放组件回归测试并同步交互设计文档
2026-09-12 16:31:55 +08:00
k88936
d44c6ab62c
补充背景节点规则示例说明
2026-09-12 16:28:31 +08:00
k88936
6764950aec
限制原始图片上传字节
...
将 image 和 mask multipart 字段改为分块读取并限制单字段大小。
新增图片总字节上限、413 错误和字段/总量边界测试。
同步 Raw GPT Image 2 代理技术方案的资源防护合同。
2026-09-12 16:27:23 +08:00
k88936
0944667c37
限制原始图片解码并发
...
为 raw image PNG 预处理增加 AppState 专用 semaphore。
按请求截止时间限制槽位等待和 blocking 解码等待,并让 permit 持有到任务结束。
2026-09-12 16:22:06 +08:00
k88936
bb2f080d3b
分离产物使用 UUID 文件名
...
切分图片文件名改用 UUID,避免把 NodeId 当作物理路径。
继续通过 cut_paths 写入 BoundNode.cut_image_path,保留逻辑节点 ID 与产物路径的独立性。
2026-09-12 16:18:13 +08:00
k88936
413707da33
提前拒绝高位深 PNG 解码
...
通过 image crate 的 ImageReader decoder 元数据在像素缓冲分配前拒绝 16-bit PNG。
继续使用同一外部 decoder 执行受限像素读取校验,不手写 PNG 解析器。
2026-09-12 15:40:26 +08:00
k88936
6235fa3298
修复分离状态跨平台原子替换
...
使用唯一临时文件并同步写入,避免 checkpoint 临时文件互相覆盖。
Unix 使用 rename,Windows 使用 MoveFileExW 原子覆盖已有 state.json。
拒绝符号链接和非普通文件目标,并增加覆盖已有目标回归测试。
2026-09-12 15:40:12 +08:00
k88936
8a9d37d5ad
移除分离提示词的破坏性清洗
...
保留描述、返工意见和 NodeId 原文,删除重复截断与字符改写。
返工意见仍由 validate_binding_response 统一执行 MAX_REWORK_NOTE_CHARS 校验。
2026-09-12 15:19:24 +08:00
k88936
9bbfc56cd7
修正分离期间保存选项的闭包判断
...
由调用方明确传入的 allowDuringSeparation 直接生效,避免依赖点击时捕获的过期状态。
2026-09-12 15:02:56 +08:00
k88936
e9d0180054
集中管理 GPT Image 2 尺寸限制
...
将请求尺寸压缩与原始编辑校验共用同一组像素、边长和对齐常量。
2026-09-12 15:00:55 +08:00
k88936
664bdd6877
避免伪造原始图片供应商请求编号
...
原始图片响应未提供供应商 request id 时不再写入操作名作为关联编号。
2026-09-12 14:58:21 +08:00
k88936
39a64a864a
声明图片平台使用 reqwest 流式特性
...
为 Part::stream 补齐 platform-image 的直接依赖特性,支持独立构建。
2026-09-12 14:56:54 +08:00
k88936
f055961714
修正分离源图 MIME 识别回退
...
缺失或未知 MIME 时强制走 PNG 规范化,避免非 PNG 数据被误标为 image/png。
2026-09-12 14:55:35 +08:00
k88936
3bcabe36fa
清理字体校验中的冗余空值判断
...
按 FontSource 的实际联合类型保留运行时字体资源校验。
2026-09-12 14:54:49 +08:00
k88936
2bfc870854
复用分离流程已选批次节点
...
让批次校验和应用使用同一份已选节点,避免重复选择造成目标漂移。
2026-09-12 14:54:05 +08:00
k88936
b0e9741e81
在预览区尺寸变化时重新适配画布
...
将画布尺寸纳入适配视口 effect 依赖,恢复面板调整后的自动 fit。
2026-09-12 14:49:30 +08:00
k88936
b52a33cc28
明确提示词清洗的字符映射意图
...
使用 map 替代始终返回 Some 的 filter_map,保持清洗行为不变。
2026-09-12 14:48:42 +08:00
k88936
398edd6e86
将分离状态序列化移入阻塞任务
...
避免在异步执行器线程同步格式化大型 separation state。
2026-09-12 14:48:00 +08:00
k88936
9788087271
修复组件操作失败时确认弹窗卡住
...
当组件更新返回 undefined 时关闭替换或移除确认弹窗,避免操作无反馈地停留。
2026-09-12 14:47:01 +08:00
k88936
329de5fce9
修复组件面板展开状态重置
...
仅在组件存在性发生变化时同步展开状态,避免深拷贝更新意外重新展开。
2026-09-12 14:46:08 +08:00
k88936
e4d70fbe1b
移除 Raw 编辑无效恢复审计字段
...
Project CI / Repository checks (pull_request) Successful in 2m59s
Project CI / Frontend tests (pull_request) Successful in 3m18s
Project CI / Backend tests (pull_request) Successful in 7m7s
Project CI / Native shell tests (pull_request) Successful in 19m53s
RawImageEditResult 仅保留实际透传的 b64_images
删除 raw-edit 不会产生的恢复审计转发与文档描述
补充 PreparedRawImageEdit 的 Debug 派生以通过现有测试
2026-09-12 13:50:25 +08:00
k88936
aaa9d3fb6f
补齐 Raw 编辑恢复审计语义
...
保留 recovered_failure_audits 公共字段并注明当前同步无回退不变量
让 raw handler 记录未来恢复审计并写入成功摘要计数
同步 Raw GPT Image 2 技术方案文档
2026-09-12 13:44:17 +08:00
k88936
bd127846f7
允许分离流程在忙碌态保存结果
...
保留 isSeparating 属于 isAiRunning 的全局语义
为内部分离保存增加受控 allowDuringSeparation 选项
2026-09-12 13:36:30 +08:00
k88936
b1751784ba
修正切分状态写入日志格式
...
移除状态写入完成日志中多余的格式参数
2026-09-12 13:26:36 +08:00
k88936
379611d552
避免渲染阶段写入画布尺寸引用
...
在 ResizeObserver 尺寸更新回调中同步 canvasSizeRef
2026-09-12 13:20:30 +08:00
k88936
ef04a19d5a
抽取组件确认弹窗公共结构
...
统一替换与移除操作的确认弹窗布局
保留各操作独立文案与按钮样式
2026-09-12 13:19:59 +08:00
k88936
206b4830a1
复用原图编辑错误摘要
...
解析失败分支只计算一次截断响应并同时用于审计与错误返回
2026-09-12 13:19:10 +08:00
k88936
4b8e268816
统一重启切分失败通知
...
restartSeparation 失败时复用工作流完成上报并清理完成提示
2026-09-12 13:18:30 +08:00
k88936
7e7d6f1563
避免忙碌时继续切分隐藏恢复提示
...
在清理恢复对话框前检查分离与工作流忙碌状态
2026-09-12 13:18:13 +08:00
k88936
a4b1d81123
避免忙碌时重启切分丢失恢复状态
...
restartSeparation 在清理 sidecar 前复用并发工作流守卫
2026-09-12 13:17:52 +08:00
k88936
983b15c3a7
允许恢复流程识别已完成的素材回填
...
同一 Sprite 已绑定的节点直接跳过
仅对缺失 Image 或绑定其他素材报告错误
2026-09-12 13:17:38 +08:00
k88936
cdb6fcfe97
切换组件时重置检查面板展开状态
...
按组件身份变化同步展开状态,避免沿用上一个节点的折叠状态
2026-09-12 13:17:01 +08:00
k88936
d8a4e35232
减少切分状态写入的重复克隆
...
让状态写入接口借用状态并在阻塞任务中写入序列化字节
保留 schema 与大小校验,避免每批次复制完整状态树
2026-09-12 13:16:25 +08:00
k88936
0726106818
为图片分离请求设置超时
...
将原图编辑 HTTP 请求限制为 120 秒,避免工作流永久阻塞
2026-09-12 13:14:22 +08:00
k88936
8beade5b4d
为业务校验重试增加退避
...
校验失败重试复用请求错误的递增等待并记录日志
2026-09-12 13:13:56 +08:00
k88936
46984a4945
净化切分提示中的节点标识
...
复用提示文本清洗逻辑,阻断控制字符与反引号注入
2026-09-12 13:13:25 +08:00
k88936
a8a30ecbc8
修正切分恢复命令映射
...
finalize_separation 调用 finalize helper
discard_separation_recovery 调用 discard helper
2026-09-12 13:13:06 +08:00
k88936
48e669d167
合并主线并解决界面编辑器冲突
...
Project CI / Repository checks (pull_request) Successful in 2m44s
Project CI / Frontend tests (pull_request) Successful in 3m25s
Project CI / Backend tests (pull_request) Failing after 4m23s
Project CI / Native shell tests (pull_request) Successful in 17m48s
合并主线的 AGC Runtime、UI 工作流与开发脚本变更
保留现行 Prompt Runtime 结构并整合设计基础提示词契约断言
适配 CanvasWorld 逆缩放渲染并修正预览缩放回归测试
同步项目文档、共享契约与已退役策划资源清理
2026-09-12 11:38:50 +08:00
k88936
23fdc005fe
整理 Raw 编辑方案文档格式
...
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m10s
Project CI / Native shell tests (pull_request) Failing after 14m49s
分隔字节边界说明与代码拆分列表
2026-09-12 11:22:50 +08:00
k88936
b8a4523a4f
补充 Raw 编辑字节边界说明
...
记录 raw_edit 使用 Bytes streaming multipart 的零拷贝约束
明确既有图片链路继续保持 Vec 字节契约
2026-09-12 11:20:53 +08:00
k88936
9c04561419
明确 Raw 编辑零拷贝上传约束
...
补充 Bytes 所有权与 streaming multipart 注释
增加共享字节缓冲不转换的回归测试
2026-09-12 11:18:14 +08:00
k88936
551fb6609a
为 Raw 编辑建立独立字节类型
...
恢复旧图片链路的 Vec 字节契约
让新增 raw_edit 输入和结果类型独立于既有 ReferenceImage
2026-09-12 11:15:15 +08:00
k88936
d05440dcca
为 Raw 编辑建立独立字节类型
...
恢复旧图片链路的 Vec 字节契约
让新增 raw_edit 输入和结果类型独立于既有 ReferenceImage
2026-09-12 11:13:27 +08:00
k88936
7edf4a8f8b
恢复旧图片链路字节类型
...
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 2m43s
Project CI / Native shell tests (pull_request) Failing after 14m6s
撤回非 raw_edit 的全局 Bytes 迁移
保留既有 VectorEngine 与编辑器路径的 Vec 字节契约
2026-09-12 11:06:05 +08:00
k88936
afc9ecbd51
补充 WebP 源图转码测试
...
验证 WebP 输入可转换为 PNG 上传格式
2026-09-12 10:42:15 +08:00
k88936
fc2f4b71ce
支持分离流程转换非 PNG 源图
...
在上传图片编辑请求前将 JPEG 和 WebP 转码为 PNG
新增 JPEG 转 PNG 单元测试并将转码放入阻塞任务
2026-09-12 10:38:00 +08:00
k88936
545f64cf9e
补齐原图编辑失败追踪事件
...
provider 失败时记录 external_generation_run 失败状态
保留现有外部 API 失败审计与错误映射
2026-09-12 10:37:04 +08:00
k88936
2a50614c11
将分离恢复阻塞 I/O 移出异步线程
...
新增 spawn_blocking 状态读取封装
sidecar 目录创建改用阻塞任务执行
2026-09-12 10:23:32 +08:00
k88936
915006c98f
适配绑定区域类型错误调用方
...
在区域归一化边界转换 typed error 为展示文案
2026-09-12 10:23:21 +08:00
k88936
69ce232a74
为绑定区域校验引入类型错误
...
用 ZeroDimension 和 OutOfBounds 区分边界校验失败
补充 typed error 单元测试并保留展示层中文文案
2026-09-12 10:20:17 +08:00
k88936
319aa69d6e
统一分离树根节点坐标空间
...
子节点收集复用根节点实际解析矩形
2026-09-12 02:24:01 +08:00
k88936
bec468bdc9
统一分离终止节点判定
...
批次选择与提取提示复用同一终止节点集合
2026-09-12 02:23:02 +08:00
k88936
eada20c199
恢复自动切分前重新校验状态
...
继续分离前确认 sidecar 存在并检查前置条件
恢复入口异常统一写入工作流失败通知
2026-09-12 02:20:52 +08:00
k88936
e8cf773aac
统一自动切分失败完成提示
...
分离入口异常时写入工作流完成失败通知
2026-09-12 02:19:48 +08:00
k88936
12fbb61fad
限制分离恢复状态写入大小
...
写盘前校验与读取一致的八兆字节上限
超限时记录原因并拒绝不可恢复检查点
2026-09-12 02:17:55 +08:00
k88936
478e08fb92
将 PNG 依赖限定为测试环境
...
从生产依赖移除仅测试使用的 png crate
在 dev-dependencies 中声明 PNG 测试依赖
2026-09-12 02:13:52 +08:00
k88936
0e67fbf80a
停止对最终工作流步骤重复预检
...
资产分离作为最后步骤不再校验不存在的下一步
2026-09-12 02:12:15 +08:00
k88936
ed2cfbad36
避免预览容器变化重置缩放
...
自动适配仅在图片或逻辑尺寸变化时执行
通过尺寸引用保留初始视口兜底值
2026-09-12 02:11:22 +08:00
k88936
560422286b
稳定组件面板展开与移除交互
...
仅在组件存在性变化时自动展开面板
为移除组件增加确认并保留失败弹窗
2026-09-12 02:08:56 +08:00
k88936
e04075fd95
为分离模型请求增加重试退避
...
瞬时请求失败时按递增毫秒延迟后重试
将重试循环末尾改为不可达断言
2026-09-12 02:07:02 +08:00
k88936
d7776f2a17
修正文生绑定提示语法
...
改进分离要求和返工建议英文表述
2026-09-12 02:05:18 +08:00
k88936
4d9e69841e
加固分离提示词生成
...
绑定提示改用切片参数避免多余复制
清理提取提示中的描述与返工备注文本
2026-09-12 02:04:32 +08:00
k88936
49e88bbd9f
统一分离提示备注长度限制
...
复用模型层的重做备注字符上限
导出提示文本清理函数供投影复用
2026-09-11 21:55:15 +08:00
k88936
86c268eca3
分离恢复使用独立丢弃操作
...
新增独立的恢复状态丢弃入口
完成与 finalize 的共享状态删除逻辑
2026-09-11 21:54:17 +08:00
k88936
c86221e3da
添加 TODO 注释以提示恢复字符限制错误信息
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 3m3s
Project CI / Native shell tests (pull_request) Failing after 14m57s
2026-09-11 20:12:16 +08:00
k88936
e7af7cf4e4
校验处理图区域并明确 multipart 字节上传
...
将处理图真实尺寸传入视觉绑定校验,提前拒绝零尺寸和越界区域。
保持非法区域直接失败,不转换为 NeedRework。
将 image 和 mask multipart 部分改为 Part::bytes。
2026-09-11 20:11:11 +08:00
k88936
e7cd008d7c
调整文本组件的识别规则
...
简化多行文本节点逻辑,明确文字与图片组件的绑定要求。
2026-09-11 20:06:09 +08:00
k88936
c743ca146e
复用图像下载的共享字节缓冲
...
将 DownloadedImage.bytes 改为 bytes::Bytes。
让远程下载和图标切片下游避免不必要的完整复制。
同步更新图像处理实现与测试 fixture。
2026-09-11 19:53:14 +08:00
k88936
8c8b6cc75a
将自动切分状态写盘移出 Tokio worker
...
用 spawn_blocking 承载 JSON 序列化和文件写入,并在工作流中等待结果。
2026-09-11 19:44:01 +08:00
k88936
4cf3642b53
说明视觉绑定解析错误的有限重试策略
...
记录严格工具 schema 和响应损坏重试边界。
2026-09-11 19:41:48 +08:00
k88936
f933db169e
说明结构化重试的有限上下文边界
...
记录现役调用方的小重试次数和保留完整反馈的设计依据。
2026-09-11 19:41:21 +08:00
k88936
a5e936dd27
清理已退役的前端绑定模块
...
删除无现役导入的 binding.ts 及其 BindingDTO、BindingChange 类型。
2026-09-11 19:39:59 +08:00
k88936
53008959c5
修正自动切分结果的类型收窄
...
在异步闭包赋值后明确已完成结果的非空类型。
2026-09-11 19:09:22 +08:00
k88936
57dbb3de52
替换已有组件前增加确认
...
使用独立确认弹窗避免一次点击覆盖已配置组件。
2026-09-11 19:07:12 +08:00
k88936
e189aff485
更新设计基础提示词契约测试
...
将测试断言同步到当前按需图片生成与动态产物合同。
2026-09-11 19:05:57 +08:00
k88936
248c094da9
清理合并命令测试中的无用导入
...
移除组件类型未再使用的测试模块导入。
2026-09-11 19:05:03 +08:00
k88936
e66eb2fb55
切换预览图片时自动适配画布
...
在活动图片变化后重新按完整画布边界计算视口。
2026-09-11 19:04:33 +08:00
k88936
d455dc18a9
按实际保存快照更新脏状态签名
...
保存成功后直接记录持久化快照签名,避免闭包中的旧编辑器状态阻止清脏。
2026-09-11 19:03:51 +08:00
k88936
04a0d21351
避免原始 PNG 的重复解析
...
使用解码后的颜色类型校验位深,将读取限制统一留在 image 解码器。
2026-09-11 19:03:03 +08:00
k88936
a9358bf3ce
防止字体前置校验访问空值
...
对外部状态中的空字体引用返回正常校验结果而不是抛出异常。
2026-09-11 19:00:49 +08:00
k88936
c3de2ce958
为自动切分命令增加项目写权限校验
...
在启动分离工作流前复用 asset.register 权限门禁。
2026-09-11 19:00:19 +08:00
k88936
287d2f94da
限制自动切分恢复状态读取大小
...
在解析 sidecar state 前检查文件大小,避免异常分配。
2026-09-11 18:59:51 +08:00
k88936
1343f487d0
为自动切分工作流增加忙碌保护
...
统一直接调用入口的并发防护,避免状态锁冲突。
2026-09-11 18:59:10 +08:00
k88936
73fb89a8f4
阻止本地素材登记结果错位回填
...
资源导入返回数量与请求路径不一致时立即中止位置映射。
2026-09-11 18:58:35 +08:00
k88936
bf2ffd2bf9
拒绝保存无可见像素的切分区域
...
透明裁切区域直接返回可恢复错误,避免登记空素材。
2026-09-11 18:58:13 +08:00
k88936
3f55f043a1
拒绝切分产物路径中的非法节点标识
...
在写入 cut 图片前限制节点 ID 字符并确认路径仍位于 sidecar 内。
2026-09-11 18:57:19 +08:00
k88936
26677b193c
复用界面树组件计数值
...
在同一行中复用组件数量,避免重复计算。
2026-09-11 18:56:13 +08:00
k88936
b8691add3a
移除区域归一化日志路径中的恐慌
...
直接记录归一化结果,避免诊断日志调用 expect。
2026-09-11 18:55:28 +08:00
k88936
bfe010a192
让视觉绑定调试预览写入失败可降级
...
调试 PNG 写入失败时记录警告并继续绑定流程。
2026-09-11 18:55:06 +08:00
k88936
6db6de5b99
同步检查器组件面板展开状态
...
切换节点或组件时重置展开状态,避免复用旧节点的折叠状态。
2026-09-11 18:54:39 +08:00
k88936
87a7294a04
细化组件绑定载荷形状校验
...
在反序列化前拒绝空值和无效的节点组件外部枚举。
2026-09-11 18:54:21 +08:00
k88936
3774d7c1e1
移除修复重试流程中的隐式恐慌
...
在循环意外结束时返回可恢复错误而不是触发 unreachable。
2026-09-11 18:53:34 +08:00
k88936
8d15125f12
限制切分提示词中的节点备注
...
对用户备注清理控制字符和围栏符号并限制长度。
2026-09-11 18:52:59 +08:00
k88936
cf68b8212d
让提取提示词序列化错误可恢复
...
将提取提示词生成改为返回带上下文的错误。
2026-09-11 18:52:10 +08:00
k88936
8d7ccc0d75
简化工作流操作卡状态映射
...
使用步骤映射替代嵌套三元表达式。
2026-09-11 18:51:30 +08:00
k88936
2af3d9a965
修正结构识别步骤的前置校验
...
将结构识别活动步骤改为校验素材切分前置条件。
2026-09-11 18:50:59 +08:00
k88936
4749339bad
补齐图片字节类型导出与转换
...
Project CI / Repository checks (pull_request) Failing after 31s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 3m56s
Project CI / Native shell tests (pull_request) Failing after 3m33s
导出共享 GPT 图片尺寸阈值常量。
修复编辑器参考图 Bytes 与 Vec 边界转换。
2026-09-11 18:02:04 +08:00
k88936
3e85c71060
整理图片代理代码格式
...
按 Rust 格式化规范整理 multipart 与响应解析代码。
2026-09-11 17:55:50 +08:00
k88936
da19bde99a
同步八位 PNG 与 b64 契约
...
记录八位 PNG 校验规则与稳定错误文案。
说明 GPT-Image-2 原生 b64_json,不发送 response_format。
2026-09-11 17:52:26 +08:00
k88936
4a32ee37c4
修复 Bytes 迁移后的图片类型边界
...
统一使用 Bytes 的只读引用并在旧 Vec 接口处显式转换。
修复编辑器参考图对齐与 Raw PNG 解码编译错误。
2026-09-11 17:52:00 +08:00
k88936
31fd1da495
修正 GPT 图片响应契约说明
...
仅保留 GPT-Image-2 原生 b64_json 行为的行内注释。
不发送 response_format 参数,也不引入 URL 兼容下载。
2026-09-11 17:48:55 +08:00
k88936
4c88e5e924
限制 Raw 图片仅接收八位 PNG
...
使用 png 解码器读取位深并在 image 解码前拒绝非八位输入。
统一返回稳定的 8-bit PNG 客户端错误并补充十六位 PNG 测试。
2026-09-11 17:48:01 +08:00
k88936
99f4961c5f
统一 GPT 图片尺寸计费阈值
...
提取共享的 1536 长边 tier 常量并复用到 raw 与编辑器计费。
同步 Raw 图片代理技术合同中的阈值来源。
2026-09-11 17:47:31 +08:00
k88936
0cebc39b6a
同步 Raw 图片代理契约
...
记录文本字段 16KiB 流式限制。
记录 GPT-Image-2 固定 b64_json 响应格式。
2026-09-11 17:37:58 +08:00
k88936
842d080a75
锁定图片缓冲依赖
...
将 platform-image 使用的 bytes 依赖写入 Cargo.lock。
2026-09-11 17:37:32 +08:00
k88936
8cd6e34af0
调整图片切分批次请求尺寸计算逻辑
...
基于批次源矩形总面积动态计算 image-edit 请求尺寸,新增面积对齐和最小/最大值限制,扩展相关模块和测试以支持调整后的工作流。
2026-09-11 17:33:26 +08:00
k88936
b357d36262
明确 GPT 图片编辑响应格式
...
原始图片编辑请求固定声明 response_format=b64_json。
补充 GPT-Image-2 仅返回 b64_json 的契约行内注释。
2026-09-11 17:29:11 +08:00
k88936
48c5638893
扩大原始图片文本字段上限
...
multipart 文本字段改为 chunk 流式读取并限制 16KB。
统一 UTF-8 校验和超限错误,避免先完整分配超长 prompt。
2026-09-11 17:28:13 +08:00
k88936
46df12c086
收敛原始图片 multipart 错误
...
服务端记录解析原始错误,客户端仅返回稳定分类文案。
2026-09-11 17:26:33 +08:00
k88936
4bdbab29c0
优化原始图片请求缓冲
...
将 ReferenceImage 与 multipart 输入改用 bytes::Bytes。
通过流式 multipart part 避免 reqwest 路径的额外整图复制。
2026-09-11 17:25:25 +08:00
k88936
9acc23b848
抽离 DFS 批次逻辑至独立模块,并优化节点面积计算与终端过滤流程
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 8m16s
Project CI / Native shell tests (pull_request) Failing after 11m7s
2026-09-11 15:34:30 +08:00
k88936
b9b4ebd38e
重命名图片编辑为提取模块并更新相关调用绘制流程
Project CI / Repository checks (pull_request) Failing after 16s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Native shell tests (pull_request) Failing after 4m22s
Project CI / Frontend tests (pull_request) Successful in 11m36s
2026-09-11 15:18:05 +08:00
k88936
8f680ef376
视觉绑定增加透明标记预处理
...
新增视觉绑定 RGBA 预处理与阈值复用
在请求前生成不透明洋红标记图并记录耗时
更新英文提示词说明标记色语义
2026-09-11 15:09:44 +08:00
k88936
7c7d55dcab
重构提取提示词生成逻辑,移除文本拼接方式,新增 YAML 序列化结构与测试
2026-09-11 14:54:00 +08:00
k88936
1303592a86
重构UI编辑器素材切分工作流模块
...
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 5m17s
Project CI / Native shell tests (pull_request) Failing after 6m41s
拆分提取与绑定提示词模块
拆分图片编辑、视觉绑定、裁切和批次 patch 实现
同步技术方案实现组织说明并更新提示词测试
2026-09-11 13:54:33 +08:00
k88936
1db7597141
重构UI素材切分树与批次选择
...
移除文本遮罩和标记图生成流程,图片编辑直接读取原始界面图
引入节点类型并保留文字移除上下文,按前序DFS与面积预算选择图片批次
补充根节点、重叠节点、文字过滤和超面积推进测试并同步TypeScript类型
2026-09-11 12:55:53 +08:00
k88936
13701d0144
澄清UI自动切分的原图输入与调试产物
...
明确图片编辑直接使用原始界面图,不再生成辅助输入图
明确处理图与裁切图使用随机文件名并保留用于调试
2026-09-11 11:56:33 +08:00
k88936
5c83142fec
更新UI编辑器自动切分素材工作流方案
...
将多轮整图分层与DFS面积批次写入权威专题
明确TextRemovalOnly、视觉绑定和atlas输出合同
删除平行专题文档并保留后续TODO
补充UI编辑器自动分离多轮分层方案
新增整图语义分层与多轮 image-edit 方案
明确 DFS 批次、TextRemovalOnly 和视觉绑定合同
记录面积预算、恢复边界与后续 TODO
2026-09-11 11:10:51 +08:00
k88936
95ed49f264
调整素材切分边界像素上限
...
将视觉绑定区域每条边的调整上限改为固定 32px。
同步 UI 编辑器自动切分技术方案与项目决策记录。
更新边界测试以覆盖绝对像素限制。
2026-09-11 10:28:32 +08:00
k88936
b8d8072267
完善识别命令说明,新增禁止冗余背景节点的指引
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 2m44s
Project CI / Native shell tests (pull_request) Failing after 3m5s
2026-09-10 19:54:46 +08:00
k88936
462caa33c5
修复工作流完成弹窗的多行错误展示
...
让完成通知中的换行字符按实际换行渲染,避免多项回填错误挤成一行。
保持通知内容和弹窗交互不变。
2026-09-10 19:06:20 +08:00
k88936
4e1064266f
移除自动切分结果的冗余类型断言
...
依赖空值检查后的 TypeScript 类型收窄直接使用 SeparationDTO。
不改变自动切分流程或运行时行为。
2026-09-10 19:05:48 +08:00
k88936
a50cbfb6c8
过滤图片编辑响应中的空图像数据
...
忽略上游返回的空 b64_json 条目,避免把空字符串转发为图像结果。
新增空条目与有效条目混合响应的回归测试。
2026-09-10 19:04:40 +08:00
k88936
1eb4bd5ec0
明确拒绝无效的处理图数据地址
...
处理图缺少 data URL 分隔符时直接返回格式错误。
避免先写入空文件再在后续裁切阶段暴露误导性错误。
2026-09-10 19:03:29 +08:00
k88936
5b441d389c
忽略完全位于图片外的切分标记矩形
...
矩形起点超出图片边界时直接返回 None,避免在边缘绘制伪影。
新增越界矩形回归测试。
2026-09-10 19:02:40 +08:00
k88936
f200cb4d3c
避免标记图编码重复复制像素缓冲
...
复用同一个 DynamicImage 完成文件保存和返回数据编码。
保持标记图内容和错误处理不变。
2026-09-10 19:02:09 +08:00
k88936
ae2f5fc80b
记录 UI 编辑器重试中的请求错误
...
在结构化 LLM 请求的中间重试失败时写入尝试次数和错误日志。
保留原有重试次数、历史消息和最终错误语义。
2026-09-10 19:01:32 +08:00
k88936
b69bd88e5e
修正 UI 编辑器校验器命名
...
将 run_with_repair_history 的 Validater/validater 更正为 Validator/validator。
不改变重试流程和运行时行为。
2026-09-10 19:01:18 +08:00
k88936
c5c7339c4a
重命名分离模块 problem_description 为 advice 并同步更新相关校验逻辑与测试
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 2m28s
Project CI / Native shell tests (pull_request) Failing after 14m32s
2026-09-10 18:54:10 +08:00
k88936
4bbc77fc32
增加UI自动切分耗时日志
...
补充 marker、area、LLM、图片编辑及 batch 阶段耗时观测
记录成功与失败路径的性能字段
同步自动切分工作流技术方案中的日志约定
2026-09-10 18:51:53 +08:00
k88936
8c521ca891
移除 UI 预览适配与缩放输入
...
删除预览工具栏适配按钮、适配回调与对应快捷键
将缩放百分比改为只读显示并移除输入组件及测试
2026-09-10 18:48:56 +08:00
k88936
69a0804c03
调整切分区域边界扩展上限
...
将像素边界每边调整上限常量设为百分之百
同步更新受影响的区域归一化测试
技术方案仅引用上限常量,不重复写死数值
2026-09-10 18:46:39 +08:00
k88936
74f726e65d
修正自动切分素材检查条件
...
移除自动切分对预先导入独立素材的错误要求。
统一自动切分前置与结果检查,并补齐图片和字体引用校验。
在新建和重新开始自动切分时执行前置检查,恢复流程继续尽力完成。
2026-09-10 18:43:31 +08:00
k88936
1509235c1b
统一自动切分素材工作流命名
...
将 UI 编辑器第三步和内部流程 ID 统一为自动切分素材。
重命名前端切分概览模块并更新完成、恢复和导航文案。
同步 Runtime 最终编辑器路由、测试与相关技术文档。
2026-09-10 15:11:29 +08:00
k88936
1c992c69fe
完善分离与识别命令说明,调整嵌套格式与结构化指引
2026-09-10 14:05:37 +08:00
k88936
d9b153ed78
完善分离命令说明,新增禁止未请求文本的指引
2026-09-10 13:15:42 +08:00
k88936
30c469e9a1
规范分离模块格式化写法
2026-09-10 13:15:34 +08:00
k88936
51f629b2f9
UI编辑器节点改为单组件模型
...
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Successful in 2m43s
Project CI / Native shell tests (pull_request) Failing after 14m29s
修改 Node、Binding DTO、识别与分离链路为 component 单字段
为识别和绑定 LLM 工具引入 PureNode/WithComponent 显式载荷
移除前端组件索引、排序和组件栈操作
同步生成 ts-rs TypeScript 类型、状态校验、测试与专题文档
2026-09-10 13:08:29 +08:00
k88936
d6c720ecdd
纠正分离模块导出提交边界
...
撤销误入的组件字段重命名测试改动
仅保留裁切工作流对面积归一化模块的直接依赖
2026-09-10 12:26:39 +08:00
k88936
086aa91d70
收窄分离区域模块导出
...
让裁切工作流直接依赖面积归一化模块
移除未使用的公共重导出,保持分离模块边界清晰
2026-09-10 12:24:18 +08:00
k88936
3733e86272
补充分离区域像素归一化约定
...
记录透明像素边界扫描、方向锁定与四边同步推进规则
明确 50% 与图像边界约束、透明图处理、日志字段和性能 TODO
2026-09-10 12:13:21 +08:00
k88936
5d0f3e6be6
UI编辑器分离区域像素边界归一化
...
新增独立 BindingArea 像素边界归一化模块与回归测试
在 cut 裁切前按透明像素收缩或扩展四条边并记录约束结果
接入分离工作流并保留原始与归一化区域日志
2026-09-10 12:13:04 +08:00
k88936
989440173f
完善绑定区域值类型约束
...
为 BindingArea 增加 Eq 以支持分离区域比较
2026-09-10 11:52:46 +08:00
k88936
22d9958d18
在分离标记图中遮罩普通文字
...
绘制文字紫色区域并保持绿色元素框在最上层
增加文字遮罩图层顺序测试
2026-09-10 10:57:50 +08:00
k88936
56f8c9a6a1
构造自动分离文字遮罩
...
按最近未绑定图片祖先收集 Text 布局像素矩形
补充嵌套图片与根图片遮罩构造测试
2026-09-10 10:49:45 +08:00
k88936
c84df3d88f
补充文字遮罩状态字段契约
...
明确 text_mask_areas 为当前 separation state 必选字段
保持开发阶段 v1 且不提供旧 sidecar 迁移回退
2026-09-10 10:49:07 +08:00
k88936
761d32cebf
拆分自动分离模型并增加文字遮罩区域
...
将 separation model 拆为 note、node、binding、result 模块
为 SeparationNode 增加 text_mask_areas 字段并同步 TypeScript 类型
2026-09-10 10:43:00 +08:00
k88936
b3d6543d73
补充自动分离文字遮罩方案
...
记录普通文字归属、遮罩字段与标记图绘制规则
明确不进入分离树、绑定结果和视觉模型契约
2026-09-10 10:32:34 +08:00
k88936
8cd7c43b9e
更新自动分离接入文档状态
...
将前端接入 TODO 更新为联调与失败注入测试待办。
2026-09-09 21:02:09 +08:00
k88936
7fb7d246c0
将视觉步骤切换为自动分离
...
前端仅调用一次 separate_ui,并完成 cut 图片登记、SpriteAsset 回填和 State 保存。
增加 sidecar 恢复选择面板,旧 bind_components 标记为未调用遗留命令。
2026-09-09 21:00:53 +08:00
k88936
5844afa14d
抽取自动分离素材状态变换
...
复用 SpriteAsset 校验并支持锁内构造下一份 State。
保留公开 addSpriteAssets 的锁保护与历史提交行为。
2026-09-09 20:17:11 +08:00
k88936
615d1a28cd
补齐自动分离恢复状态胶水
...
新增 separation 恢复探测、完成清理命令与 DTO。
持久化项目相对 cut 图片路径并保留 state sidecar 到最终提交。
2026-09-09 20:16:09 +08:00
k88936
3e1e172f9c
补充自动分离前端接入合同
...
明确 UI 编辑器单次调用 separation 与 sidecar 恢复弹窗
补充资源登记、State 回填、保存和 finalize 顺序
划定旧 binding 与 Runtime workflow 的本次不改范围
2026-09-09 20:03:27 +08:00
k88936
53a919e39b
优化 UI 分离工作流程的提示生成与历史处理
...
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / Native shell tests (pull_request) Failing after 3m4s
- 调整 initial_history 构建逻辑,增强系统与用户消息的一致性。
- 简化 SeparationNode 提示生成逻辑,仅保留节点 ID 与注释。
- 明确 extracted_area 的权威性为 processed 图像,并更新生成提示的规则。
2026-09-09 19:04:56 +08:00
k88936
d4b5f9fc14
重构 UI Editor LLM repair history
...
将 request_with_feedback 改为 run_with_repair_history 并统一 max_retries 与 validater 命名。
让 requester 接收 append-only LlmMessage history,业务校验失败追加序列化响应和错误反馈。
迁移 visual_binding 调用方并补充 retry-only 与业务反馈 history 测试。
同步 UI Editor 结构化请求 repair history 决策文档。
2026-09-09 16:46:29 +08:00
k88936
6e4f9a6f1f
完善 UI 自动分离返工意见链路
...
记录视觉模型 NeedRework 意见并注入后续提取提示
同步返工次数、problematic 终态和 512 字符校验
补充 separation DTO 类型、回归测试与技术方案
2026-09-09 16:29:54 +08:00
k88936
8a0dcf8be7
增强分离标记框的可视辨识度
...
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 3m4s
Project CI / Native shell tests (pull_request) Failing after 4m38s
为分离标记框增加两条绿色角到角交叉线。
新增 MARKER_LINE_WIDTH 常量统一配置标记线宽,并确保绘制结果裁剪在矩形内。
补充标记框像素级回归测试并同步更新自动分离专题文档。
2026-09-09 16:24:11 +08:00
k88936
aa2a78f7e0
重命名 separated_image_area 为 extracted_area,优化命名一致性并明确区域含义
2026-09-09 15:48:32 +08:00
k88936
7aa96e8438
统一分离标记图中文注释
...
说明紫色重建与绿色框绘制层级
2026-09-09 15:16:39 +08:00
k88936
feb6bc0ad4
修正分离失败恢复边界
...
图片编辑、写入和裁切失败保留状态并返回错误
仅视觉模型返工结果进入 problematic
2026-09-09 15:07:49 +08:00
k88936
f349350d60
同步分离状态 TypeScript 类型
...
加入 root_extractable 并将树字段统一为 trees
2026-09-09 15:03:48 +08:00
k88936
df3a172bc9
补充 Raw GPT Image 2 multipart 合同
...
明确分离图片编辑请求字段与旧协议边界
2026-09-09 14:57:55 +08:00
k88936
9b4924c73e
补充分离批次重叠筛选测试
...
验证 DFS 顺序下贪心跳过重叠叶节点
2026-09-09 14:54:37 +08:00
k88936
d30bc462c5
格式化自动分离 Rust 模块
...
统一树选择、标记图和批次流程代码风格
2026-09-09 14:50:19 +08:00
k88936
26b9ad7fad
重构分离树与非重叠批次选择
...
保留真实根节点并记录 root_extractable
按终态反查和 DFS 贪心筛选逻辑叶
拆出父子区域标记图生成模块
2026-09-09 14:48:18 +08:00
k88936
bc5398894e
补充分离树与批次算法约定
...
明确真实根节点、逻辑叶和非重叠贪心选择
补充父节点紫色重建与错误恢复边界
2026-09-09 14:29:38 +08:00
k88936
11d4d3d930
适配 UI 分离图片编辑 multipart 接口
...
Project CI / Frontend tests (pull_request) Successful in 4m57s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Native shell tests (pull_request) Failing after 5m40s
将标记图 data URL 解码为 PNG 文件部件。
按 Raw GPT Image 2 新合同发送 prompt、尺寸和输出参数。
保留响应 data[].b64_json 解析与 separation 流程不变。
2026-09-09 13:17:36 +08:00
k88936
418d5732de
调整UI识别指令,细化粒度要求并优化组件返回规则
2026-09-09 13:12:51 +08:00
k88936
592b6b4ee7
简化识别树验证测试中的断言格式
2026-09-09 13:12:51 +08:00
k88936
99c19e3ed9
补充分离流程排障日志
...
记录 separation sidecar 状态读写与恢复阶段
记录树构造、批次选择、视觉绑定、裁切和 patch 结果
避免输出 base64、完整提示词和敏感凭据
2026-09-09 13:12:51 +08:00
k88936
15e30acb0f
调整UI识别指令细节,明确文字组件识别规则与粒度标准
2026-09-09 13:12:51 +08:00
k88936
56fff8325b
将自动分离图像处理移出异步执行器
...
在 spawn_blocking 中构建标记图并编码写入处理图
在 spawn_blocking 中完成处理图裁切与文件输出
保留 image-edit 和视觉绑定网络请求的 async 调度边界
2026-09-09 13:12:51 +08:00
k88936
884c5ec5ee
补充自动分离 sidecar 并发边界约束
...
记录前端单次运行与 runWithStateLocked 的并发前提
明确 sidecar 不参与正式资产写入和项目 revision
补充未来多窗口多进程场景的进程级锁 TODO
记录图像本地处理使用 spawn_blocking 的执行边界
2026-09-09 13:12:51 +08:00
k88936
207b0820dd
统一分离树文件格式
...
按仓库 rustfmt 规范整理 synthetic root 实现
2026-09-09 13:12:51 +08:00
k88936
19f3d62d78
隔离非法分离区域导致的批次失败
...
将裁切错误记录为 problematic 并继续流程
避免单个模型区域终止整页分离
2026-09-09 13:12:51 +08:00
k88936
3c1e7bd599
保留分离问题节点的真实重做次数
...
避免基础设施失败伪造达到上限
保持 problematic 节点诊断信息准确
2026-09-09 13:12:51 +08:00
k88936
dda6b3946a
阻止识别结果引用未授权字体素材
...
补齐识别阶段字体引用校验
增加伪造字体绑定回归测试
2026-09-09 13:12:51 +08:00
k88936
aff40f794d
修复分离树合成根节点 ID 冲突
...
避免单图根节点重复进入重做计数
补充根图片构造回归测试
2026-09-09 13:12:50 +08:00
k88936
187faa607d
保留原始分离提示并拆分模块
...
按模型、树、持久化、提示词和工作流拆分 separation
提取支持 more_turn 的反馈重试 harness
删除旧 separation.rs 文件
2026-09-09 13:12:50 +08:00
k88936
109cc81740
拆分UI自动分离命令模块
...
保留原始图片分离与绑定提示词
提取模型、树、持久化和工作流子模块
新增可配置 more_turn 反馈重试 harness
2026-09-09 13:12:50 +08:00
k88936
f796aef7e2
完善UI自动分离批次处理
...
复用资源ID安全路径并修正像素坐标
加入标记图、Raw编辑、视觉绑定修复与问题节点继续处理
2026-09-09 13:12:50 +08:00
k88936
4cc7f4dd64
实现UI自动分离命令
...
新增分离树、批次处理与sidecar状态
接入Raw GPT Image 2与视觉绑定重试
注册Tauri命令并补充识别组件草稿
2026-09-09 13:12:50 +08:00
k88936
b2d4690f94
补充UI编辑器自动分离工作流合同
...
新增自动分离、临时 sidecar 与视觉绑定设计合同
明确前端资产登记职责与恢复 TODO
2026-09-09 13:12:50 +08:00
k88936
0400103a19
将 Raw 图片编辑入站改为 multipart
...
移除 JSON/base64 入站兼容,仅接受 multipart 图片与参数字段
复用扣费前 PNG、尺寸、mask 和 prompt 校验并补充 multipart 测试
优化上游图片字节转发,避免再次克隆 image bytes
同步 Raw 图片编辑技术方案与 Axum multipart 依赖
2026-09-09 13:06:22 +08:00
k88936
c049d68b8e
收紧 Raw 成功响应字段类型
...
要求 data 与 b64_json 必填并移除无用 provider id
prompt 上限调整为 4 KiB 原始字节并同步文档
2026-09-09 12:03:03 +08:00
k88936
acfcf0c158
同步 platform-image 的 serde 锁定依赖
...
为 Raw typed 响应记录 serde workspace 依赖
2026-09-09 11:51:25 +08:00
k88936
5bbedd9a5c
限制 Raw prompt 原始字节大小
...
将 prompt UTF-8 原始字节限制为 16 KiB
补充超限回归测试并同步请求合同
2026-09-09 11:50:30 +08:00
k88936
40316d82c4
在扣费前校验 Raw mask 尺寸
...
解码时保留 image 与 mask 宽高并拒绝不一致输入
同步 Raw 图片编辑请求合同与回归测试
2026-09-09 11:45:44 +08:00
k88936
6c77de4a36
为 Raw 成功响应收紧类型透传
...
使用 typed JSON DTO 提取并原样转发 b64_json
不解码图片内容且忽略 output_format 回显
2026-09-09 11:44:31 +08:00
k88936
b3693765ef
透传 Raw 图片结果避免解码回显字段
...
仅转发上游 data.b64_json 并忽略 output_format
同步 Raw 技术方案并补充不解码回归测试
2026-09-09 11:34:41 +08:00
k88936
f7edc9d0ee
区分 Raw 图片 PNG 资源限制错误
...
Project CI / Frontend tests (pull_request) Successful in 4m43s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Native shell tests (pull_request) Failing after 5m14s
将有效但超出解码限制的 PNG 映射为明确的 400 提示
补充超大合法 PNG 的回归测试
2026-09-09 11:04:44 +08:00
k88936
f60771dd00
提前检查 Raw 图片请求预算
...
在构造 multipart 表单前校验请求 deadline
避免预算耗尽时复制输入图片并缩短耗时统计范围
2026-09-09 10:58:48 +08:00
k88936
f7cccd8592
补充 Raw 图片客户端错误上下文
...
为 HTTP 客户端构造失败统一保留操作上下文
补充配置错误文案回归测试
2026-09-09 10:57:04 +08:00
k88936
5ee2d940c1
修正 Raw 图片尺寸校验错误语义
...
尺寸校验失败改用请求参数无效语义
补充错误文案回归测试
2026-09-09 10:55:36 +08:00
k88936
c75a7725ce
Merge remote-tracking branch 'origin/master' into feat/expose-image2edit
Project CI / Repository checks (pull_request) Successful in 2m51s
Project CI / Native shell tests (pull_request) Failing after 4m9s
Project CI / Backend tests (pull_request) Failing after 4m58s
Project CI / Frontend tests (pull_request) Successful in 3m46s
2026-09-09 10:42:22 +08:00
k88936
3a95715990
同步 Raw 图片编辑技术方案
...
Project CI / Native shell tests (pull_request) Failing after 6m36s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 4m22s
记录解码资源上限和阻塞线程策略
补充输出格式回退与成功追踪约定
2026-09-08 23:41:27 +08:00
k88936
ed86963de2
修正 Raw 图片追踪结果类型
...
明确输出数据集合类型
保持 API 编译检查通过
2026-09-08 23:38:25 +08:00
k88936
65e73eee02
补充 Raw 图片生成成功追踪
...
记录成功任务与输出数量
完善上游响应和失败阶段日志
2026-09-08 23:25:47 +08:00
k88936
6068eeda83
补充 Raw 图片编辑请求日志
...
记录上游响应状态与耗时
记录传输失败阶段和结构化上下文
2026-09-08 23:22:56 +08:00
k88936
0e244c64ea
统一 GPT Image 2 尺寸常量
...
集中维护像素边界和对齐规则
供生成与编辑路径共同引用
2026-09-08 22:11:35 +08:00
k88936
ad7c059603
遵守 Raw 图片请求截止时间
...
发送前裁剪有效超时预算
预算耗尽时提前返回结构化错误
2026-09-08 21:54:22 +08:00
k88936
55d2a393d1
完善 Raw 图片尺寸错误类型
...
为公开错误实现 Error trait
支持通用错误链处理
2026-09-08 21:52:15 +08:00
k88936
e7f66ce950
修正 Raw 图片传输失败阶段标记
...
区分请求发送和响应读取失败
让错误详情准确反映故障阶段
2026-09-08 20:03:13 +08:00
k88936
35dcfea3ef
修正 Raw 图片输出格式回退
...
忽略空值后再使用载荷级格式
补充空字符串和 null 回归测试
2026-09-08 19:56:41 +08:00
k88936
cea8bf77fa
减少 Raw 图片编辑请求拷贝
...
移动 multipart 选项字段而非克隆
降低掩码和字符串的峰值内存
2026-09-08 19:52:13 +08:00
k88936
0136bfe564
移出 Raw 图片同步解码
...
将请求预校验放入阻塞线程
避免占用 Tokio 异步工作线程
2026-09-08 19:48:58 +08:00
k88936
22785b4d7b
限制 Raw 图片解码资源
...
为 PNG 解码设置边长和分配上限
避免压缩图片膨胀导致内存耗尽
2026-09-08 19:45:02 +08:00
k88936
a86a2ee4d2
简化 Raw 图片编辑响应类型
...
移除无必要的 JSON Value 转换
保持响应结构由类型系统校验
2026-09-08 19:32:55 +08:00
k88936
b22eae2726
收紧 Raw 图片编辑输入契约
...
Project CI / Frontend tests (pull_request) Successful in 3m51s
Project CI / Native shell tests (pull_request) Successful in 20m20s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 14s
新增 3840 边长、16 像素对齐、3:1 比例和总像素范围校验
要求 image 与 mask 为可完整解码的 PNG 并在扣费前拒绝非法输入
将 Raw 路由 JSON body limit 提升至 64 MiB
同步 Raw 图片编辑技术方案和边界测试
2026-09-08 18:18:58 +08:00
k88936
35d0db6377
修复 Raw 图片失败审计与响应格式
...
Project CI / Frontend tests (pull_request) Successful in 6m7s
Project CI / Native shell tests (pull_request) Successful in 19m41s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 9s
为 Raw provider 失败分支补齐结构化 failure audit 并接入 api-server 记录链
使用 VectorEngine 响应 output_format 生成返回图片 MIME 与扩展名
补充响应格式和审计字段定向测试并同步技术方案
2026-09-08 16:19:29 +08:00
k88936
f087ba3e2b
隔离 Raw 图片代理实现
...
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Successful in 36m40s
Project CI / Native shell tests (pull_request) Successful in 54m1s
移除对现有图片编辑 client 与 curl transport 的复用
将 Raw GPT Image 2 请求、multipart 构造和响应解析收敛到独立文件
保持现有 editor 图片链路代码不变
2026-09-08 13:54:31 +08:00
k88936
7fc1b841be
收口 Raw 图片 base64 校验错误
...
客户端仅返回稳定的 base64 格式错误提示
补充测试避免泄露解码器内部诊断细节
2026-09-08 12:30:55 +08:00
k88936
a576fdcc37
移除未使用的 multipart 请求包装函数
...
无选项测试直接调用统一传输入口
避免生产构建保留未使用函数告警
2026-09-08 12:29:59 +08:00
k88936
4dcf38715b
补充图片编辑选项 multipart 测试
...
覆盖质量、背景、输出格式与 mask 文件字段
断言文件名、MIME 类型和字节内容均正确发送
2026-09-08 12:21:11 +08:00
k88936
d1f9f4e1ef
减少图片编辑 multipart 字节复制
...
将已克隆的选项按值传入阻塞传输函数
构造 mask 与参考图表单时直接移动字节缓冲
2026-09-08 12:16:00 +08:00
k88936
5836aaec26
简化图片编辑 multipart 请求分支
...
统一通过带选项的 multipart 传输函数发送请求
移除冗余包装函数调用与未使用导入
2026-09-08 12:10:56 +08:00
k88936
18d60feb04
补充 Raw 图片参数预检查
...
在计费前校验质量、背景和输出格式
规范化可选参数并保持单图请求契约
2026-09-08 10:40:09 +08:00
k88936
4e1316e272
实现 Raw GPT Image 2 图片编辑代理
...
新增受 Bearer 保护的 /api/raw/v1/images/edit JSON 路由
按单图 image 与可选 mask 转发 GPT Image 2 参数
固定 model 与 n 并返回仅含 data[].b64_json 的响应
复用钱包计费与退款边界并补充单元测试
2026-09-08 10:36:48 +08:00
k88936
302b4addae
补充 Raw GPT Image 2 代理方案
...
Project CI / Native shell tests (pull_request) Successful in 55m40s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Successful in 23m43s
明确 JSON 请求与 data 数组响应
记录预检查和钱包事务边界
拆分 api-server 与 platform-image 文件职责
2026-09-07 16:33:34 +08:00