k88936
ccd2715726
Merge pull request 'Fix/typecheck test' ( #601 ) from fix/typecheck-test into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 3m9s
Project CI / Backend tests (push) Failing after 4m6s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m59s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m49s
Project CI / Frontend tests (push) Successful in 3m5s
Project CI / AI game creator shell web tests (push) Successful in 2m41s
Project CI / Repository checks (push) Failing after 3m36s
Project CI / Native shell tests (push) Successful in 6m18s
Reviewed-on: #601
2026-10-03 21:05:42 +08:00
k88936
25c5ecdf6e
测试:全仓测试统一 Tauri 运行时替身安装点
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m58s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 6m34s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m29s
Project CI / Backend tests (pull_request) Failing after 4m38s
Project CI / Frontend tests (pull_request) Successful in 3m33s
Project CI / Repository checks (pull_request) Failing after 4m4s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m13s
Project CI / Native shell tests (pull_request) Successful in 6m35s
- 78 处内联 window.__TAURI__ 赋值改为 installTauriRuntime,覆盖 appSurface 之外的 37 个测试文件
- 31 处 delete window.__TAURI__ / window.__TAURI__ = undefined 复位改为 resetTauriRuntime
- 删除 recentProjectsHook、projectCreationDirectory、projectResourceLiveIntegration、useProjectResourceCardPreviews、resourceVersionReplacementModel、unityProjectOpen 里的本地 asTauriInvoke / asTauriListen 适配器与相关类型别名
- designProjectRestore 的 setup 参数由 ReturnType<typeof vi.fn> 收窄为具体 invoke 签名
- 迁移后仅 tests/tauriRuntimeFake.ts 直接读写 window.__TAURI__
2026-10-03 20:19:45 +08:00
k88936
a77d58b901
测试:抽出全仓共享的 Tauri 运行时替身模块
...
- 新增 tests/tauriRuntimeFake.ts,作为唯一的 window.__TAURI__ 安装点与类型转换点,并提供 createTauriEventBridge 与 resetTauriRuntime
- appSurface/harness.ts 改为从该模块导入并转出 installTauriRuntime / createTauriEventBridge,既有 ./harness 导入路径不变
- pickProjectFromLauncher 不再直接写 window.__TAURI__,改走 installTauriRuntime 保留原有 core/event
2026-10-03 19:41:21 +08:00
k88936
55cca04971
Merge remote-tracking branch 'origin/master' into fix/typecheck-test
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m30s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m2s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 3m46s
Project CI / Frontend tests (pull_request) Successful in 3m20s
Project CI / Backend tests (pull_request) Failing after 4m41s
Project CI / Repository checks (pull_request) Failing after 3m59s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m34s
Project CI / Native shell tests (pull_request) Successful in 7m16s
2026-10-03 19:36:28 +08:00
k88936
179983b823
测试:appSurface 的 Tauri 替身统一走单一安装点
...
- harness 新增 createTauriEventBridge,只负责事件登记与派发,不碰 window、不做类型转换
- home.suite 44 处内联 window.__TAURI__ 赋值改为 installTauriRuntime,并删除 asTauriInvoke / asTauriListen 两个适配器
- auth.suite 删除 installTauriBridge 的 as never,改为 createTauriEventBridge + installTauriRuntime 组合
2026-10-03 19:34:08 +08:00
kdletters
1c4073b500
修正插件开关测试的工具桥模式
...
Project CI / AI game creator shell Rust crates (push) Successful in 3m7s
Project CI / Backend tests (push) Failing after 4m17s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m24s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 6m16s
Project CI / Frontend tests (push) Successful in 2m38s
Project CI / AI game creator shell web tests (push) Successful in 2m34s
Project CI / Repository checks (push) Failing after 4m15s
Project CI / Native shell tests (push) Successful in 7m20s
插件宿主开关测试使用外部桥,避免无回合执行许可掩盖插件禁用结果
2026-10-03 19:29:58 +08:00
kdletters
d4be3dd97a
补齐 Claude 上游错误展示与 MCP 并发隔离
...
Project CI / AI game creator shell Rust crates (push) Successful in 3m15s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m30s
Project CI / Backend tests (push) Failing after 4m50s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 6m23s
Project CI / Frontend tests (push) Successful in 3m38s
Project CI / Native shell 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
前端保留 401/403/408/429/5xx 状态并补回归测试
按项目隔离 Claude MCP 注册表并防止旧回合误停新桥
更新 DirectProject 排障记录
2026-10-03 19:21:18 +08:00
k88936
6efab10743
测试:把 Tauri 替身安装点收口到 appSurface harness
...
- 合并 chat-composer / project-conversation / project-development / runtime-settings / design-agent 五处重复的 installTauriRuntime 定义为 harness 中一处
- 安装参数由 unknown 收成可调用下界并声明 event 可缺省,非函数的误装会在编译期被挡下
- design-agent 改为薄适配 installChatRuntime,调用点与运行时行为不变
2026-10-03 19:14:08 +08:00
k88936
a83525c964
测试:收窄 home.suite 的 asTauriListen 返回类型
...
- asTauriListen 形参返回类型由 Promise<unknown> 改为 Promise<() => void>,与 TauriListen 的 unlisten 契约一致
2026-10-03 19:09:40 +08:00
k88936
19c6b1dfc3
测试:修正 auth.suite 注释错别字
...
- 「渲染函数子节点改编进 props」改为「改传进 props」
2026-10-03 19:09:38 +08:00
kdletters
e5fa123483
修复 Claude Direct MCP 回合授权死循环
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m47s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m49s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 6m16s
Project CI / Backend tests (push) Failing after 4m53s
Project CI / Frontend tests (push) Successful in 3m36s
Project CI / Repository checks (push) Failing after 3m57s
Project CI / AI game creator shell web tests (push) Successful in 2m33s
Project CI / Native shell tests (push) Successful in 6m55s
内部 Claude MCP 使用 Direct 工具桥并绑定当前回合授权
保留外部 MCP 隔离模式并补充回归测试与排障记录
2026-10-03 19:06:38 +08:00
lhk229
2233f1b7c4
修复试玩回包遗漏双端玩法失败证据(#548) ( #598 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m58s
Project CI / Backend tests (push) Failing after 4m25s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m34s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m44s
Project CI / Frontend tests (push) Successful in 2m50s
Project CI / AI game creator shell web tests (push) Successful in 2m45s
Project CI / Repository checks (push) Failing after 4m7s
Project CI / Native shell tests (push) Successful in 6m49s
试玩报告已记录玩法阻断,但工具回包只展示视觉结果,Agent 无法从“画面正常、整体失败”定位原因;返回的私有报告路径也不能通过通用文件工具读取。
本次增加逐视口 gameplayResults,返回有界诊断、断言和初末状态,并从同一份投影生成摘要。明确区分视觉检查与玩法检查、未通过与未执行;保留现有通过判定、验证预算和私有目录保护。同步更新证据合同、提示词与 skill pack。
验证:
- Rust 定向测试、提示词构建与源码边界检查通过。
- 最终 MCP 成功/失败回包均检查逐视口状态、原因、断言及截图。
- 显式运行 4 个真实浏览器用例:双端成功、禁用控件、真实点击后 phase 未进入 playing、仅移动端失败;对照持久报告核对回包与摘要。
- rustfmt、编码、文档索引、skill pack、git diff --check 通过。
- 未运行全量测试或真实模型端到端验证。
Closes #548
Reviewed-on: #598
2026-10-03 18:54:12 +08:00
k88936
88abe52c3d
Merge branch 'master' into fix/typecheck-test
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m4s
Project CI / Backend tests (pull_request) Failing after 4m30s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m43s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m23s
Project CI / Frontend tests (pull_request) Successful in 3m21s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m17s
Project CI / Repository checks (pull_request) Failing after 4m28s
Project CI / Native shell tests (pull_request) Successful in 7m43s
2026-10-03 18:41:28 +08:00
kdletters
8aee5db84e
统一 Claude Code 与 Codex 错误分类
...
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m46s
Project CI / AI game creator shell Rust crates (push) Successful in 3m18s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m5s
Project CI / Frontend tests (push) Successful in 4m36s
Project CI / Backend tests (push) Failing after 5m40s
Project CI / Repository checks (push) Failing after 4m32s
Project CI / AI game creator shell web tests (push) Successful in 2m54s
Project CI / Native shell tests (push) Successful in 8m37s
保留 Claude Code 的上游 HTTP 状态、超时、空响应和无效 JSON 语义
补充状态摘要、重试建议、定向回归测试与排障记录
2026-10-03 18:08:14 +08:00
suzmii
0b03d563c2
Merge pull request '修复 AGC 栏目画布上传素材落「待归类」(#359)' ( #596 ) from fix/agc-asset-upload-category into master
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Reviewed-on: #596
2026-10-03 17:58:02 +08:00
suzmii
86e74867ae
review 反馈:补齐 targetCategory 的文档与注释口径(#359)
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m27s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m37s
Project CI / Backend tests (pull_request) Failing after 31s
Project CI / Repository checks (pull_request) Failing after 28s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m54s
Project CI / Frontend tests (pull_request) Successful in 3m18s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m28s
Project CI / Native shell tests (pull_request) Successful in 7m28s
- 实施计划合同补上「GUI 上传与图片类生成同一 targetCategory 口径,不传时仍按内容证据派生 kind」
- 栏目画布底部工具栏入口矩阵 §1 一句话补上「带当前栏目 targetCategory」
- 工具栏模型里上传入口的类型注释写明入口栏目与「待归类」的因果
- 修正占位落点 effect 里陈旧的示例:普通图片只在 Agent / Direct 不传 targetCategory 时才落「待归类」
2026-10-03 17:42:50 +08:00
k88936
2922b94594
文档:记录 AGC 测试类型门禁与 Node 环境口径
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m15s
Project CI / Backend tests (pull_request) Failing after 23s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 2m47s
Project CI / Repository checks (pull_request) Failing after 38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m20s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m12s
Project CI / Native shell tests (pull_request) Successful in 6m52s
- development-workflow 增补 AGC 测试类型门禁一节
- pitfalls 记录测试未进 tsconfig 时类型断言为空写的经验
- pitfalls 记录 Node 24+ Web Storage 顶掉 jsdom localStorage 的环境口径
2026-10-03 17:42:07 +08:00
k88936
fe20e73fb7
构建:为 AGC 测试接入类型门禁
...
- 新增 apps/ai-game-creator-shell/tsconfig.tests.json,覆盖 src、tests 与 vite.config.ts
- 新增 check:tests:types 脚本执行 tsc -p tsconfig.tests.json --noEmit
- 将 check:tests:types 并入 AGC 的 typecheck
2026-10-03 17:41:53 +08:00
k88936
594063a1e0
测试:修正 AGC 测试文件的类型错误
...
- 按 vitest 0.34 的参数元组口径改写 mock 泛型
- 修正 noUncheckedIndexedAccess 下的下标访问
- 补齐与当前类型脱节的测试桩字段
- 按 scripts/*.mjs 的运行时契约补局部类型声明
2026-10-03 17:41:30 +08:00
suzmii
7e96b369c1
Merge pull request '修复 Web 预检浏览器失败恢复' ( #591 ) from fix/web-preflight-browser-recovery into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m40s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 4m51s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m24s
Project CI / Backend tests (push) Failing after 3m56s
Project CI / Frontend tests (push) Successful in 3m5s
Project CI / AI game creator shell web tests (push) Successful in 2m56s
Project CI / Repository checks (push) Failing after 4m3s
Project CI / Native shell tests (push) Successful in 6m54s
Reviewed-on: #591
2026-10-03 17:33:22 +08:00
kdletters
d3750b1846
Merge pull request '新增支付服务接入与订单收银台' ( #597 ) from codex/payment-service-20261003 into master
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Reviewed-on: #597
2026-10-03 17:27:32 +08:00
kdletters
4b529a8952
新增支付服务接入与订单收银台
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m59s
Project CI / Backend tests (pull_request) Failing after 4m8s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m9s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m20s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m48s
Project CI / Repository checks (pull_request) Failing after 4m15s
Project CI / Native shell tests (pull_request) Successful in 6m52s
新增支付应用、API Key 与外部产品订单接口
接入微信 Native 下单、二维码收银台与支付结果回调
新增后台支付订单与回调投递页面
补齐 SpacetimeDB 支付表、生成绑定、OpenAPI 与使用说明
2026-10-03 17:18:13 +08:00
suzmii
372b7d3a00
修复 AGC 栏目画布上传素材落「待归类」(Issue 359)
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m17s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 3m59s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m8s
Project CI / Backend tests (pull_request) Successful in 6m24s
Project CI / Frontend tests (pull_request) Successful in 3m24s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m34s
Project CI / Native shell tests (pull_request) Successful in 6m49s
Project CI / Repository checks (pull_request) Successful in 5m38s
- AGC Rust `upload_local_asset` 新增可选 `targetCategory`,登记改走 `register_local_asset_entry_with_category`(非法值失败关闭,不回退 kind 派生);`upload_local_asset_at` 委托新的 `upload_local_asset_at_with_category`,既有调用点与单测不动
- 前端 `uploadProjectAssetFilesAndReadSnapshot` 透传 `targetCategory`;栏目画布底部工具栏上传带上工具栏自己的栏目,与生成入口的 `targetCategory` 同一口径
- 新增 Rust 单测 `upload_registers_into_the_explicit_entry_category`(显式栏目 → character / 不传 → unclassified / 非法 version 失败关闭且不新增登记)与 appSurface 用例(在「角色与对象」上传图片,载荷必须带 `targetCategory: 'character'`)
- 同步 PRD §3.10、`docs/technical/【AGC】栏目画布底部工具栏入口矩阵-2026-09-13.md` §4 载荷表、V3 验收用例 S11a、decision-log 与 pitfalls
2026-10-03 16:59:22 +08:00
suzmii
c7d70ba893
Merge remote-tracking branch 'origin/master' into fix/web-preflight-browser-recovery
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m3s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m4s
Project CI / Backend tests (pull_request) Successful in 5m59s
Project CI / Frontend tests (pull_request) Successful in 2m52s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m5s
Project CI / Native shell tests (pull_request) Successful in 6m37s
Project CI / Repository checks (pull_request) Successful in 6m24s
2026-10-03 16:35:17 +08:00
suzmii
b6a3e8d506
修复浏览器进程归属与清理诊断
...
固定 Windows 浏览器 root 与子进程启动身份,Job 绑定失败时回收完整进程树并拒绝 PID 复用。
保留 Web 预检 shutdown 的结构化清理诊断,补充身份不匹配回归测试。
2026-10-03 16:31:40 +08:00
k88936
633355952b
Merge pull request 'Refactor/整理项目对话错误相关代码' ( #593 ) from refactor/turn-error-to-explicit-struct into master
...
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m10s
Project CI / AI game creator shell Rust crates (push) Successful in 2m48s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m5s
Project CI / Backend tests (push) Successful in 5m27s
Project CI / Frontend tests (push) Successful in 3m8s
Project CI / AI game creator shell web tests (push) Successful in 2m22s
Project CI / Native shell tests (push) Successful in 6m43s
Project CI / Repository checks (push) Successful in 5m8s
Reviewed-on: #593
2026-10-03 15:58:20 +08:00
k88936
0e313405d6
修复:生成绑定校验不再用 prettier 改写生成文件
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m54s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m36s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m44s
Project CI / Backend tests (pull_request) Successful in 5m46s
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m41s
Project CI / Native shell tests (pull_request) Successful in 6m39s
Project CI / Repository checks (pull_request) Successful in 6m12s
- scripts/check-generated-bindings.mjs:删掉生成后的 prettier 归一化,直接逐字节比较 ts-rs 原始输出
- .prettierignore 与 .eslintrc.cjs:四个 ts-rs 生成目录统一排除,禁止格式化工具二次改写
- .prettierrc.json:删除 contracts/generated 的 printWidth / singleQuote 覆盖
- .gitattributes:生成目录标 linguist-generated 并豁免 trailing-space,保证 git diff --check 通过
- 重新生成 AGC chat/generated 与 services/generated 的 51 个绑定,改为提交 ts-rs 原始输出(纯格式,语义不变)
- docs/project-memory:记录生成绑定不再经 prettier 的口径,修正旧流程说明
2026-10-03 15:40:21 +08:00
k88936
141e59c971
Merge remote-tracking branch 'origin/master' into refactor/turn-error-to-explicit-struct
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m0s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 2m45s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m52s
Project CI / Frontend tests (pull_request) Successful in 2m30s
Project CI / Backend tests (pull_request) Successful in 4m54s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m0s
Project CI / Native shell tests (pull_request) Successful in 7m38s
Project CI / Repository checks (pull_request) Successful in 6m34s
2026-10-03 14:50:04 +08:00
lhk229
ae2d1a3a21
修复 AGC 生成准备依赖全量素材库的问题 ( #592 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m47s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m1s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m18s
Project CI / Frontend tests (push) Successful in 2m27s
Project CI / Backend tests (push) Successful in 5m49s
Project CI / Native shell tests (push) Successful in 6m21s
Project CI / Repository checks (push) Successful in 3m36s
Project CI / AI game creator shell web tests (push) Successful in 2m54s
修复已有项目和素材目录绑定时,AGC 生成准备仍读取完整账户素材库、导致无关素材读取失败阻断生成的问题。
- 新增站内与 External v1 的单目录 GET,按主键读取并校验账号归属;复用目录 DTO,不读取素材列表或创建默认目录。
- 已有 binding 和 partial 恢复改为确认目标目录;首次建绑直接沿用稳定幂等创建,不再读取全库。
- 目录缺失、越权、超时、响应身份不符或会话切换时停止,保留恢复证据,不自动重建、不换键重发生成;已有生成账本继续沿用冻结快照恢复。
- 既有素材库与目录创建、修改、删除 API 合同保持不变,持久化表结构不变。同步 OpenAPI、生成绑定及技术文档。
验证:
- AGC Rust:目录绑定 7 项、生成 94 项、资源编辑 60 项、抠图 5 项通过(目录绑定用例包含在生成组中)。
- api-server:External Editor 30 项、受保护路由矩阵 3 项通过。
- 真实隔离 SpacetimeDB:目录读取成功、空目录、缺失、越权、删除后缺失、只读不变,以及既有幂等/并发/孤儿检查通过。
- smoke 脚本测试 4 项通过;module 编译、生成绑定、87 张表 schema guard、DDD、编码、文档索引、定向 Rust 格式与 diff 检查通过。
- 已比较 OpenAPI:除新增单目录 GET 外,原有定义逐项保持一致。
验证限制:未完成独立 API `/healthz` 联调,本地隔离数据库与授权配置未就绪;启动尝试已停止并清理。未运行全量测试或真实付费生成。
发布顺序:先发布后端模块与 API,再发布新客户端;不提供全库回退。#574 的素材分页、筛选及按素材 ID 读取不在本 PR 范围内。
Closes #550
Reviewed-on: #592
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-10-03 14:48:54 +08:00
k88936
47da90ab84
重构:终态判定不再为控制流留兜底分支
...
- turn_completion.rs 的 turn_terminal 两处 ShouldContinue 分支由 debug_assert + 回落账本终态 / host_dropped 改为 unreachable:控制流在返修循环与终态投影处已被过滤
- 同步收紧 turn_terminal 的文档说明,明确控制流不该也不能进入终态判定
2026-10-03 14:47:28 +08:00
k88936
84cbe9b1a6
修复:封口复核的控制流不再被吞成 HostDropped
...
- direct_runtime 返修循环接住 chat 侧返回的 TurnError::RepairRequired(app-server 封口复核),写回 prompt 继续一轮,流式与非流式两条分支都补上
- 删除 thread_manager/dispatch.rs 的 finish_turn_failure:它的 ShouldContinue 静默分支正是控制流漏到收口后、被 Drop 兜成 HostDropped 的入口
- 两处回合失败收口改为就地对 classify 结果显式分流:ShouldStop 写失败终态,ShouldContinue 视为上游缺陷直接 unreachable
2026-10-03 14:32:31 +08:00
k88936
6550e9a4bb
测试:补回入队被拒消息不落盘、不重放的断言
...
- home.suite.ts 的入队被拒用例恢复 persistedMessages 桩,并让历史切片返回它
- 增加断言:被拒消息不落历史条目、不被乐观渲染成用户气泡、不写本地历史
- 增加 cleanup + 重挂载断言:重进项目不重放被拒消息与拒绝文案,且不自动重试
2026-10-03 14:16:18 +08:00
k88936
3ab313a11a
修复:生成绑定校验在 Windows 上无法执行 npx.cmd
...
- check-generated-bindings.mjs:run() 的 spawnSync 增加 shell: process.platform === 'win32'
- Windows 上不带 shell 无法执行 .cmd/.bat(Node 修 CVE-2024-27980 后报 EINVAL),npxCommand 特意换成 npx.cmd 只把 ENOENT 换成了 EINVAL,prettier 这一步仍然跑不起来
- 与 scripts/database-backup-to-oss.mjs、lint-staged-rustfmt.mjs 等既有脚本的写法保持一致
- Linux 侧已跑 check:generated-bindings 验证;Windows 路径本机无法实测
2026-10-03 13:47:43 +08:00
k88936
6a4bcf4f31
重构:生成绑定校验不再依赖 readdirSync 的 recursive 选项
...
- check-generated-bindings.mjs:snapshot() 改用普通 fs.readdirSync(absolute)
- recursive 选项要 Node 18.17 / 20.1 才有;仓库没有 engines 约束,旧版本会静默退化成只读顶层,反而削弱嵌套目录的覆盖
- 四个生成目录都是平铺的(ts-rs 的 export_to 直接落文件),去掉后行为不变,已跑 check:generated-bindings 验证
2026-10-03 13:47:21 +08:00
k88936
7fb4dabb55
修复:生成绑定校验在目录缺失时不再静默通过
...
- check-generated-bindings.mjs:snapshot() 遇到目标目录不存在时由 console.warn + 返回空 Map 改为抛出错误
- 旧实现下,若 export_to 路径被改名或生成文件被整体删除,前后快照都是空 Map,diff 报不出任何问题,校验以"0 个文件"静默通过
- 现在目录缺失会立即失败并指出是哪个目录,不再给假绿
2026-10-03 13:47:02 +08:00
kdletters
b62e32946b
修复 cc 反馈回复的 DirectProject 条目冲突
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m41s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m23s
Project CI / Backend tests (push) Successful in 4m50s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m9s
Project CI / Frontend tests (push) Successful in 2m25s
Project CI / AI game creator shell web tests (push) Successful in 2m29s
Project CI / Native shell tests (push) Successful in 5m59s
Project CI / Repository checks (push) Successful in 3m0s
同一 client turn 的反馈回复冲突时生成独立 assistant item ID
保持相同回复幂等并补充回归测试与排障记录
2026-10-03 13:45:02 +08:00
k88936
d07f894bf6
修复:Bearer 引号值脱敏正则只匹配到第一个空格,密钥尾部漏出
...
- directThreadSanitize.ts:BEARER_VALUE 的引号分支由 \\.?["'] 改为 \\?["'],与同文件 SENSITIVE_ASSIGNMENT 的写法一致
- 原写法要求引号前必须有一个字面反斜杠,导致 Bearer "abc def" 走不到引号分支,退化到裸 token 分支后只遮到第一个空格,示例会输出 Bearer [redacted-secret] def"
- 修正后引号内的整段值都被遮掉;JSON 转义的 \"abc def\" 仍然匹配
- 同步在 directThreadSanitize.test.ts 增加带引号 Bearer 的用例(修复前该用例失败)
2026-10-03 13:42:40 +08:00
k88936
0a16d5d574
修复:入队命令的真 Error 不再被包装,失败文案不再变成 {}
...
- directTurnEnqueueFailure.ts:invokeTurnEnqueue 的 catch 先判断 error instanceof Error,是则原样抛出
- JSON.stringify(new Error(...)) 得到 {}(message/stack 不可枚举),包进 EnqueueFailureWrapper 后控制器读 error.message 只能拿到 {},真实失败文案丢失
- 结构化拒绝是普通对象,不受影响;真 Error 交回调用方既有的 instanceof 分界,与类注释口径一致
2026-10-03 13:41:30 +08:00
k88936
2fe651c845
修复:入队失败提示对缺失字段容错,不再抛 Cannot read properties
...
- directTurnEnqueueFailure.ts:permissionRejected.policyDetail / inputRejected.detail 改用可选链再 trim
- 跨 IPC 载荷没有运行时校验,字段理论上可能是 null/undefined;原实现会在 runTurn 的 catch 里抛错,用户看到的是裸 TypeError、草稿还被清掉
- 缺失字段现在与空串同档:返回 null,按"没有提示"处理,保留草稿并走上报通道
2026-10-03 13:41:00 +08:00
k88936
bc115002d4
重构:去掉终态判定里多余的 TurnError clone
...
- turn_completion.rs:collect_outcome 按值匹配,Err(error) 已是 owned,Some(error.clone()) 改为 Some(error),省掉一次整份错误载荷的克隆
- 行为不变:host_failure 那一支仍是 &TurnError,需要 clone 的保留
2026-10-03 13:40:15 +08:00
k88936
d7d09f310c
合并:把 origin/master 并入回合错误重构分支并保留双方行为
...
- 解决 direct_runtime/mod.rs 冲突:保留本分支 typed 回合错误重构(TurnError/EnqueueError 与 record_direct_codex_failure_facts 拆分),接入 master 的诊断 v3 口径(persist_agent_runtime_error 新签名 + typed error 字段)、prompt 反馈改截断不脱敏、项目写锁改名
- 解决 thread_manager/dispatch.rs 冲突:保留本分支 TurnError/TurnCompletion 换代与 finish_turn_failure 分类层,接住 master 的 tt= 日志改名与 cc 执行器整轮成功后补写 completed 终态
- 解决 direct_tools_mcp.rs 冲突:采用 master 版(本分支唯一改动是 external MCP 容量测试读 body,master 已有等价实现)
- 处理 direct_turn_failure.rs 删除/修改冲突:维持本分支删除,把 completed() 语义迁进 TurnCompletion::Completed 并补回对应测试
- 处理 runtime_driver/entrypoints.rs 修改/删除冲突:接受 master 退役自建 Agent Runtime 的删除(本分支只在该文件做 direct_now_ms 改名)
- 合并 decision-log.md:双方条目都保留
- 修复 auto-merge 漏掉的语义冲突:claude_code_cli.rs 的 direct_now_ms() 改名 now_ms();诊断测试改为断言 AGENT_RUNTIME_ERROR_SCHEMA_VERSION、detail 字段改 message;record_direct_codex_failure_facts 新增 typed_error 入参(TurnError 不序列化,落盘用 classify 投影出的 TurnFailure)
2026-10-03 13:12:10 +08:00
suzmii
e7530d0c8e
Merge remote-tracking branch 'origin/master' into fix/web-preflight-browser-recovery
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m50s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m45s
Project CI / Backend tests (pull_request) Successful in 4m53s
Project CI / Frontend tests (pull_request) Successful in 2m26s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m18s
Project CI / Native shell tests (pull_request) Successful in 5m46s
Project CI / Repository checks (pull_request) Successful in 3m35s
2026-10-03 12:51:42 +08:00
suzmii
c833e30d73
修复 Web 预检浏览器恢复与安全收束
...
Project CI / Backend tests (pull_request) Failing after 28s
Project CI / AI game creator shell Rust lane 1/2 (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 Rust crates (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 lane 2/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
修复 Windows Job 绑定窗口内子树未纳入的问题,无法确认时收束并 fail-closed。
使用 CommandLineToArgvW 校验含空格 Profile,补充 Job 子树与 Profile 回归测试。
补齐清理失败安全诊断和浏览器环境错误码契约。
2026-10-03 12:50:18 +08:00
k88936
10436a641c
注释:补充 ShouldContinue 变体的字符串类型设计说明
2026-10-03 12:21:39 +08:00
k88936
a8948f27bb
文档:记录回合错误分类层与线程条目脱敏边界
...
- decision-log 增加 2026-10-03 条目:TurnError::classify / TurnErrorClassified 取代 terminal_failure
- 记录 ThreadManager 不再做字段级脱敏与限长、脱敏搬到前端 directThreadSanitize,失败载荷脱敏保留在 classify
2026-10-03 12:08:25 +08:00
k88936
3aef44c54a
文档:同步错误投影点改名与逐 delta 脱敏退役现状
...
- ADR 与 decision-log 里的 TurnError::terminal_failure 改成 TurnError::classify
- pitfalls 的「逐 delta 脱敏吃掉段尾换行」补一条现状:Rust 逐 delta 脱敏已退役,脱敏搬到前端 directThreadSanitize
2026-10-03 12:07:42 +08:00
k88936
549915a2be
重构:线程条目脱敏改由前端统一做
...
- 新增 directThreadSanitize:项目内路径归一成相对路径,绝对路径 / 密钥 / 敏感赋值 / Bearer / 配置文件 / 私钥块 / 敏感开关统一换成占位符,只遮挡不截断
- 订阅 hook 在 bootstrap / consume / 历史切片进入聊天状态之前统一过脱敏,复用已有的 projectPath
- 新增 12 条单测:项目内外路径、密钥前缀与 JWT、Bearer、.env、私钥块、多行换行保留、条目与增量事件
2026-10-03 12:06:40 +08:00
k88936
500479b4aa
文档:同步 ThreadItem 与 TurnFailure 的生成绑定注释
...
- ThreadItem 注记改为"原样投影、脱敏在前端"
- TurnFailure 注记改为 TurnError::classify / TurnErrorClassified::ShouldContinue
2026-10-03 12:00:00 +08:00
k88936
68cb41e332
重构:ThreadManager 停止对线程条目脱敏与限长,改为原样透传
...
- 删除 wire/items.rs 的 bounded / detail_text / sanitize_detail_text / relativize_project_root_paths / thread_delta_text 与三个字符上限常量
- thread_item_from_value / thread_items_from_history / 运行态条目 / 流式增量签名去掉 root,字段原样透传,脱敏交给事件进前端状态时统一做
- dispatch.rs 写历史失败不再预脱敏,原文交给 classify 投影成失败载荷时统一脱敏 + 截断
- 用例改为"原样透传"口径,删除已无对象的流式脱敏用例
- 失败载荷(错误文案)的脱敏保留
2026-10-03 11:53:01 +08:00
kdletters
25beb3ad59
修复 cc 回复只在重进项目时才可见:补下发 item.completed 事件
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m16s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 4m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m33s
Project CI / Backend tests (push) Successful in 4m1s
Project CI / Frontend tests (push) Successful in 2m31s
Project CI / AI game creator shell web tests (push) Successful in 1m55s
Project CI / Repository checks (push) Successful in 2m49s
Project CI / Native shell tests (push) Successful in 5m9s
- claude_code_cli.rs 在 cc 解析成功、回复落盘之后,用同一个条目 id 下发 ThreadEvent::item_completed(ThreadItem::Message{role:"assistant"}),聊天区按事件流投影即可实时显示本轮回复
- 之前只落盘 project.jsonl、不下发条目事件,用户看到的是"用户气泡 + 本轮结束于 … · 耗时",回复要重进项目才从历史读出来
- pitfalls.md 补记第四条根因与 CDP + DOM 断言验收证据
2026-10-03 11:42:52 +08:00
k88936
11e98a3cae
重构:回合错误的处置分类层取代 Option,并合并 SessionOutcome
...
- TurnError::terminal_failure 的 Option<TurnFailure> 换成 TurnError::classify -> TurnErrorClassified{ShouldStop, ShouldContinue},控制流不再借 None 表达
- dispatch.rs 两处 .expect("回合失败必可投影成失败载荷") 改为按分类层 match,收到 ShouldContinue 不写终态、不伪造失败
- turn_terminal 不再用 and_then 压平;ShouldContinue 显式认账并落到账本正常终态
- 并掉 private SessionOutcome,收尾 status 解析直接产出 TurnCompletion
- TurnFailure 补 // TODO badnaming,同步更新相关文档注释
2026-10-03 11:42:48 +08:00
k88936
c7e51266c8
Merge pull request 'fix/资源编辑错误通道补 typed 错误并把平台失败原文带出' ( #589 ) from fix/res-edit-error-handling into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m56s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 4m40s
Project CI / Backend tests (push) Successful in 4m37s
Project CI / Frontend tests (push) Successful in 2m27s
Project CI / AI game creator shell web tests (push) Successful in 2m19s
Project CI / Native shell tests (push) Successful in 5m30s
Project CI / Repository checks (push) Successful in 2m52s
Reviewed-on: #589
2026-10-03 11:32:40 +08:00
kdletters
3f0895fa41
修复 cc 回合"模型已回复却报宿主任务提前结束",并放行宿主 MCP 工具
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m45s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- thread_manager/dispatch.rs 在放行成功出口补写 DirectTurnTerminal::completed():cc 执行器没有 codex app-server 那条深层终态出口,否则占用对象兜底会把已拿到回复的回合收成 HostDropped
- direct_turn_failure.rs 新增 completed() 终态(status=completed、无失败载荷)与对应单测
- claude_code_cli.rs 在 cc 解析成功后把回复按 response_item/assistant 落进 .agent/conversations/project.jsonl(id=direct-codex:<clientTurnId>:assistant),落盘失败按回合失败收口
- agent-sidecar 按 mcp__<server> 前缀放行请求声明的 MCP 服务器,避免 dontAsk 模式下宿主工具被直接拒绝
- dispatch.rs 的 host_dropped / panic 诊断字段改用 tt=,不再被日志脱敏整行吃掉(原 turnToken= 命中凭据标记)
- pitfalls.md 记录三条根因、现行口径、诊断口径与 CDP 注入验收证据
2026-10-03 11:28:07 +08:00
k88936
bb446553fd
Merge remote-tracking branch 'origin/master' into fix/res-edit-error-handling
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m43s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m9s
Project CI / Backend tests (pull_request) Successful in 4m39s
Project CI / Frontend tests (pull_request) Successful in 2m19s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m20s
Project CI / Repository checks (pull_request) Successful in 3m2s
Project CI / Native shell tests (pull_request) Successful in 5m37s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-10-03 11:21:20 +08:00
k88936
2dbbf72450
修复:模型调用失败改按 typed kind 判定通道断开
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m39s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 3m14s
Project CI / Frontend tests (pull_request) Successful in 2m4s
Project CI / Repository checks (pull_request) Failing after 22s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m14s
Project CI / Native shell tests (pull_request) Successful in 6m20s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 12m24s
- direct_codex_error_code 原来对 ModelCallFailed 一律按宿主原文子串分类,ModelCallKind::TransportBroken 只有在原文恰好含 transport closed / 连接已关闭 时才会标成 transport-closed
- 改为先看 payload.kind:TransportBroken 直接给 transport-closed,其余 kind 仍按原文兜底(TODO 文本判据)
- 补用例 model_call_transport_broken_is_classified_from_the_typed_kind:原文不含任何分类标记,也只可能由 typed kind 得出该 code
2026-10-03 10:59:28 +08:00
k88936
40b79bb1ec
重构:turn.completed 的 status 由自由字符串收成 typed 枚举
...
- 新增 TurnCompletedStatus(completed / interrupted / aborted / failed),作为 turn.rs 里 status 字段的类型
- 新增只作构造参数的 TurnOutcome(completed / interrupted / aborted):turn_completed 拿不到 Failed,"failed 但没有失败载荷"在构造层就写不出来
- turn_completed_failed 固定写 TurnCompletedStatus::Failed,载荷与状态在同一条构造路径上
- 内部状态比较与用例断言改为比较枚举取值;线上 JSON 形状、字段名与前端契约不变
- 重新生成绑定:新增 TurnCompletedStatus.ts,ThreadEvent.ts 的 status 由 string 收成字面量联合
2026-10-03 10:55:04 +08:00
k88936
fb80c7d5e4
发行包上传用 From 收敛结构化错误,替换重复的 map_err
...
- 为 GamePackageUploadError 实现 From<GamePackageUploadError> for String
- upload_staged_game_package 中三处 .map_err(|e| e.to_user_msg()) 改为 ?,Fatal 分支改为 error.into()
2026-10-03 10:54:29 +08:00
k88936
b4bbd08414
发行包上传错误 detail 去掉与步骤标签重复的前缀
...
- 读取响应/分片响应/完成响应失败改为直接给原始 error,步骤由 GamePackageUploadStep 标签提供
- JSON 解析与缺字段的 detail 去掉「上传状态响应」「分片响应」「完成响应」等重复主语
2026-10-03 10:52:32 +08:00
k88936
b3ed1c0f80
发行包上传抽 server_error_detail,统一 message/code/兜底顺序
...
- game_package_upload.rs 新增 pub(crate) server_error_detail,统一先取非空 message 再退非空 code 的顺序
- runtime.rs 五处 HTTP 错误分支改用该 helper,删除各自复制的过滤逻辑
- game_distribution_publish.rs 的 response_data 与 map_http_error 共用同一 helper
- FORBIDDEN 分支改用 helper,补上此前缺失的空 message trim 过滤
2026-10-03 10:51:29 +08:00
suzmii
64ef6d7428
Merge remote-tracking branch 'origin/master' into fix/web-preflight-browser-recovery
2026-10-03 10:29:10 +08:00
k88936
d90f4fdfdc
Merge pull request 'style/优化聊天历史页' ( #590 ) from feat/smoother-dialog-history into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m12s
Project CI / Backend tests (push) Successful in 4m51s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m11s
Project CI / Frontend tests (push) Successful in 2m22s
Project CI / Native shell tests (push) Successful in 5m36s
Project CI / AI game creator shell web tests (push) Successful in 2m34s
Project CI / Repository checks (push) Successful in 3m3s
Reviewed-on: #590
2026-10-02 23:22:32 +08:00
k88936
1874a6e9ec
注释:为会话滚动锚点的全表量测补 TODO 性能分析
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m55s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 4m18s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m33s
Project CI / Backend tests (pull_request) Successful in 3m58s
Project CI / Repository checks (pull_request) Successful in 3m4s
Project CI / Frontend tests (pull_request) Successful in 3m25s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m14s
Project CI / Native shell tests (pull_request) Successful in 5m49s
- conversationScrollAnchor.ts 的 readTopVisibleTurnAnchor 循环上方新增 // TODO(perf): 注释,仅注释、无行为变化
- 记录量测口径:最坏 O(锚点之前的块数) 次 getBoundingClientRect,同帧首次调用后布局已干净、后续不再各自触发 reflow,属 low,不是振荡源
- 记录 rAF 节流与「只在补偿前才读」都省不掉这次遍历,故不采纳
- 记录二分 / 续扫被收起 <details> 的 0 矩形打断单调性,需先定「隐藏块怎么参与」
- 首选后续方向:缓存上次命中的块身份并从附近续扫,不破坏单调性假设
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 22:34:07 +08:00
k88936
adcf3b9730
修复:回合失败载荷 stage 未知时不再渲染 undefined
...
- turn.completed.failure 跨 IPC 没有运行时校验,superErrorFromStringPlusStage 的 stage 缺失或为更新后端新增的取值时,查表得到 undefined 会被拼进用户可见文案
- 查不到标签时回落到通用句"执行失败,请稍后重试",只有已知阶段才带"请检查项目诊断"
2026-10-02 22:31:52 +08:00
k88936
1ba9ac848f
修复:回合失败载荷缺 kind 时不再让失败文案抛错
...
- turn.completed.failure 跨 IPC 没有运行时校验,modelCallFailed 载荷缺 kind 时 directModelCallText 会解引用 undefined 抛错,整个事件订阅被打断
- directModelCallText 参数放宽为 ModelCallKind | null | undefined,缺分类时回落到通用句"智能服务执行失败,请稍后重试"
2026-10-02 22:31:36 +08:00
k88936
fc10b2359e
修复:线程条目投影的上游字符串统一走脱敏与限长
...
- FunctionCall.name 原来既不脱敏也不截断,改为走 detail_text(脱敏 + THREAD_DETAIL_MAX_CHARS)
- McpToolCall.tool 原来只脱敏不截断,改为 detail_text
- CommandExecution.status、McpToolCall.status、ThreadItem::Other.raw_type、ThreadFileChange.kind 原来原样拷贝,统一按 THREAD_DETAIL_MAX_CHARS 限长,避免单条事件突破声明的事件通道预算
2026-10-02 22:31:05 +08:00
k88936
80afa2a139
修复:生成绑定校验不再因首个目标失败就中止
...
- 原来每个目标里直接 process.exit,第一个目标(shared-contracts)失败时 AGC 目标根本不会被检查,得反复重跑才知道还有哪些绑定陈旧
- 改为记录 failed 后 continue,跑完全部目标再统一退出 1,两个绑定集的错误一次报齐
2026-10-02 22:31:02 +08:00
k88936
fff4e8ff68
修复:生成绑定校验的目录快照支持子目录并规范化路径
...
- snapshot() 原来只列目录下一层文件,绑定若放进子目录就两边快照都看不见,陈旧绑定会被漏掉
- 改用 readdirSync 的 recursive 列出全部条目,再按文件过滤并归一到 POSIX 分隔符,键形态与原来保持兼容
2026-10-02 22:30:50 +08:00
k88936
f593bd4bf6
修复:生成绑定校验对不存在的目录不再静默通过
...
- snapshot() 遇到配置目录不存在时原来直接返回空表,空表比空表会被当成"通过(0 个文件)"
- 目录写错或已删除时改为打印"目录不存在,跳过校验",避免整组绑定被悄悄跳过
2026-10-02 22:29:12 +08:00
k88936
6f2eed0dc2
修复:生成绑定校验无法启动 cargo/npx 时暴露真实原因
...
- spawnSync 连命令都拉不起来(如 ENOENT)时 status 为 null、error 非空,原来只报一句"未通过",看不到原因
- run() 改为在 result.error 时先打印"无法启动 <命令>:<原因>",spawn 失败与测试失败可区分
2026-10-02 22:29:08 +08:00
k88936
bfbcb1dd02
文档:修正生成绑定校验提示里缺少的 cargo 参数
...
- shared-contracts 提示补上 --manifest-path server-rs/Cargo.toml:仓库根没有 Cargo.toml,照抄提示会直接失败
- 两条提示都补上 --locked,与实际执行的 cargo 命令保持一致
2026-10-02 22:29:02 +08:00
k88936
0ae94caf16
修复:更早历史的世代号在渲染期推进,切换项目的守卫不等 effect
...
- 换项目时 historyLoadTokenRef 与 projectPathRef 同一处推进,复位 effect 不再推进
- 旧读取在「切换提交完成、复位 effect 未跑」的窗口落地时立刻失效,不再合并条目或写游标
- ADR 第 1 条与决策记录说明推进时机与其安全性依据(该窗口内不会新起带旧游标的读取)
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 22:27:33 +08:00
k88936
09f007d519
修复生成绑定校验在 Windows 上启动不了 npx
...
- check-generated-bindings.mjs:prettier 归一化改用平台命令名 npx.cmd / npx,spawnSync 无 shell 时 Windows 解析不到裸 npx
2026-10-02 22:26:56 +08:00
k88936
e9ad1f3ddb
RunFailure Display 去掉多余的一次 String 分配
...
- codex_app_server/mod.rs:Self::Failed(error) 用 write!(formatter, "{error}") 直接走 Display,不再先 error.to_string() 再 write_str
2026-10-02 22:26:35 +08:00
k88936
25213c9ff7
修复空 text 短路 content 兜底导致条目丢失
...
- items.rs:item_text 先判空/全空白再回落 content/summary;此前 Some("") 会短路兜底,末尾非空过滤把整条 message/reasoning 丢掉
- wire/tests.rs:补空 text + 有 content 的回归用例
2026-10-02 22:26:12 +08:00
k88936
2b01476891
修复:动画期间内容变高时把回到底部动画重新对准新底部
...
- 程序化平滑滚动期间布局补偿不再直接跳过:内容变高时以新的 scrollHeight 重发平滑滚动
- 避免动画停在旧目标后 programmaticScrollRef 等不到贴底事件、跟随与补偿整段挂起
- hook 用例断言动画目标从 [1200] 变为 [1200,1500] 且仍能交还控制权
- ADR 第 3 条补一条口径,决策记录补齐本条与错误行结构两条
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 22:25:47 +08:00
k88936
8f91227d17
修复:历史加载错误行的重试按钮移出断言式 live region
...
- 内联错误行由 <p role=alert> 改为普通容器,role=alert 只包住错误文案本身
- 重试按钮留在 live region 之外,避免被卷进 assertive + atomic 的整体播报
- 组件用例断言 alert 不包含重试按钮,重试仍是可点击的唯一手动出路
- ADR 同步错误行的无障碍结构
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 22:24:21 +08:00
k88936
cb13ecf879
清理资源引用里残留的 DirectCodex 函数名
...
- resourceReferences.ts:chatComposerDraftToDirectCodexUserItem → chatComposerDraftToUserItem、directCodexUserItemFromContent → userItemFromContent,与已改名的 UserItem 生成类型对齐
- 同步 DirectProjectChatView、useDirectProjectChatController 与三处用例的调用与 import
2026-10-02 22:24:00 +08:00
k88936
c0ad48798f
Merge remote-tracking branch 'origin/master' into fix/res-edit-error-handling
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m1s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m51s
Project CI / Backend tests (pull_request) Successful in 4m43s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m48s
Project CI / Frontend tests (pull_request) Successful in 2m19s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m26s
Project CI / Repository checks (pull_request) Successful in 2m53s
Project CI / Native shell tests (pull_request) Successful in 6m5s
2026-10-02 22:21:24 +08:00
k88936
9a75ea57f0
修复两处过期用例并补记 Direct 失败载荷改名与透传口径
...
- 修复 direct_tools_mcp 容量用例:handler 已改为返回 Response,改为取出 body 后再断言 JSON-RPC id
- 修复 direct_runtime 命令边界诊断用例:改为断言结构化 sidecar(schemaVersion/source/stage/code/clientTurnId/detail),不再断言早已不落盘的 direct-codex-failure:v2 文案
- AGC 命令错误 ADR 补记 TurnFailure 两个字符串债臂的命名与“terminal_failure 是唯一投影点、不许重包”口径
- 决策记录新增 2026-10-02 条目:两臂改名(SuperErrorFromStringPlusStage / Unclassified)与 typed 失败原样下发
- 排查记录补充:cargo test 过滤是子串匹配,会连带命中 export_bindings 并重写生成目录,用 --skip export_bindings 避开
2026-10-02 22:19:36 +08:00
k88936
cdccfa6cd5
发行包上传失败带出「哪一步」子枚举
...
新增 GamePackageUploadStep(ReadUploadState / UploadChunk / CompleteUpload)与 GamePackageUploadError { step, detail }
read_upload_state / upload_chunk / complete_upload 改返回 typed 错误,detail 只放服务端 message / code / HTTP {status}
步骤名由 step 枚举渲染,不再靠各调用点硬拼「读取上传状态失败」这类前缀
upload_staged_game_package 在三个远端调用点 .map_err(to_user_msg);本地错误与对外签名保持 String,两处调用方零改动
2026-10-02 22:19:27 +08:00
k88936
29eed573a0
重命名 Direct 回合失败载荷并让 typed 失败原样下发
...
- TurnFailed 更名为 SuperErrorFromStringPlusStage:只有 stage 是 typed,detail 仍是产生层字符串
- TurnFailedUnclassified 更名为 Unclassified:深层字符串兜底,连交付阶段都没有
- 拆掉 direct_runtime 与 thread_manager 两处收口重包,typed 失败原样投影成失败载荷
- 审计写盘保留,只是不再把 direct-codex-failure:v2 收口文案当失败载荷的 detail
- 生成绑定重导出(旧 TurnFailed/TurnFailedUnclassified 生成文件删除),前端分支与 directThreadChat 用例同步改名
- 命名债注释补记:这两个载荷臂与 SuperErrorEnumFromStringTyped 属同一笔待清债
2026-10-02 22:11:41 +08:00
k88936
1a99a2f26b
发行包上传 HTTP 兜底先过滤 message 再退 code
...
read_upload_state / upload_chunk(retryable、fatal) / complete_upload 四处 .or(code).filter 顺序反了
空 message 会把服务端 code 一起吞掉,统一改成 filter(message).or_else(|| code.filter(...))
2026-10-02 22:09:02 +08:00
k88936
a0428da5d1
HTTP 错误兜底先过滤 message 再退 code,避免空 message 吞掉 code
...
game_distribution_publish response_data 的 message.or(code).filter 顺序反了,空 message 会连 code 一起丢掉
map_http_error 同类顺序问题一并修正(review 未列,属同一类 bug)
2026-10-02 22:08:53 +08:00
k88936
675dfe0c8f
account_api 抽出 error_field 消除 message/code 的重复解析
...
error_message / error_code 只差字段名,合并到 error_field(body, field)
调用点保留 error_message / error_code 两个薄封装
2026-10-02 22:08:44 +08:00
suzmii
2579c04c4d
修复 Web 预检浏览器失败恢复
...
Project CI / Backend tests (pull_request) Failing after 34s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m45s
Project CI / Frontend tests (pull_request) Successful in 2m14s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m13s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m23s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m55s
Project CI / Native shell tests (pull_request) Successful in 5m44s
- WS 握手与 CDP 连接瞬态失败在确认进程树清理后使用新 Profile 重试一次\n- 加强 Windows Edge 进程身份、命令行 Profile 与 Job 子树归属校验\n- 透传恢复阶段诊断并补充预检规范、里程碑计划和定向测试
2026-10-02 20:50:50 +08:00
k88936
ff88ad9210
Merge remote-tracking branch 'origin/master' into feat/smoother-dialog-history
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m39s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 3m41s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m25s
Project CI / Backend tests (pull_request) Successful in 4m46s
Project CI / Frontend tests (pull_request) Successful in 2m30s
Project CI / Repository checks (pull_request) Successful in 2m58s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m14s
Project CI / Native shell tests (pull_request) Successful in 5m37s
2026-10-02 20:19:53 +08:00
k88936
429557ea6a
修复:会话滚动锚点改用稳定块身份定位
...
锚点从「回合 key + 块序号」改为「回合 key + 块身份」,findTurnBlock 按 data-block-key 定位:回合收口时过程块被折进 details,块序号会整体后移,原实现会解析到隔壁块并按错误基准写 scrollTop。
收集选择器收敛为 [data-turn-key][data-block-key],只把可定位的块计入候选。
锚点块没有布局盒(被折进收起的 details)时读锚点跳过它、restoreTurnAnchor 判失败并放弃这次补偿,调用方拿当前位置重新起锚。
用例补齐:块序号后移后按块身份仍还原到同一块、收起的 details 里的块不参与读取也不参与还原、只收集带块身份的块。
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 20:18:08 +08:00
k88936
883bcb182d
HTTP 错误兜底优先服务端 code,叶子不再拼操作名前缀
...
game_package_upload 三处不再丢弃服务端 code,改成 message → code → HTTP {status}
去掉「读取上传状态失败(HTTP 503)」这类叶子里的操作名前缀,操作名交给调用方话术
game_distribution_publish response_data 用上被丢掉的 error.code
game_distribution_publish 封面任务终态兜底统一成「服务器未返回错误信息」
account_api envelope 分支补 error.code 兜底
2026-10-02 20:17:00 +08:00
k88936
14afd21d7e
资源编辑错误文案只认平台 error 原文,phaseDetail 只进诊断
...
RemoteResourceEditFailure / ResourceEditError 的 to_user_msg 只回平台 error 原文,平台没给时回「服务器未返回错误信息」
typed 错误新增 phaseDetail 字段,只随诊断 sidecar 序列化,不参与用户文案
远端轮询 failed 分支同时读取 error 与 phaseDetail
删除断言 to_user_msg 字面量的单测,只保留 typed 字段原样序列化进诊断的结构断言
canvas_generation 远端 failed 分支不再拿 phaseDetail 当用户文案
同步 decision-log 与 pitfalls
2026-10-02 20:16:47 +08:00
k88936
42de1b4c39
展示:可锚定块带上稳定块身份 data-block-key
...
DirectProjectTurn 给正文块写 data-block-key={block.key},「执行过程」包装块与终态文案各给一个回合内唯一的字面量块身份。
ToolCallGroup 与 AgentReasoning 新增可选 blockKey 并透传到 data-block-key,turnKey 的注释改成「按回合 key + 块身份定位」。
组件用例断言每个可锚定块都有块身份且同回合内唯一,并用 running→finished 前后对照钉住「块序号会整体后移、块身份不变」。
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 20:15:07 +08:00
k88936
9f7c2e318c
文档:前插锚点改用稳定块身份
...
锚点契约从「回合 key + 块序号 + 偏移」改为「回合 key + 块身份(data-block-key)+ 偏移」,写明 running→finished 收口后块序号整体后移、序号锚点会解析到隔壁块的原因。
补记锚点块没有布局盒(被折进收起的 details)时读锚点跳过、还原判失败并放弃这次补偿的规则。
备选方案补记被否掉的「锚点存块序号」与「改找同回合其它可见块」,验收清单补「长回合收口时视口不跳」。
决策记录同步同一条决策与测试口径。
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 20:12:35 +08:00
k88936
a589dad003
文档:同步 review 修正后的会话滚动契约
...
- ADR 第 1 条补「一次加载与它所属的世代绑定」,第 2 条补块集合缓存与失效信号
- 决策记录追加两处内部缺陷的症状、修正与验证口径
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 19:59:34 +08:00
k88936
1caf8ae8b0
优化:会话滚动锚点复用块集合缓存
...
collectTurnBlocks 结果按列表缓存(WeakMap),读锚点与还原锚点在同一帧内不再各查一遍整份列表
useConversationScroll 的 MutationObserver 在子元素增删时调 invalidateTurnBlocks,失效信号与重订阅共用同一处
新增两例纯函数用例:连续收集只查一次 DOM、子元素变化并失效后重新收集
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 19:58:19 +08:00
k88936
e3c3091ec4
修复:更早历史读取按世代号失效旧请求
...
loadEarlierHistory 的成功 / 失败 / finally 守卫从「项目路径相等」改成「世代号相等」,A→B→A 之后在飞的旧读取不会再清掉新一代的加载态
新增 historyLoadTokenRef,切项目与每次读取各推进一格,旧世代落地时整段丢弃:不合并条目、不写游标、不关并发闸门
新增一例控制器用例驱动 A→B→A 与同路径新读取在飞,修正前在「旧读取落地」处确实红
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 19:57:04 +08:00
kdletters
db0332ea09
把 AGC 的 cc 执行器与本机 Claude Code 配置彻底隔离
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m14s
Project CI / Backend tests (push) Successful in 4m38s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m23s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / Native shell tests (push) Successful in 6m11s
Project CI / Repository checks (push) Successful in 3m15s
Project CI / AI game creator shell web tests (push) Successful in 2m34s
- sidecar 子进程把 HOME、USERPROFILE、CLAUDE_CONFIG_DIR 全部指向项目内隔离目录,不再读用户自己的 ~/.claude.json(个人 MCP、插件市场、凭据),也不再往真实 profile 写 projects / sessions
- requestTimeoutMs 在 cc 执行器里改为静默预算:sidecar 每有一条事件就重置,连续静默超预算才按 sidecar-turn-timeout 收口
- 新增 CLAUDE_CODE_TURN_MAX_DURATION(45 分钟)兜底事件流假活,正常情况更早到的是 DirectProject 的 maxTurnSeconds
- claude_route 诊断行改成 source / host / auth,避开日志脱敏标记(原 credential=bearer 会被整行替换)
- 新增 sidecar 环境隔离单测:USERPROFILE / CLAUDE_CONFIG_DIR 指向隔离目录,且不下发本机 ANTHROPIC_*
- pitfalls.md 记录配置隔离、静默超时语义与脱敏标记的坑
2026-10-02 19:54:13 +08:00
kdletters
c5673c5757
修复 AGC 的 cc 路由被本机 ANTHROPIC_* 环境顶掉
...
- claude_code_cli.rs 用 claude_code_route 统一决定 cc 的 baseUrl 与凭据:平台会话 > 自定义端点 > 配置 key,本机 ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY 完全不再参与
- 未登录且没配 key 时由 game_creator_claude_code_cli_route_error 明确报「cc 模式需要先登录陶泥儿账号」,不再静默回落到用户个人中转
- 不再把 ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 放进 sidecar 的 copy_env 白名单,凭据只由解析出的路由下发
- 新增 agent.direct_codex.claude_route 诊断行(source / host / credential),只写主机名,不带路径与凭据
- 新增 claude_code_cli 路由单测:平台优先、自定义端点用 x-api-key、未登录不回落本机环境、baseUrl /v1 归一化、主机名诊断
- pitfalls.md 记录本次「官方模型全被发到用户个人中转」的根因、现行口径与排查手段
2026-10-02 19:30:59 +08:00
k88936
d62afe3275
图片生成远端失败不再兜底一句重复的「生成任务失败」
...
- canvas_generation 轮询到 status=failed 时,平台既没给 error 也没给 phaseDetail 的兜底由「生成任务失败」改为「服务器未返回错误信息」,不再和句首「平台图片生成任务失败:」重复
- decision-log 追加同类兜底决策,说明这条与资源编辑同属「缺省时要说清是服务器没给信息,而不是再喊一次失败」
2026-10-02 19:30:03 +08:00
k88936
a932c9635e
资源编辑 typed 错误只给事实,前缀交给使用方
...
- ResourceEditError::to_user_msg 不再拼「资源编辑生成失败」:远端终态只回平台 error 原文,平台没给时统一说「服务器未返回错误信息」
- 桌面命令面 derive/resume_local_project_resource 自己补「资源编辑生成失败:」前缀,桌面 UI 文案不变,前缀落在它真正的使用者这一层
- 单测:typed 错误断言原文逐字透传与缺省兜底;抠图远端失败测试同口径更新
- decision-log 追加「前缀归属」决策(工具面各用各的前缀、桌面面用资源编辑生成失败、叶子错误不写死总结),pitfalls 同步口径
2026-10-02 19:29:49 +08:00
k88936
44dd809e9a
工具错误不再写死「资源编辑生成失败」前缀
...
- RemoteResourceEditFailure::to_user_msg 只回平台 error 原文,平台没给时统一说「服务器未返回错误信息」,不再拼一句没有信息量的总结
- 前缀交给使用它的工具自己加:生成/派生侧「生成或派生资源失败:」、抠图侧「抠图失败:」,两侧文案回到各自工具的既有口径
- 载体仍是两个工具共用的 RemoteResourceEditFailure,平台原文照旧整段进诊断的 typed error
- 补单测:载体层断言原文逐字透传与缺省兜底,工具层断言各自前缀下的文案
2026-10-02 19:29:33 +08:00
k88936
97e8f1b652
Merge remote-tracking branch 'origin/master' into feat/smoother-dialog-history
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m50s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m30s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m51s
Project CI / Backend tests (pull_request) Successful in 4m53s
Project CI / Frontend tests (pull_request) Successful in 2m33s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m27s
Project CI / Native shell tests (pull_request) Successful in 5m47s
Project CI / Repository checks (pull_request) Successful in 3m4s
2026-10-02 19:20:53 +08:00
k88936
cdccb7a06a
去掉抠图资源编辑调用上冗余的凭据 wrapper
...
- remove_background_payload 的恢复与派生两处不再套 with_direct_editor_api_credentials_as:整个 payload 已在 bridge_remove_background 的 with_direct_editor_api_credentials 作用域内,内层凭据解析只会命中 override
- 因此 ResourceEditError::Other 作为 credentials_error 的分支不可达,删掉以免误导(凭据失败仍按原路径落到 CredentialsUnavailable)
- 保留 Box::pin(资源编辑 future 体积问题不变),注释改为同时说明装箱原因与凭据作用域来源
2026-10-02 19:14:57 +08:00
k88936
ccc9b776d1
修复:切项目时复位 DirectProject 对话滚动所有权
...
useConversationScroll 新增 conversationKey 身份信号,身份变化时复位跟随最新 / 贴底 / 有新回复 / 前插锚点 / 折叠头 / 程序化滚动标记
复位时把终态指纹同步成新会话内容并重新贴底,避免同一次提交里的内容变化被算成「有新回复」
DirectProjectConversation 透传身份键,DirectProjectChatView 传项目路径,不重建列表 DOM
新增 3 条换会话用例与 1 条组件用例,组件用例抽成 conversationElement 以便 rerender
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 19:13:07 +08:00
k88936
95a32a316f
文档:换会话时复位 DirectProject 滚动所有权
...
- ADR 新增第 6 条:会话身份作为显式信号复位跟随最新/锚点/胶囊状态,并记录「key 重建列表」的取舍
- 决策记录追加换会话复位的症状、决策与验证口径
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 19:08:54 +08:00
k88936
986136171e
修复控制器回归测试的 invoke 替身类型
...
- vi.fn 返回固定签名,装不进 window.__TAURI__.core.invoke 的泛型签名,显式转成 TauriInvoke
- tsc 不再报 TS2322;用例行为与断言不变
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 18:57:43 +08:00
k88936
9cff7bf049
修复更早历史读取失败消息为空时挂起态与错误行一起消失
...
- 失败消息统一收口成非空兜底文案,空 message 不再让 historyError 变 falsy
- 新增控制器回归用例:宿主抛 new Error() 时挂起态仍成立
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 18:53:51 +08:00
k88936
77401adfe8
修复更早历史加载被旧项目读取提前关闭加载态
...
- loadEarlierHistory 的 finally 补上项目归属守卫,旧项目在飞的读取落地时不再清掉新项目的加载态与并发闸门
- 新增控制器回归用例:切项目后旧读取落地,新项目的加载态保持到它自己收口
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 18:52:33 +08:00
kdletters
fcb3f2d258
修复 process_identity 在 dev feature 组合下编不过
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m28s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m44s
Project CI / Backend tests (push) Successful in 4m40s
Project CI / Frontend tests (push) Successful in 2m47s
Project CI / Repository checks (push) Successful in 3m22s
Project CI / AI game creator shell web tests (push) Successful in 2m25s
Project CI / Native shell tests (push) Successful in 6m44s
- process_identity:补 use std::io;,dev 构建(no-default-features + editor-execute)下 io::Error 解析不到,挡住本地开发栈启动
2026-10-02 18:51:11 +08:00
kdletters
a5c2ddb917
cc 收尾解析补不过脱敏的失败诊断
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m48s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- claude_code_cli:parse 之后写 claude-parse-done chars=N / claude-parse-error 分段 trace,失败时再往 stderr 打一行 [agc-cc-direct] parse failed: <原因>
- 起因:2026-10-02 18:19 那轮模型已回复(33/103 tokens,149 秒)却在 claude-parse-start 之后被丢弃收成 host_dropped,AppData 日志因文本含 turnToken= 被整体脱敏,看不到原因
2026-10-02 18:47:28 +08:00
k88936
d2a5bceaba
资源编辑远端失败原文透传到工具错误与诊断
...
Project CI / Backend tests (pull_request) Failing after 29s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m48s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 3m54s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Successful in 2m50s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m28s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m55s
Project CI / Native shell tests (pull_request) Successful in 6m48s
- agent/tool/error.rs 新增共用载体 RemoteResourceEditFailure { serverMessage },两个工具的平台失败文案只写一份
- CreateOrDeriveResourceError 与 RemoveBackgroundError 各加 RemoteGenerationFailed(RemoteResourceEditFailure) 变体,远端终态失败不再压回字符串
- 两个工具各加显式 from_resource_edit_error 翻译,不用 impl From<ResourceEditError>;Other 仍落回各工具原有的「失败:<文案>」变体并留 TODO
- 桥里四个资源编辑调用点改用 typed 入口,并 Box::pin 后再 await:资源编辑 future 内联会顶穿 handle_direct_tool_bridge 状态机的调试测试线程栈
- assets.rs 新增 with_direct_editor_api_credentials_as,保留调用方 error 类型,凭据解析失败由调用方显式翻译成 ResourceEditError::Other,旧名与其余调用点零改动
- 工具错误模块补单测:平台原文进 message、进序列化的 typed 错误,无原文与未分类失败各自的文案
- decision-log 补工具层承载、凭据作用域错误类型、future 装箱三条决策与真实验证结果;pitfalls 补工具层原样透传口径
2026-10-02 18:43:07 +08:00
k88936
f68773db9a
资源编辑错误通道补 typed 错误并把平台失败原文带出
...
- 新增 project/resource_editor/error.rs:ResourceEditError 只有 RemoteGenerationFailed { server_message } 与 Other(String) 两个变体,to_user_msg 是唯一写「资源编辑生成失败:…」的地方,Other 上留 // TODO refactor string-typed
- 轮询到 status=failed 时读平台 error 原文装进 RemoteGenerationFailed 带出,账本仍只写 terminal_failure_code,原文不进账本
- 删掉轮询与提交期 HTTP 400 两处首句失败文案的 remote-terminal-failed 前缀;ensure_resource_edit_phase_resumable 里的三个 token 保留
- 两个入口拆成 typed 实现与 Result<_, String> 外观:derive_local_project_resource_typed / resume_local_project_resource_edit_typed,旧名映射 to_user_msg 供既有调用点与 Tauri 命令使用
- 不提供 impl From<String>,每处 String 错误显式 .map_err(ResourceEditError::Other)
- terminal_failure_code 加 // TODO clean unnecessary 并写明清理前置条件(字段无 skip_serializing_if、账本带 deny_unknown_fields)
- 测试:远端终态断言平台原文进文案且不进账本,抠图远端失败改用 typed 入口覆盖无 error 时的兜底
2026-10-02 18:42:41 +08:00
k88936
238c3c60d7
修复:点回到底部后平滑滚动不再被自身补偿打断
...
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m53s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m41s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / Repository checks (pull_request) Failing after 27s
Project CI / Frontend tests (pull_request) Successful in 2m36s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m24s
Project CI / Native shell tests (pull_request) Successful in 5m42s
- 新增 programmaticScrollRef:动画在飞时滚动事件不翻转跟随、布局补偿整段跳过
- 只有真的还要走一段距离才接管滚动位置;滚到贴底或滚轮 / 触摸 / 键盘接手即交还
- 补齐 hook 用例:动画途中胶囊不闪回、不写 scrollTop、落位后与被打断后照常判定
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 18:18:34 +08:00
k88936
ecb84f1e70
修复:展开折叠块时把新展开的正文露出来
...
- 新增纯函数 toggleRevealDelta:折叠头冻结与露出正文合成一次 scrollTop 位移
- 正文底边超出视口只补超出量,正文比视口还高才对齐正文顶边,收起不额外滚动
- 补齐用例:纯函数六例与 freezeToggleHead 两条真机行为
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 18:18:26 +08:00
k88936
e82070098c
文档:修订 DirectProject 对话滚动契约
...
- 补充程序化平滑滚动独占滚动位置的规则:动画期间滚动事件与布局补偿都不得写 scrollTop
- 补充折叠展开「刚好露出新展开正文」的最小位移规则,并明确收起不额外滚动
- 决策记录追加两个真机缺陷的根因、修正与 Chromium 复验结论
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 18:18:20 +08:00
k88936
c18c73fa2f
文档:记录 DirectProject 回合错误命名化、wire 拆分与终态判别联合
...
- AGC 命令错误 ADR:三条错误表补 DirectProject 现有命名(TurnError / TurnFailure / EnqueueError),并写明"回合终态 TurnCompletion 是宿主内部判别联合,不导出、不进 wire"
- 决策记录新增 2026-10-02 条目:命名去冗余前缀、wire.rs 按职责拆分、宿主终态改判别联合与 TurnCompletion 的落点
2026-10-02 18:10:54 +08:00
k88936
bee23a0a25
重构:文本判据债改名 SuperErrorEnumFromStringTyped 并写清上游改造 TODO
...
- turn_error.rs 把 DomainFact 改名为故意扎眼的 SuperErrorEnumFromStringTyped,标记"从字符串读出的 typed 失败事实表"这笔待清债
- TODO 从"产生层还没有 typed 出口"改为明确指向上游改造:让产生层直接产出 typed 变体/结构化子错误、判定层改 match,之后整张表与 classify_direct_codex_error 一起删
- enum 注释写明这个名字是债标记:禁止把它改漂亮,只允许按 TODO 删掉整张表
- 只改名与注释,不改任何判定逻辑
2026-10-02 18:10:39 +08:00
k88936
394b8de9d2
重构:DirectProject 回合错误去前缀、拆分 wire 模块、终态改判别联合
...
- 三条错误表去冗余前缀:DirectTurnError→TurnError、DirectTurnEnqueueError→EnqueueError、DirectTurnFailure→TurnFailure、DirectTurnDeadline→Deadline、DirectCodexFailureStage→FailureStage、DirectCodexNativeKind→NativeKind、DirectModelCallKind→ModelCallKind
- 用户条目去前缀:DirectCodexUserItem→UserItem 等六个类型;agent/direct_turn_error.rs 移到 codex_app_server/turn_error.rs
- thread_manager/wire.rs 拆为 wire/{mod,clock,items,turn,failure,tests}.rs;direct_turn_failure.rs 的失败载荷并入 wire/failure.rs
- 宿主侧回合终态从 struct TurnTerminal 改为 enum TurnCompletion{Completed,Interrupted,Aborted,Failed},从 wire 移到 thread_manager/turn_completion.rs,status 由变体反推
- 过期回合释放兜底改走 TurnCompletion::Aborted.event
- 同步生成绑定、前端调用点与测试;修正终态单测里过时的 TransportClosed 断言
- 对 src-tauri 全量 cargo fmt,满足 pre-commit 的 rustfmt 门禁
2026-10-02 18:10:17 +08:00
k88936
b7224aecef
构建:生成绑定校验覆盖 AGC shell 生成目录
...
- check-generated-bindings 同时覆盖 shared-contracts 与 AGC 的 chat/generated、services/generated、ui-editor/types
- ts-rs 重新生成后先按仓库格式跑 prettier 再逐字节比较,消除"格式不同"的假漂移
- 校验失败时按目标给出对应的重新生成命令
2026-10-02 18:10:00 +08:00
k88936
5092412d89
文档:同步 DirectProject 对话滚动契约与旧口径
...
- ADR 修正样式删除口径:.message-history-more 因策划对话仍在用而保留,后续项一并说明
- 历史技术方案去掉「必须显示显示更早的对话按钮」的过期要求,改为引用新 ADR 的入口形态
- 决策记录新增本次滚动契约、边界与验证口径
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 17:54:15 +08:00
k88936
65b90ed43e
测试:覆盖更早历史自动加载、前插锚点与回到底部胶囊
...
- 新增与实现同目录的 5 组用例:阈值与加载门、锚点读取/还原、折叠头冻结与正文对齐、hook 状态机、组件层按钮移除与重试行
- 根 vitest.config.ts 补一条 include,同目录用例才进得了门禁
- 既有断言同步:消息列表类名加上 overflow-anchor 工具类,DirectProjectConversation 用例改用新的加载状态入参
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 17:54:10 +08:00
k88936
0aa9dad3c7
功能:DirectProject 对话自动加载更早历史并支持回到底部
...
- 删掉常驻的「显示更早的对话」按钮,改由触顶与填充视口两条触发自动加载,失败即挂起并留内联重试行
- 新增 useConversationScroll:列表唯一滚动所有权(跟随最新、ResizeObserver 补偿、前插锚点冻结、胶囊显隐)
- 新增顶部加载行与底部居中 sticky 胶囊两个表现组件,文案与阈值取自 conversationScrollPolicy
- 列表追加 overflow-anchor:none 关掉原生锚定;「有新回复」按最后一轮终态内容指纹判定
- DirectProjectChatView 交出 messagesRef / shouldFollowLatestRef / handleScroll,只传加载状态与回调
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 17:54:03 +08:00
k88936
1653a2be6e
功能:DirectProject 回合块标记 data-turn-key 供滚动锚点定位
...
- DirectProjectTurn 的正文块、执行过程折叠块与终态文案块写上 data-turn-key
- ToolCallGroup 与 AgentReasoning 新增可选 turnKey 透传,工具组与思考块也带回合身份
- 锚点按「回合 key + 块内序号 + 偏移」定位,不新增 DOM 包裹层
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 17:53:53 +08:00
k88936
ccff6cdceb
记录资源编辑远端失败要带出平台原因的设计决策
...
- decision-log 新增 2026-10-02 条目:ResourceEditError 造型、不用 blanket From、不按 terminal_failure_code 分支、前缀去留、原文边界、Other 命名与 error.rs 落点
- 条目里写清 terminal_failure_code 的清理前置条件:字段无 skip_serializing_if 且账本是 deny_unknown_fields,清掉会影响每个已落盘账本
- pitfalls「远端资源编辑终态必须指出唯一出口」补上处理与验证口径:轮询终态把平台 error 原文装进 typed 错误带出、不再压成一句,断言同时要求原文进文案且不进账本
2026-10-02 17:50:00 +08:00
k88936
72ad9b8cdb
功能:DirectProject 聊天控制器暴露更早历史的加载态、失败态与重试入口
...
控制器新增 historyLoading / historyError 两个可渲染状态,与并发判据用的 ref 同步镜像。
loadEarlierHistory 失败时写入 historyError 并挂起自动加载,成功路径清掉失败记录。
新增 retryEarlierHistory:先解挂起再走同一条加载入口,供内联错误行的重试按钮调用。
加载失败不再写顶部状态行(状态行留给首屏读取失败等其它用途)。
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 17:42:14 +08:00
k88936
f0ae0bd5d7
重构:抽出 DirectProject 对话滚动判据、锚点与折叠补偿纯函数
...
新增 conversationScrollPolicy.ts:滚动/自动加载阈值、加载门、胶囊文案与填充视口判据集中在一处。
新增 conversationScrollAnchor.ts:回合 key + 块序号 + 偏移的锚点读取与还原,供前插补偿使用。
新增 conversationToggleReveal.ts:折叠头解析、头部冻结与超长正文对齐,覆盖 details 与 aria-expanded 两种折叠。
新增 useDelayedFlag.ts:延迟显示开关位,避免本地读取瞬间返回时闪一下加载行。
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 17:41:55 +08:00
k88936
c68531b0aa
文档:新增 DirectProject 对话滚动与历史自动加载 ADR
...
新增 ADR,记录更早历史自动加载、内联加载/错误行、回合 key 锚点前插、回到底部胶囊与折叠展开的滚动契约。
在旧「对话历史单一事实源」ADR 的分页条目上补充指向新 ADR 的引用,保留原分页锚点口径。
docs/README.md 登记新 ADR。
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 17:27:49 +08:00
k88936
4b02bcc7b0
Merge pull request 'refactor/类型化工具调用错误' ( #568 ) from feat/typed-tool-error into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m9s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m31s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 4m40s
Project CI / Backend tests (push) Successful in 4m47s
Project CI / Frontend tests (push) Successful in 3m7s
Project CI / AI game creator shell web tests (push) Successful in 3m1s
Project CI / Native shell tests (push) Successful in 6m7s
Project CI / Repository checks (push) Successful in 3m39s
Reviewed-on: #568
2026-10-02 17:07:13 +08:00
k88936
3e9a059d16
Merge remote-tracking branch 'origin/master' into feat/typed-tool-error
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m49s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 4m32s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m32s
Project CI / Backend tests (pull_request) Successful in 4m34s
Project CI / Frontend tests (pull_request) Successful in 2m33s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m31s
Project CI / Native shell tests (pull_request) Successful in 5m36s
Project CI / Repository checks (pull_request) Successful in 3m9s
2026-10-02 16:56:45 +08:00
k88936
19c992f98b
对齐 Gitea 缓存维护用例与已退役 smoke job 的 job 数量
...
- test_gitea_cache_maintenance.py 中两处硬编码的缓存导出/合并分组数 6 改为按 maintainer RUST_JOB_IDS 动态取值,避免新增或退役 CI job 时用例与实现脱节
2026-10-02 16:55:49 +08:00
k88936
2a3e64a999
格式化 AGC 壳 Rust 源码(rustfmt)
...
- cargo fmt --all --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml
- 覆盖退役与合并期间改动的 27 个文件,恢复 check:rustfmt 门禁
2026-10-02 16:36:44 +08:00
k88936
5ffd7dcd0a
修正 AGC 退役后 prompt 边界门禁用例引用已删除源文件
...
- prompt_source_boundaries.rs 移除 src/agent/prompt.rs、runtime_actions/provider_request_builders.rs、runtime_actions/provider_tool_plan.rs、agent_native_tools.rs、context_compaction.rs、goal.rs、generation/run_lifecycle.rs、generation/role_briefs.rs、runtime_protocol/autonomous_completion.rs、runtime_driver/task_start.rs 等已随自建 Runtime 退役的条目
- prompt_source_boundaries.rs 的常量门禁与工具描述门禁同步移除 runtime_driver.rs、agent_native_tools.rs 条目
- runtime_prompt_bundle_build.rs 删除 provider_request_builders.rs、provider_tool_plan.rs、agent/prompt.rs 三个已退役文件的断言;「不得再内联 prompt 正文」由 src 全树 include_str! 扫描继续兜底
2026-10-02 16:36:35 +08:00
kdletters
e1b304d390
自定义 Anthropic 端点改用 x-api-key 出示凭据
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m56s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m12s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m26s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 4m5s
Project CI / Frontend tests (push) Successful in 3m26s
Project CI / Backend tests (push) Successful in 5m20s
Project CI / Repository checks (push) Successful in 3m26s
Project CI / AI game creator shell web tests (push) Successful in 2m8s
Project CI / Native shell tests (push) Successful in 7m43s
- claude_code_cli:custom 模型(用户自带 key 的 Claude 兼容端点)下把 key 放到 ANTHROPIC_API_KEY,让 Claude Code 走 Anthropic 规范的 x-api-key 头;官方模型仍走平台会话的 ANTHROPIC_AUTH_TOKEN
- 依据:同一次 /v1/messages 请求,Router 只认 x-api-key 时返回 200,走 Authorization: Bearer 时会长时间不响应
2026-10-02 16:35:05 +08:00
k88936
31ff818403
Merge remote-tracking branch 'origin/master' into feat/typed-tool-error
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m0s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m23s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m15s
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / Repository checks (pull_request) Failing after 1m11s
Project CI / Backend tests (pull_request) Successful in 5m10s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m11s
Project CI / Native shell tests (pull_request) Successful in 5m55s
2026-10-02 16:22:49 +08:00
k88936
4246052bff
合并 origin/master 到 feat/typed-tool-error
...
- 取 master 退役 DirectProject 工具调用与回合流账本(#560):删除 direct_tool_calls / direct_turn_stream,direct_events 的回合更新收敛为状态与活动,不再广播 game-creator-direct-turn-update
- 取 master 修复 AGC 文件列举被无关临时锁删除打断(#552)与素材导入 / 资源提交项目锁争用(#581)
- 保留本分支 typed 工具错误口径:逐工具错误枚举、派发边界携带原始 error、工具返回不再软失败
- 保留本分支退役 AGC 独立 Agent Runtime / CLI 执行面的删除,继续删掉 master 侧 runtime_actions 等测试与入口
- 补齐 master 新增的 with_conversation_write_contention 测试助手,项目写锁调用统一为 acquire_project_write_lock_with_wait
- 账户素材分页 offset 上限 500 的 schema、预检与行为对齐,越界 offset 返回 typed 错误并适配相关用例
- 错误事件结构体 message 保留调用方原文,脱敏只发生在落盘与应用日志边界
2026-10-02 16:18:50 +08:00
kdletters
3a0d92b622
Anthropic 直通只用 x-api-key 出示 Router 凭据
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m20s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m36s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 3m24s
Project CI / Frontend tests (push) Successful in 3m27s
Project CI / Repository checks (push) Successful in 3m43s
Project CI / Backend tests (push) Successful in 5m15s
Project CI / AI game creator shell web tests (push) Successful in 1m47s
Project CI / Native shell tests (push) Successful in 7m34s
- llm:原生 Anthropic 直通不再同时带 Authorization: Bearer,只发 Anthropic 规范的 x-api-key
- 实测:Router 对同一次 /v1/messages 请求,只带 x-api-key 时 200(4.7s 返回真实回复),同时带 Bearer 时 79 秒后被断开
2026-10-02 16:14:56 +08:00
kdletters
3e9bc76c2c
Anthropic 路由改回原生优先、桥接兜底
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m46s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m38s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 3m33s
Project CI / Frontend tests (push) Successful in 2m41s
Project CI / Backend tests (push) Successful in 4m17s
Project CI / Repository checks (push) Successful in 2m51s
Project CI / AI game creator shell web tests (push) Successful in 1m52s
Project CI / Native shell tests (push) Successful in 5m49s
- llm:/api/llm/anthropic/* 先按 Anthropic 原样直通 Router 的 /v1/messages(20 秒首包上限),拿到 2xx 就直接透传
- llm:直通返回非 2xx、连接失败或首包超时才回退到 Anthropic→Chat 协议桥接,并记录 model/status 便于定位
- 测试:两条 Anthropic 路由用例改为「原生先被拒 + 桥接命中」的两段式 mock
2026-10-02 15:49:01 +08:00
kdletters
580c74759a
Anthropic 桥接对上游一律流式,并补非流式聚合
...
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m19s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 3m4s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m30s
Project CI / AI game creator shell Rust crates (push) Successful in 1m17s
Project CI / Frontend tests (push) Successful in 3m14s
Project CI / Repository checks (push) Successful in 3m49s
Project CI / Backend tests (push) Successful in 5m45s
Project CI / AI game creator shell web tests (push) Successful in 1m51s
Project CI / Native shell tests (push) Successful in 6m47s
- anthropic_bridge:向 Router 一律请求 stream=true,兼容只接受流式 chat 的上游
- anthropic_bridge:新增 SSE 聚合,客户端要非流式时在网关侧拼回 OpenAI 形状再转 Anthropic message
- llm:非流式分支按上游返回形状选择直读 JSON 或聚合 SSE
- 测试:新增聚合单测(文本 + tool_calls + usage → Anthropic tool_use 还原)
2026-10-02 15:29:42 +08:00
k88936
839051f532
退役AGC独立Agent Runtime与CLI执行面
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m50s
Project CI / Backend tests (pull_request) Failing after 24s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m47s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m23s
Project CI / Native shell tests (pull_request) Successful in 6m20s
- 删除 agent/runtime_driver、runtime_protocol、runtime_tools、runtime_actions、runtime_state、runtime_adapter、context_compaction、collaboration、delegation、goal 等自建 Runtime 执行面及专属测试与 fixture
- CliCommand 收敛为 LlmStatus | EnvironmentCheck | PreviewServe,删除 --agent-run / --agent-task / --agent-goal-* / --agent-resume / --agent-context-compact 等 CLI 与 Tauri 命令白名单条目
- 外部 Runner 收缩为编辑器桥 RPC 与 runner.attach_gui_owner + GUI owner 参与锁 / watchdog,保留 --agent-runner
- 前端删除 AgentRuntime* / AgentGoal* 状态与命令调用链,移除 agent-runtime real-e2e / steer / smoke / llm-transient-fault 脚本与对应 CI job
- 内置工具错误收口为 typed error,抽取 agent/tool/error.rs 共享错误供各工具复用
- 新增 agent/redaction.rs、runtime_models.rs、json_sidecar.rs、task_lock.rs、process_identity.rs、art_manifest.rs、design_session.rs、direct_events.rs
- 同步更新 ADR、decision-log、Runtime V1.1、App 实施计划、本地开发运维、pitfalls 与 CI 脚本
2026-10-02 15:23:12 +08:00
k88936
a9ecc3806d
文档清理已退役的 toolOutputTokenLimit 配置残留
...
- 删除 Runtime V1.1 文档中对 toolOutputTokenLimit 的对标、默认配置、observation 收紧与 MCP sidecar 绑定四处引用
- MCP 结果 sidecar 与模型 observation 描述改为不再依赖该已删字段
- 同步修正 decision-log 该配置项,只保留仍存在的 contextWindowTokens / autoCompactTokenLimit
2026-10-02 15:14:04 +08:00
kdletters
21a8886c4c
AGC Anthropic 网关改为桥接 Router 的 Chat Completions
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 3m28s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m56s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m23s
Project CI / AI game creator shell Rust crates (push) Successful in 1m34s
Project CI / Frontend tests (push) Successful in 3m11s
Project CI / Repository checks (push) Successful in 3m43s
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- llm/anthropic_bridge:新增 Anthropic Messages → OpenAI Chat Completions 请求转换(system、messages、tool_use、tool_result、图片、工具名安全化与还原)
- llm/anthropic_bridge:新增 OpenAI SSE → Anthropic SSE 流式翻译(message_start、content_block_start/delta/stop、message_delta、message_stop,tool_calls 还原成 tool_use)
- llm:/api/llm/anthropic/v1/messages 不再打现网不可用的 Router /v1/messages,改走转换后的 /v1/chat/completions;非流式响应同样翻译回 Anthropic message
- llm:删除只服务旧直通的 Anthropic 流式结算辅助,结算点改为翻译器产出 message_stop 或流结束
- 测试:新增请求转换、工具名还原、流式翻译单测;Anthropic 路由测试改为断言 Chat Completions 上游与 Anthropic 形状回包
2026-10-02 15:09:52 +08:00
k88936
c9b4813e68
移除已无消费者的 toolOutputTokenLimit 配置
...
- main.rs/config.rs/cli.rs 删除字段、默认值、校验、patch 合并与 CLI 展示
- 默认配置 game-creator.config.json 删除该键,旧配置里多余的键会被 serde 忽略
- 前端 types/RuntimeConfigDialog 与界面测试同步移除
- 该配置在 context_compaction 删除后已无任何 prompt 构建消费者
2026-10-02 15:08:23 +08:00
k88936
b18b4935e4
Cocos 执行结果给模型前恢复长度上限
...
- code 执行 32000 字符、operation 结果 2MiB
- 成功回执保留原文但按字符数收口
2026-10-02 15:07:20 +08:00
k88936
0ffa5bb1cc
编辑器执行响应给模型前恢复 32k 长度上限
...
- 新增 DIRECT_TOOL_BRIDGE_EDITOR_RESPONSE_MAX_CHARS=32000
- Unity/Godot 成功回执改为保留原文但按字符数收口
2026-10-02 15:07:19 +08:00
k88936
87414fd248
远端告警给模型前恢复每条长度收口
...
- 新增 DIRECT_TOOL_BRIDGE_WARNING_MAX_CHARS=480 与 bounded_remote_warning(s) helper
- createOrDerive/PrepareGameArt/GenerateImage 三个完成回执的 warnings/sliceWarnings 逐条收口
2026-10-02 15:07:19 +08:00
k88936
70aeb79be6
Merge pull request 'Fix/修复登录用户参数等错误被上报' ( #567 ) from fix/wrong-report into master
...
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (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
Reviewed-on: #567
2026-10-02 15:02:26 +08:00
k88936
264b99914f
Merge remote-tracking branch 'origin/master' into fix/wrong-report
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 2m9s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m23s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 3m6s
Project CI / Frontend tests (pull_request) Successful in 3m31s
Project CI / Repository checks (pull_request) Successful in 3m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Successful in 6m48s
Project CI / Native shell tests (pull_request) Successful in 7m29s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-10-02 15:01:38 +08:00
k88936
e7adefb0a1
登记素材导入失败消息做长度收口,完整报告仍留在 typed 错误
...
- to_user_msg 对 ImportFailed/ImportPartial 先报成功/失败计数,再附有界 JSON 明细
- 新增 IMPORT_REPORT_MESSAGE_MAX_CHARS=4000 字符上限
- 补 TODO:应由工具选择性返回,或把完整报告重定向到文件/诊断日志
2026-10-02 14:58:37 +08:00
k88936
9c7cf2601c
工具入参对象校验升级为类型约束,解析器不再可能绕过 NotObject
...
- ToolArgumentsRejection::check 返回已确认的 &Map<String, Value>
- optional_text / required_text / page 改收 &Map,删掉 debug_assert 兜底
- 内部入参解析 helper 同步收 &Map;桥与 MCP 预检的 &Value 入口保持不变
- 更新直连工具桥与单测调用点
2026-10-02 14:57:44 +08:00
kdletters
13ce49599f
修复 AGC MCP 通知请求被拒导致 cc 执行器零工具
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 2m19s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m30s
Project CI / AI game creator shell Rust crates (push) Successful in 1m40s
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- direct_tools_mcp:HTTP 入口对没有 id 的 JSON-RPC 通知(notifications/initialized)返回 202 空体,不再按错误回 400
- 之前 Claude Code 的 MCP 握手被 400 打断,把 agc 服务器标记为 failed,模型请求里一个工具都没有(实测 tools=0,修复后 tools=60)
2026-10-02 14:55:44 +08:00
suzmii
41f0c7aac3
Merge pull request '新增 Web 后台与 AGC 一键开发入口' ( #570 ) from feat/dev-all into master
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Reviewed-on: #570
2026-10-02 14:46:20 +08:00
k88936
0dda4cd78e
编辑器执行错误去掉多余的 to_string
...
- editor_execute/error.rs EditorRejected 直接 clone 已拥有的 cause
2026-10-02 14:40:19 +08:00
k88936
dd115778e9
Cocos 执行错误去掉多余的 to_string
...
- cocos_execute/error.rs CodeInvalid 直接 clone 已拥有的 cause
2026-10-02 14:40:19 +08:00
k88936
8f07ff9379
浏览器试玩错误去掉多余的 to_string
...
- browser_playtest/error.rs PlaytestFailed 直接 clone 已拥有的 cause
2026-10-02 14:40:19 +08:00
k88936
bca9b97acd
统一错误事件返回值复用已脱敏的 message
...
- runtime_error.rs persist_agent_runtime_error 返回的 message 改用 safe_message
- 与 error 字段口径一致,返回值即使被序列化也不会泄露绝对路径/凭据
2026-10-02 14:40:11 +08:00
k88936
b1d16b5683
错误回显不再给字符串套 JSON 引号
...
- arguments.rs not_text_repr 对字符串直接回显原文
- 非字符串仍按 bounded_echo 序列化后截断
2026-10-02 14:39:59 +08:00
k88936
85d51a074e
内置工具分页 offset 加绝对上限,避免 nextOffset 溢出
...
- arguments.rs 新增 MAX_PAGE_OFFSET 常量
- page() 在 max_offset 为 None 时也按 MAX_PAGE_OFFSET 封顶,挡住 offset + page.len() 的溢出
2026-10-02 14:39:46 +08:00
k88936
29a21f480c
Merge remote-tracking branch 'origin/master' into fix/wrong-report
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m47s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m35s
Project CI / Backend tests (pull_request) Successful in 5m5s
Project CI / Native shell tests (pull_request) Successful in 6m7s
Project CI / Frontend tests (pull_request) Successful in 2m19s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m55s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m55s
Project CI / Repository checks (pull_request) Successful in 2m32s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 12m54s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
2026-10-02 14:36:32 +08:00
kdletters
5dc595db58
Claude Code Direct 回合补 sidecar 静默与超时收口诊断
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m39s
Project CI / Backend tests (push) Failing after 3m28s
Project CI / Frontend tests (push) Successful in 1m51s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- claude_code_cli:sidecar stdout 静默 30 秒就写一条 agent.direct_codex.claude_sidecar_idle,记录已静默秒数
- claude_code_cli:超时收口先杀 sidecar 进程树,再给 stderr 一个 5 秒排空窗口,避免回合永远不肯收口
- claude_code_cli:超时详情过滤掉宿主主动断流后 sidecar 自己抛的 EPIPE 收尾噪声
- claude_code_cli:sidecar 返回 error 事件时同样杀进程树,不再留下孤儿 Claude Code 进程
2026-10-02 14:35:16 +08:00
kdletters
72165c3891
修复 Direct 诊断留痕的编译错误
...
- direct_runtime:分段 trace 改用 crate 级 app_log!,crate::append_application_log 在宿主并不存在
- thread_manager::dispatch:兜底收口与 panic hook 同样改用 app_log!
- thread_manager::dispatch:补上 emitter 取用 turn_id 后的 clone,修掉借用已移动值
2026-10-02 14:35:16 +08:00
suzmii
6a4233ee88
合并远端 PR 分支更新
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m34s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 2m19s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m42s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m46s
Project CI / Frontend tests (pull_request) Successful in 2m33s
Project CI / Native shell tests (pull_request) Failing after 4m5s
Project CI / Repository checks (pull_request) Successful in 3m18s
Project CI / Backend tests (pull_request) Successful in 5m44s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m58s
2026-10-02 14:24:04 +08:00
suzmii
ad4884c808
合并 master 最新变更
...
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-10-02 14:22:25 +08:00
k88936
1cc53ab8bd
Merge pull request '统一 AGC launcher 页面高度,修复底部被裁' ( #585 ) from style/agc-home-page-full-height into master
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m22s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m4s
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m32s
Project CI / Frontend tests (push) Successful in 2m57s
Project CI / Native shell tests (push) Failing after 4m15s
Project CI / Repository checks (push) Successful in 4m3s
Project CI / AI game creator shell web tests (push) Successful in 2m31s
Project CI / Backend tests (push) Successful in 6m39s
Reviewed-on: #585
2026-10-02 14:15:35 +08:00
suzmii
7483c894ff
Merge branch 'master' into feat/dev-all
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m43s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m36s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m16s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m46s
Project CI / Frontend tests (pull_request) Successful in 2m40s
Project CI / Repository checks (pull_request) Successful in 3m23s
Project CI / Native shell tests (pull_request) Failing after 4m27s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
2026-10-02 14:14:52 +08:00
kdletters
863148e11c
Claude Code Direct 回合补分段 trace
...
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- claude_code_cli:cc Direct 回合在执行器入口、MCP loopback 就绪、sidecar 启动、sidecar 返回、解析 stream 前各写一条 agent.direct_turn.trace
- direct_runtime:direct_turn_trace 提升为 pub(crate),让 Claude Code 执行器复用同一份分段留痕
2026-10-02 14:01:19 +08:00
k88936
50925d96eb
统一 AGC launcher 页面高度,修复帮助页底部被裁
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m29s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 2m31s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 3m2s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m49s
Project CI / Backend tests (pull_request) Failing after 19s
Project CI / Repository checks (pull_request) Failing after 30s
Project CI / Frontend tests (pull_request) Successful in 3m16s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m37s
Project CI / Native shell tests (pull_request) Failing after 5m2s
- styles.css:新增页面高度契约,.launcher-main 改纵向 flex 列、页面根节点 flex: 1 1 auto,帮助页自带滚动
- src/view/home/index.tsx:首页根节点去掉 h-screen 与 h-[calc(100vh-32px)],改用外壳分配高度的钩子类
- src/view/template-library/index.tsx:模板库去掉 JS 量父级高度与内联 height,改用外壳分配高度的钩子类
- decision-log.md、pitfalls.md:记录页面高度契约与自绘标题栏里自己算 100vh 的排障口径
Co-authored-by: Junie <junie@jetbrains.com >
2026-10-02 13:57:45 +08:00
kdletters
35af46dd94
Direct 回合在 begin 之后补分段 trace
...
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / 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
新增 direct_turn_trace:按 stage 写应用日志,定位回合在 begin 与执行器之间停在哪一步
覆盖 session-ready / run-analytics-accepted / goal-analytics-accepted / system-prompt-ready / executor-dispatch
仅在 cfg(not(test)) 生效,不污染用例与本机 AppData
2026-10-02 13:56:52 +08:00
k88936
f756b52d8c
Merge remote-tracking branch 'origin/master' into fix/wrong-report
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m23s
Project CI / Backend tests (pull_request) Failing after 19s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m48s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 2m14s
Project CI / Repository checks (pull_request) Failing after 36s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m49s
Project CI / Frontend tests (pull_request) Successful in 4m7s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m41s
Project CI / Native shell tests (pull_request) Failing after 5m46s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-10-02 13:56:47 +08:00
kdletters
b8a659c12f
Direct 回合兜底收口同时写项目侧脱敏诊断
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
TurnReservation 兜底收口时除应用日志外,再写一份 .agent/runtime/errors 脱敏诊断
诊断正文带 threadId 与 turnToken,便于与账本、运行日志对账
2026-10-02 13:54:50 +08:00
suzmii
8433334af5
合并 master 最新变更
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m35s
Project CI / Frontend tests (pull_request) Successful in 2m16s
Project CI / Repository checks (pull_request) Failing after 18s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m34s
Project CI / Native shell tests (pull_request) Successful in 6m45s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 14m9s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 14m23s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-10-02 13:52:07 +08:00
kdletters
a6428228d1
Direct 回合 panic 转成可诊断的分类失败
...
Project CI / AI game creator shell Rust smoke (push) Failing after 2m4s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 2m4s
Project CI / AI game creator shell Rust crates (push) Successful in 2m3s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m17s
Project CI / Backend tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
dispatch 层用 AssertUnwindSafe/catch_unwind 接住回合体 panic,不再落到 HostDropped 兜底
panic 负载转成直接可读文本并写进脱敏诊断与应用日志,终态改为分类失败
补齐 futures::FutureExt 导入
2026-10-02 13:51:52 +08:00
k88936
27f7375b51
拒绝桥合成事件带上promise
...
- unhandledRejectionBridge:合成事件优先用 PromiseRejectionEvent(jsdom 没这个构造器时退回普通 Event),再把 reason / promise 都挂成实例访问器,jsdom 分支下 promise 也可读
- 判定调整为读 reason 或 promise 任一个都算 window 侧接手(原来只认 reason)
- 补一条用例:事件带 promise 且读 promise 也算被消费
2026-10-02 13:48:26 +08:00
kdletters
fb9e25c90d
合并 origin/master:公开模型目录协议字段测试
Project CI / AI game creator shell Rust crates (push) Successful in 1m52s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m55s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m58s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell 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
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
2026-10-02 13:48:08 +08:00
kdletters
a59d068c1d
给 Direct 回合的静默早退补上诊断留痕
...
TurnReservation 兜底收口时写应用日志,并用 thread::panicking 区分 panic 与 future 被丢弃/取消
新增 Direct 回合 panic hook:task-local 携带回合身份,panic 时记录位置与负载
两处均 cfg(not(test)),不污染用例与本机 AppData
2026-10-02 13:47:36 +08:00
k88936
a512786996
读body失败保留已确认状态码
...
- auth_session:拿到 status 后 response.text() 失败不再一律报网络不可达;非 2xx 按状态码走既有分类(serverMessage 为 None,如 503 → authServiceUnavailable),只有 2xx 响应没收完才归传输层故障
- 抽出 classify_unreadable_body 并补单测(503 / 会话 401 / 400 / 2xx)
- 决策记录追加该口径
2026-10-02 13:47:03 +08:00
k88936
836f8a7348
手机号登录401归phoneCodeLoginRejected
...
- auth_session:/api/auth/phone/login 的 401(只来自「用户不存在」)改判为 phoneCodeLoginRejected{serverMessage},不再冒充「验证码错误或过期」
- auth_error:退役顶层变体 smsCodeRejected(唯一产生点就是这个错配的 401 分支)
- 前端三个 catch 删掉 smsCodeRejected 分支;phoneCodeLoginRejected 文案统一为「验证码登录失败:<服务端原文>」,冒号改全角
- ts-rs 重新生成 ClientAuthError 联合;carrier 用例同步删掉 smsCodeRejected
- 文档:ADR + decision-log 记录 401 归属与 smsCodeRejected 退役
2026-10-02 13:35:40 +08:00
lhk229
aad5a0bcef
修复公开模型目录测试遗漏协议字段
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m43s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m34s
Project CI / Backend tests (push) Successful in 5m23s
Project CI / Native shell tests (push) Successful in 6m24s
Project CI / Frontend tests (push) Successful in 2m21s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m57s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 11m21s
Project CI / AI game creator shell web tests (push) Successful in 1m54s
Project CI / Repository checks (push) Successful in 2m23s
补齐公开模型目录完整 JSON 断言中的 protocol 字段。
同步后端契约文档中的回归验证说明。
验证模型目录定向测试、编码检查、文档索引和 Rust 格式检查通过。
2026-10-02 13:29:08 +08:00
kdletters
e3b4127440
统一 AGC 失败兜底口径:兜底只用专用错误码与专用文案
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m52s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m47s
Project CI / Backend tests (push) Failing after 4m0s
Project CI / Frontend tests (push) Successful in 1m59s
Project CI / Native shell tests (push) Successful in 6m19s
Project CI / Repository checks (push) Successful in 2m43s
Project CI / AI game creator shell web tests (push) Successful in 1m47s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 11m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 11m19s
新增 homeCreationFailure 统一创建失败出口:宿主机器码 / IPC 失联 / 专用未分类兜底三种文案,宿主原始文本改为 appendWebviewLog 落 application.log 而不上屏
首页创建失败不再无条件覆盖成「创建未完成,请重试」,也不再写死「首条需求投递失败」指认某一步;工作区已建好时保留该事实并提供「已创建的工作区」恢复说法
宿主预检按真实原因分流浏览器验证错误码(browser-missing / launch-timeout / launch-failed / cancelled / browser-cleanup-failed / browser-environment-failed / evidence-failed / input-invalid / page-check-failed),未识别落回专用 web-preflight-unclassified
依赖准备收据保留宿主返回的真实失败码,不再一律写成 web-scaffold-preparation-failed
直连回合失败分类器 else 改为专用 runtime-unclassified,并补 sidecar-turn-timeout / sidecar-launch-failed / app-server-launch-failed / claude-code-failed 四个有证据的具体码
Codex CLI 与 Claude sidecar 的进程启动失败保留真实 OS 错误,不再报成「不支持 app-server 子命令」或「Node runtime 不可用」
更新检查新增结果型入口 checkForAppUpdateResult,「关于」页检查失败显示真实原因而不是「当前已是最新版本」
首页无码预检兜底文案不再写「请检查 Node/npm 或浏览器」这类未证实的候选原因
同步 pitfalls 六条与团队约定:兜底码/兜底文案规则、五项修复的现象根因处理验证、测试夹具编译修复记录
验证:vitest homeCreationFailure/homeWebPreflight/appUpdate/appSurface 共 215 passed;cargo test environment_check:: 19 passed、agent::runtime_error:: 5 passed、direct_failure_diagnostic 4 passed、tests::configuration:: 45 passed;cargo fmt --check、tsc --noEmit、npm run typecheck、check:encoding、git diff --check 通过
2026-10-02 13:07:00 +08:00
kdletters
563f6a8e04
修复 AGC Rust 测试夹具未跟随执行器与协议正交拆分
...
补 select_game_creator_model 第 4 个协议参数(传 None,按执行器推导协议)
补四处 GameCreatorAppConfig 字面量的 selected_model_protocol: None
目的:HEAD 上测试模块编译失败(9 个错误),挡住预检与运行时分类的定向验证
验证:cargo test --features=cocos-editor-execute,unity-editor-execute,godot-editor-execute --bin genarrative-ai-game-creator-shell tests::configuration:: 45 passed
2026-10-02 13:07:00 +08:00
k88936
b0f9eb2292
拒绝桥交回原监听器时对齐Node的this
...
- unhandledRejectionBridge:交回原监听器改用 Reflect.apply 把 this 绑成 process,和 Node EventEmitter 一致,依赖 this 的原监听器不再拿到 undefined
- 补一条用例钉住 this 语义
2026-10-02 13:06:56 +08:00
k88936
3d4c42901c
认证超时用例断言精确到一条拒绝
...
- auth.suite:启动超时用例先断言恰好捕获 1 条拒绝,再断言它是含「检查登录状态超时」的 Error
- 原来的 some(...) 只看有没有命中,无关 unhandledrejection 会被这段捕获静默吞掉、测不出回归
2026-10-02 13:06:30 +08:00
k88936
74e7209c31
生成绑定JSDoc去掉Rust语法
...
- auth_error:服务端原文缺失说明从 None 改成 TS 读得懂的 null(PasswordLoginRejected / SendCodeRejected / PhoneCodeLoginRejected)
- auth_error:AuthResponseInvalid.server_message 的说明从 AuthResponseInvalidReason::ServerRejected 改成线上字面量 serverRejected
- ts-rs 重新生成 4 份载荷绑定
2026-10-02 13:05:40 +08:00
lhk229
98cb0d237e
修复固定试玩误判祖先指针穿透样式(#547) ( #583 )
...
Project CI / AI game creator shell Rust crates (push) Failing after 1m30s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m8s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m18s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 3m38s
Project CI / Frontend tests (push) Successful in 2m58s
Project CI / Backend tests (push) Failing after 4m26s
Project CI / Repository checks (push) Successful in 3m4s
Project CI / AI game creator shell web tests (push) Successful in 1m47s
Project CI / Native shell tests (push) Successful in 6m21s
关联 #547。
固定试玩将任意祖先的 `pointer-events:none` 累计为按钮禁用,导致覆盖层穿透、按钮恢复 `auto` 的合法布局在实际点击前被拒绝。现在只检查目标控件自身的计算样式;未覆盖的继承 `none` 仍拒绝,原有命中、可见性、disabled、aria-disabled、inert 和真实输入校验保持有效。
复用现有浏览器夹具,补充双视口穿透布局回归及九种不可用控件拒绝场景,并同步场景指纹快照、技术方案和共享排障记录。
验证:
- 修复前真实 Chrome 在 desktop/mobile 均复现 start 被误判 disabled;修复后合法布局完整通过开始、主要操作和重开,sequence 从 0 到 3、最终 phase 为 ready。
- 浏览器模块单元测试:27 passed;14 个真实浏览器测试默认 ignored,其中本次显式执行并通过 4 个相关用例(新增 2 个,已有 2 个)。新增拒绝用例在双视口覆盖继承 none、目标 none、目标 none/子元素 auto、disabled、禁用 fieldset、aria-disabled、inert、隐藏和遮挡。
- rustfmt、编码检查、文档索引检查、git diff --check 通过;完成独立代码审查。
验证边界:未运行全量测试;当前工作区未找到现场游戏导出,尚未复核该游戏开始流程。generic 的 mobile 结果为移动视口下的真实鼠标输入,未进行真实触摸验收。
Reviewed-on: #583
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-10-02 12:56:55 +08:00
k88936
e4b15d3bbf
Merge remote-tracking branch 'origin/master' into fix/wrong-report
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m25s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 53s
Project CI / Backend tests (pull_request) Failing after 21s
Project CI / Frontend tests (pull_request) Successful in 2m25s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m45s
Project CI / Native shell tests (pull_request) Successful in 5m48s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m34s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 11m18s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
2026-10-02 12:19:13 +08:00
k88936
e1e8725dab
AuthClientInitFailed带构建失败原始错误
...
- 错误枚举:authClientInitFailed 从 unit 变体改成带 detail 的载荷变体,导出 AuthClientInitFailed 绑定
- auth_session:build_client 失败时把 reqwest 原始错误放进 detail,不再丢弃
- carrier 用例按带载荷变体 as 取 detail
- 前端维持固定文案,不把 detail 贴到界面上
2026-10-02 12:12:50 +08:00
k88936
7128e865c0
本机IO失败载荷恢复detail
...
- 错误枚举:clientSessionPersistFailed / runtimeSessionInstallFailed 恢复成带 detail 的载荷变体,重新导出两个 ts-rs 绑定文件
- auth_session:IO 失败把原始 error 放进 detail 的同时,仍记一行本地日志
- 前端维持不展示 detail,继续用本操作的固定文案(登录检查 / 发码 / 登录)
- carrier 用例改回对两个载荷变体 as 取 detail,钉住"带载荷变体先取具名类型"
2026-10-02 12:08:51 +08:00
kdletters
6bf57c1e51
AGC 把执行器与线协议拆成正交维度
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 3m1s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m37s
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m6s
Project CI / Frontend tests (push) Successful in 2m52s
Project CI / Backend tests (push) Failing after 4m14s
Project CI / Repository checks (push) Successful in 3m42s
Project CI / AI game creator shell web tests (push) Successful in 2m5s
Project CI / Native shell tests (push) Successful in 8m2s
AgcAgentMode 回退为仅 codex/cc,只表示执行器;新增 AgcModelProtocol 表示线协议
协议取值 openai_responses/openai_chat/anthropic,与执行器组合封闭并在校验时失败关闭
存量目录缺 protocol 时按执行器推导;历史误写的 agentMode=anthropic 读取时归一为 cc
后台 AGC 模型页拆成 Agent 模式与协议两列,新增协议下拉与对应测试
公开目录 /api/llm/models 与后台 DTO 同时下发解析后的 protocol
客户端持久化 selectedModelProtocol,选模型时按执行器推导兜底协议并校验组合
Codex wire_api 按协议在 responses/chat 间切换,不再硬编码 responses
同步 appSurface 与模型选择测试断言,补 protocol 字段
同步模型别名文档与后端架构文档的正交维度说明
2026-10-02 12:08:26 +08:00
k88936
d518bb2ceb
文档:系统类失败载荷保留原始错误
...
- 命令错误结构化 ADR:本机 IO / 网络客户端构建失败的原始 detail 留在载荷(调用方分流与报告诊断用),界面只用固定文案,路径交给报告侧 sanitize
- 认证失败 JS 侧载体 ADR:带 detail 的本机失败是例外,不把原始错误文本贴到界面上
- 决策记录:追加 2026-10-02 口径,取代上一轮"本机 IO 失败不进载荷"
2026-10-02 12:06:03 +08:00
k88936
53e2889bbd
本机IO失败去掉detail载荷
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m20s
Project CI / Backend tests (pull_request) Failing after 21s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m10s
Project CI / Frontend tests (pull_request) Successful in 2m27s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m50s
Project CI / Native shell tests (pull_request) Successful in 6m25s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
- Rust 错误枚举:clientSessionPersistFailed / runtimeSessionInstallFailed 改无字段变体,删除会带 AppData 路径的 payload 结构体
- auth_session:本机凭据/运行时会话 IO 失败改成写本地日志后返回无字段变体,不再把原始 error 放进载荷
- 前端:登录检查/发码/登录三处 catch 去掉 as 取 detail,改用本操作的固定文案
- ts-rs 重新生成 ClientAuthError 联合,删除两个已不存在的载荷绑定文件
- 补充 auth_error 用例:两个变体序列化为仅含 type 的无字段形状
2026-10-02 11:57:31 +08:00
k88936
8edbab9f3e
文档:本机IO失败去掉detail载荷
...
- 命令错误结构化 ADR:本机凭据/运行时会话 IO 失败不再把原始错误文本放进载荷,原始 error 只写本地日志
- 认证失败 JS 侧载体 ADR 与决策记录同步去掉 detail 口径,并追加 2026-10-02 的变体改无字段决定
2026-10-02 11:51:43 +08:00
k88936
b54b3794f6
登录路由的429归业务变体
...
- map_auth_failure 的 429 改为按路由判定:SendCode 仍是 SmsCodeThrottled,PhoneLogin 映射为 PhoneCodeLoginRejected(用户可修正、不进错误池),其余路由才落 UnexpectedRejection
- 补用例覆盖登录 429 与其它路由 429;map_auth_failure 注释同步新口径
2026-10-02 11:50:43 +08:00
k88936
f8c32e6346
文档:登录路由429归业务变体
...
- 命令错误结构化 ADR 补 429 按路由判定的口径:发码是频控、登录是验证码次数耗尽、其余才落未识别拒绝
- 决策记录同步追加 2026-10-02 的 429 归类
2026-10-02 11:50:34 +08:00
k88936
5f76e3bb53
AGC认证未识别拒绝补可见提示
...
- AuthenticatedClient 三个 catch 的 default 分支在 rethrow 前补一行泛化提示,界面不再停在无解释状态
- 上报判据用例同步断言 Tauri 意外拒绝形状也会显示这条提示
2026-10-02 11:48:15 +08:00
k88936
7528ba0116
unhandledrejection桥接保留once语义
...
- 用 rawListeners 记录原始监听器,拆卸时把 once 包装按 process.once 装回,普通监听器仍按 process.on 装回
- 未被 window 消费时调用 once 包装包裹的原函数,避免脱离 emitter 直调包装
- 注释记录安装期间新增监听器排在恢复监听器之前的既有边界
2026-10-02 11:35:13 +08:00
k88936
da4645f55e
认证页面用例抽出unhandledrejection捕获helper
...
- 两处重复的桥接安装、reason 收集与拆卸收成 captureWindowRejections()
- 顺带修正系统变体用例里过期的载体 message 注释(现在 message 是载荷序列化)
2026-10-02 11:33:53 +08:00
k88936
7278023cb7
认证页面用例统一用throw表达拒绝
...
- 业务变体用例的 Promise.reject 改为 throw,与相邻用例风格一致、不与已 resolved 混淆
2026-10-02 11:31:50 +08:00
k88936
325ebda7eb
认证页面用例恢复重试按钮可用态断言
...
- 启动超时用例改回 getByRole + disabled=false,避免渲染但禁用的重试按钮也能通过
2026-10-02 11:31:34 +08:00
k88936
0803e035b5
错误上报取文案改if-else链
...
- errorReporting 的嵌套三元改为 if/else 赋值,行为不变,只提高可读性
2026-10-02 11:30:14 +08:00
kdletters
fbd30d7c66
修复 UI 编辑器循环游标与复制态被延迟 effect 覆盖
...
Project CI / AI game creator shell Rust smoke (push) Successful in 2m15s
Project CI / AI game creator shell Rust crates (push) Successful in 1m23s
Project CI / Backend tests (push) Successful in 4m34s
Project CI / Native shell tests (push) Successful in 6m35s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m49s
Project CI / Frontend tests (push) Successful in 2m43s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 11m59s
Project CI / AI game creator shell web tests (push) Successful in 1m46s
Project CI / Repository checks (push) Successful in 2m25s
界面树循环游标改为渲染期换算有效游标,不再用被动 effect 事后重置
复制路径按钮把复制态绑定到具体路径,去掉延迟重置的 effect
复制态断言改为等待异步落盘,避免同步断言抢跑
新增 useUiTreeNodeCycle 循环顺序与界面树替换重置用例
2026-10-02 11:17:37 +08:00
k88936
55d8667c07
AGC认证载体序列化用例对齐
...
- 载体用例断言 message 为载荷序列化;Tauri 缺陷抛真 Error 时是 {},但上报仍优先用其自身 message/stack
- 上报用例的 message 断言改为序列化结果,并新增真 Error 优先分支用例
2026-10-02 11:09:46 +08:00
k88936
7673edb04e
AGC认证失败载体把载荷序列化进message
...
- ClientAuthErrorWrapper 构造时 super(JSON.stringify(error)):结构化拒绝在上报事件里是变体名与载荷,不再落成未知客户端错误
- errorReporting 注释同步:载体 message 已带载荷,Tauri 缺陷抛出的真 Error 仍优先用其自身 message/stack
2026-10-02 11:09:41 +08:00
k88936
62f1a80e87
文档:认证失败载体把载荷序列化进message
...
- 更新 JS 侧载体 ADR:ClientAuthErrorWrapper 构造时把整份载荷 JSON.stringify 进 Error.message,上报事件拿到变体名与载荷,事件指纹按变体区分
- 记录 Tauri 缺陷抛真 Error 时序列化只有 {},但上报链路对真 Error 优先用其自身 message/stack
- 同步决策记录与技术方案的载体口径,不再写 Error.message 留空
2026-10-02 11:07:03 +08:00
suzmii
aad8f15a3c
修复 dev:all 端口段与前端就绪判定
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m2s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / Backend tests (pull_request) Failing after 20s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / Repository checks (pull_request) Failing after 17s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m35s
Project CI / Native shell tests (pull_request) Successful in 6m31s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 11m5s
将 CLI port-range 同步到 AGC 端口解析环境。
将主站和后台 HTTP readiness 限制为 2xx。
补充真实 HTTP 状态码与端口段传递测试。
2026-10-02 11:03:11 +08:00
k88936
3d68d56524
内存里的工具观察保持原文,落盘那份按存储口径脱敏
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m10s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Frontend tests (pull_request) Successful in 2m16s
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 5m57s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m10s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 8m6s
Project CI / Native shell tests (pull_request) Successful in 6m36s
- `build_game_creator_agent_runtime_pending_tool_action` 在嵌入 observations 前按存储口径脱敏:pending ledger 受 fail-closed 门禁保护,工具原文里的项目绝对路径会让整次持久化被拒
- `runtime_driver/main_loop`、`runtime_state` 的过期续跑、`runtime_actions/parallel_read` 不再把脱敏结果写回内存观察向量,prompt 继续用原文
- `parallel_read` 的前缀核对仍用脱敏投影比较,只是不再覆盖内存向量
- 持久化侧(context bundle / pending action)自己脱敏,内存与落盘两份从此解耦
2026-10-02 10:56:32 +08:00
lhk229
f2127a6489
修复 AGC 文件列举被无关临时锁删除打断(#552) ( #580 )
...
Project CI / AI game creator shell Rust smoke (push) Successful in 2m6s
Project CI / AI game creator shell Rust crates (push) Successful in 1m10s
Project CI / Backend tests (push) Successful in 4m15s
Project CI / Native shell tests (push) Successful in 6m43s
Project CI / Frontend tests (push) Successful in 2m54s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 11m2s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 10m12s
Project CI / AI game creator shell web tests (push) Successful in 2m23s
Project CI / Repository checks (push) Successful in 3m14s
列举 `assets` 时,原实现先递归扫描整个项目,再过滤范围;`.agent/project.lock` 在枚举与读取元数据之间正常删除会使整次查询失败。
现在在读取条目元数据前裁剪目标范围与受保护路径,只遍历目标子树及必要祖先。枚举后消失的文件/目录仅跳过 `NotFound`,其余权限与 IO 错误仍返回;进入排队目录前复核符号链接与 Windows 重解析点。通用文件树保留原有可见范围,Agent 结果继续过滤、排序后分页。
通过通道协调真实项目写锁释放,确定性覆盖全量扫描的 TOCTOU 及定向 `assets` 扫描;另覆盖目录消失/类型变化、权限错误、私有路径、链接、引擎目录和分页。同步更新 AGC 契约与共享排障记录。
验证:
- 15 条定向 Rust 测试通过:`cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell -- --test-threads=1 project_file_listing generic_file_tools local_project_file_commands external_listing`
- 生产 Rust 检查通过:`cargo check --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell`
- `npm run check:encoding`、`npm run check:doc-index`、`git diff --check` 通过。
- 本地验证在 Linux 执行,未运行 Windows 专属运行时验证;分页仍是实时观察,不承诺跨请求快照一致性。
Fixes #552
Reviewed-on: #580
2026-10-02 10:55:47 +08:00
lhk229
89d40c0836
修复素材导入与资源提交的项目锁争用 ( #581 )
...
Project CI / AI game creator shell Rust lane 1/2 (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
Project CI / AI game creator shell Rust lane 2/2 (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
修复 #551:本地素材导入、账户素材提交和资源编辑提交在 conversation.write 短暂持有项目锁时会立即失败。现在复用既有约 10 秒有界等待,并将同步取锁与提交放入阻塞线程池,等待期间异步 runtime 继续响应。
- 项目锁先于账号身份租约,等待后重新验证账号身份、导入权限及原 WritePermit;保留跨进程互斥、权限分类和持锁方诊断。
- 资源资产/版本提交和已完成结果清理保留 operation/project guard,取消异步等待不会提前释放仍在执行的提交互斥。超时保留原 operation、幂等键与 staging,恢复不重复远端生成。
- Runtime 素材导入与 UI workflow 切图登记也接入阻塞池,避免共享导入函数新增等待后阻塞这些调用方。同步更新 AGC 行为规范及共享记忆。
验证:163 项 Rust 定向测试通过,覆盖导入与资源编辑、Direct bridge、Runtime 导入、UI workflow、项目锁恢复和失败分类。包含同进程争用、单线程 runtime 心跳、并行 manifest/revision、账号切换、许可取消、完整超时后原 operation 恢复及取消后的 guard 生命周期。
```sh
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell -- resource_editor:: commands::agent_asset_import_tests agent::direct_tool_bridge::tests tests::project_lock_recovery project::write_lock agent::runtime_tools::context::asset_import_input_tests ui_editor::agent_tools --test-threads=1
npm run check:rustfmt
npm run check:encoding
npm run check:doc-index
git diff --check
```
全部上述检查通过。Linux 本地未执行 Windows 专属删除挂起行为测试;未调用真实付费 Provider,远端链路使用既有 mock 测试和已下载账本恢复测试验证。没有 API/DTO/schema 变更或数据迁移。
Closes #551
Reviewed-on: #581
Co-authored-by: lhk <ink29535@proton.me >
Co-committed-by: lhk <ink29535@proton.me >
2026-10-02 10:55:29 +08:00
suzmii
eac118e4f5
合并 master 最新变更
...
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-10-02 10:35:08 +08:00
k88936
f58c71bd68
文档:AGC认证失败ADR不再写死 catch 数量
...
- 「后果与边界」改为「必须同时改所有 catch 的 switch」,避免数量写法随实现漂移
2026-10-02 03:02:32 +08:00
k88936
ff5949b98d
修复AGC登录与发码系统失败残留忙碌文案
...
- handleSendCode/handleLoginSubmit 的 catch 在抛出前把系统失败原因写进 loginStatus,离开「正在发送验证码」「正在登录」
- 系统变体按类型化载荷拼出提示文案后再原样抛出,恢复改动前「显示 + 上报」的可见行为
- 本地运行时超时等非载体错误同样先写 loginStatus 再抛出
- appSurface 用例改为断言系统变体文案落到登录页且仍经 unhandledrejection 抛出
2026-10-02 02:56:08 +08:00
k88936
2954f7b769
修复AGC启动检查失败不给可见反馈的回退
...
- hydrateAuth 的 catch 恢复改动前的可见反馈:登录状态检查超时等非载体错误先写 authCheckError/loginStatus 再原样抛出
- 系统变体先按类型化载荷(reason/status/detail/serverMessage)拼出提示文案,再原样抛出交全局 unhandledrejection 上报
- appSurface 用例改为断言启动超时后登录页显示原因并保留「重试登录状态检查」
2026-10-02 02:56:00 +08:00
k88936
79a5707a18
文档:AGC认证失败ADR修正为不改变用户可见行为
...
- 删除「后果与边界」里不再准确的「用户可见行为」一行(系统失败不是只进错误池)
- 该节改为说明系统变体先按载荷原始事实给一行可见反馈,再原样抛出
2026-10-02 02:55:47 +08:00
k88936
ba7c4a9bbf
AGC认证错误用例对齐类别变体与类型化reason
...
- 载体用例:authNetworkFailure 与 authResponseInvalid 改为内层 reason switch,覆盖全部 reason 与 default expectNever
- 网关、上报、页面用例改用 authNetworkFailure 等新变体名与类型化 reason 载荷
- 新增可枚举细分不读服务端文案的分流断言
2026-10-02 02:42:36 +08:00
k88936
e955d79984
AGC认证失败按类别变体与类型化reason分流
...
- AuthenticatedClient 三个 catch 把 authNetworkFailure/authResponseInvalid 收成一个分支,服务地址 7 种失败与响应契约 5 种破损改为在 payload.reason 上二次 switch
- 每个带载荷分支先 as 取自己的具名类型,reason/default 用 expectNever 让漏接 reason 也在编译期失败
- 系统变体仍原样 throw,经全局 unhandledrejection 交给错误池
2026-10-02 02:42:30 +08:00
k88936
d5516d43fa
AGC认证错误重新生成ts-rs绑定
...
- ClientAuthError 联合收敛为类别变体 + 类型化 reason,无字段变体仍是 { type }
- 新增 AuthNetworkFailure/AuthNetworkReason/AuthResponseInvalid/AuthResponseInvalidReason/ServerAddressRejected/ServerAddressReason
- 删除拍平变体后不再生成的 AuthResponseServerRejected 载荷文件
2026-10-02 02:42:26 +08:00
k88936
254f2767cc
AGC认证错误改为顶层类别加类型化reason
...
- auth_error.rs:顶层从拍平变体收敛为类别变体,服务地址/网络失败/响应契约破损各占一个变体,不再拆成 7+2+5 个
- auth_error.rs:新增 ServerAddressReason、AuthNetworkReason、AuthResponseInvalidReason 三个 ts-rs 枚举,payload 改持类型化 reason
- auth_session.rs:校验与映射改用 server_address_rejected / response_invalid 收口,按类型化 reason 构造
2026-10-02 02:42:17 +08:00
k88936
9fe692ba87
文档:AGC认证错误改为顶层类别加类型化reason
...
- 更新 AGC 命令错误结构化 ADR:顶层只放调用方要分流的类别,可枚举细分收进类型化枚举 reason 字段,不再拆成几十个顶层变体、也不用字符串
- 更新 AGC 认证失败 JS 侧载体 ADR:带载荷分支先 as 取具名类型,reason 是枚举时再 switch(payload.reason),两处 default 都用 expectNever
- 同步错误报告技术方案、README 索引、决策记录与踩坑的拍平变体口径
2026-10-02 02:42:15 +08:00
k88936
3d6eade206
AGC认证错误用例对齐拍平变体
...
- 载体用例覆盖变体全集:无字段变体取固定文案,带载荷变体 as 后读 serverMessage/status/detail
- 上报判据新增 passwordLoginRejected:服务端 400 原文只展示、不写错误池
- 网关用例改用 authNetworkUnreachable / serverAddressNotHttps 等新变体名
2026-10-02 02:25:09 +08:00
k88936
aed2bb9c34
AGC认证失败按新变体分流并补上下文
...
- AuthenticatedClient 的三个 catch 列全新变体:无字段变体直接给固定文案,带载荷变体先 as 再读 serverMessage
- 系统变体逐个列出后原样抛出,default 仍用 expectNever 把漏接变体卡在编译期
- clientAuth/ClientAuthErrorWrapper 注释去掉对 message 字段的假设
2026-10-02 02:25:02 +08:00
k88936
3ecee09431
AGC认证错误重新生成 ts-rs 绑定
...
- 新增有字段变体的载荷文件 PasswordLoginRejected/SendCodeRejected/PhoneCodeLoginRejected/AuthResponseServerRejected
- 删除改成无字段变体后不再生成的孤立载荷文件
- ClientAuthError 联合同步为 { type } 与 { type } & 载荷类型
2026-10-02 02:24:51 +08:00
k88936
d549b3cb16
AGC认证错误改为拍平变体并只传原始事实
...
- auth_error.rs:变体拍平到同一层,无字段变体序列化为 { type },载荷变体只装 serverMessage/status/detail
- 载荷结构改名并去掉预拼文案:PasswordLoginRejected/SendCodeRejected/PhoneCodeLoginRejected 持 Option serverMessage
- auth_session.rs:服务地址校验 7 种失败各成一个变体,网络拆成超时/不可达,响应契约拆成 5 种变体
- map_auth_failure/response_data/request_auth 去掉 fallback 文案参数,只按可判定事实映射
- 定向用例改用新变体名,并对原始载荷做断言
2026-10-02 02:24:39 +08:00
k88936
47392d13b8
文档:AGC认证错误收敛为拍平变体
...
- 更新 AGC 命令错误结构化 ADR:变体拍平不嵌套,无字段变体生成 { type },有字段变体生成 { type } & 载荷类型
- 记录本地前置校验拿不到细分事实时不编字段,phoneNumberInvalid 保持无字段
- 更新 AGC 认证失败 JS 侧载体 ADR:无字段分支用固定文案,带载荷分支先 as 再读 serverMessage/status/detail
- 更新错误报告技术方案与 README 索引,同步拍平变体与去 reason 口径
- 同步决策记录与踩坑:ts-rs 只写不删,变体改成无字段时要手动清孤立载荷文件
2026-10-02 02:23:51 +08:00
k88936
92467dd53e
Merge pull request 'Fix/修复测试用例竞态等问题' ( #571 ) from fix/test-concurrent-problem into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m45s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m27s
Project CI / Backend tests (push) Successful in 3m59s
Project CI / Frontend tests (push) Successful in 2m7s
Project CI / Native shell tests (push) Successful in 6m6s
Project CI / AI game creator shell web tests (push) Successful in 1m41s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 10m20s
Project CI / Repository checks (push) Successful in 2m31s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m42s
Reviewed-on: #571
2026-10-02 01:51:59 +08:00
k88936
e1628b2ccd
AGC 认证失败改用 ClientAuthErrorWrapper 薄包装
...
- clientActionError.ts 改名 clientAuthErrorWrapper.ts,类名同步为 ClientAuthErrorWrapper,error 字段标注 ClientAuthError
- invokeClientAuth 改为薄包装:不读变体 message、不塞 context,只把拒绝原样装成 JS Error
- 三处 catch 改用 error.error 分流,每个 case 继续用 as 取具名载荷
- captureClientError 从 error 字段取原始错误;上下文只认显式入参
- 载体、host、错误上报与 appSurface 用例同步新载体与新默认文案
2026-10-02 01:42:17 +08:00
k88936
3a4ccb1861
文档:决策记录影响范围同步载体文件新名
...
- 第一轮影响范围里的 clientActionError.ts 改为 clientAuthErrorWrapper.ts
2026-10-02 01:40:28 +08:00
k88936
2a51f0b98c
文档:认证失败载体类改名 ClientAuthErrorWrapper
...
- ADR、README、技术方案、决策记录与排障记忆统一新类名
- auth_session.rs 注释同步
2026-10-02 01:40:14 +08:00
k88936
45774f1c02
文档:认证失败载体的 error 字段标注 ClientAuthError 类型
...
- ADR、技术方案、决策记录同步 error 字段的显式类型标注
2026-10-02 01:37:37 +08:00
k88936
716ea9d410
Merge remote-tracking branch 'origin/master' into fix/test-concurrent-problem
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m41s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m14s
Project CI / Backend tests (pull_request) Successful in 4m28s
Project CI / Native shell tests (pull_request) Successful in 6m4s
Project CI / Frontend tests (pull_request) Successful in 2m13s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m53s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m23s
Project CI / Repository checks (pull_request) Successful in 2m24s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m57s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-10-02 01:35:26 +08:00
k88936
218fba95b0
文档:认证失败载体收敛为只持 error 字段的薄包装
...
- ADR 认证失败载体:ClientActionError 只保留 error 字段,不读 message、不塞 context、message 留空
- 技术方案与决策记录同步载体形状与 error.error 分流
- 排障记忆:判据改为全局 unhandledrejection 显式上下文
2026-10-02 01:35:10 +08:00
k88936
3fbcef8203
AGC 认证续期注释同步新错误载体
...
- auth_session.rs 注释改为 invokeClientAuth 装进 ClientActionError,cause 是判别联合
2026-10-02 01:27:31 +08:00
k88936
e43efeb269
AGC 认证失败去掉手写载体类,直接用 ClientActionError + 生成判别联合
...
- 删除 clientAuthFailure.ts,invokeClientAuth 改为把拒绝装进已有 ClientActionError,cause 即 ts-rs 生成的 ClientAuthError
- 三处 catch 改为 instanceof ClientActionError 后取 error.cause 分流,每个 case 用 as 取具名载荷
- 认证载体用例改名 clientAuthErrorCarrier.test.ts,断言改为 ClientActionError.cause
- clientAuthHost 用例与 auth_session.rs 注释同步新载体
2026-10-02 01:27:18 +08:00
k88936
19c75e8167
文档:认证失败 JS 侧载体改用已有 ClientActionError
...
- ADR 认证失败载体:删除手写 ClientAuthFailure 类,拒绝装进 ClientActionError,cause 即判别联合
- ADR 命令错误结构化:同步第 3 节对 JS 载体的描述
- 技术方案:认证命令封装形态改为 ClientActionError + cause
- 决策记录:影响范围去掉 clientAuthFailure.ts
- 排障记忆:载体、判据与关联文件路径同步
2026-10-02 01:22:55 +08:00
k88936
b0d7d403d0
AGC 认证命令包装去掉运行时形状嗅探
...
- invokeClientAuth 不再检查 type 是否存在:认证命令的拒绝按 ts-rs 映射直接转成 ClientAuthFailure
- requireInvoke 提前到 try 之外:认证桥未安装是我们自己的失败关闭错误,保持原样抛出
- Error.message 仍只取拒绝值里的可展示字符串,只做展示,不参与分流
- 测试:新增"桥未安装保持原样抛出"与"Tauri 意外形状也按映射包装"两条判据;authFailureReporting 的意外形状用例改为断言 source=auth + 命令名
2026-10-02 01:12:25 +08:00
k88936
35f10c2051
文档:认证错误包装改为信任 ts-rs 映射,不做运行时形状嗅探
...
- ADR §2 去掉 type 存在性检查:Rust 与 TS 同包发布、形状由 ts-rs 保证,异常形状属 Tauri/Rust 缺陷,仍由 switch 的 default 抛出去上报
- requireInvoke 移到 try 之外,认证桥未安装的错误保持原样抛出
- Error.message 只从拒绝值读可展示字符串,不是分流判据
- ADR §1 记录保留 19 个具名载荷类型的理由:它们是每个分支 as 的目标;内联 struct 变体虽能少 19 个文件,但分支就拿不到可 as 的具名类型
2026-10-02 01:11:01 +08:00
k88936
f9c8c429be
补 Rust 用例钉住发码 401/403 属系统变体
...
- map_auth_failure 对 AuthRoute::SendCode 的 401/403 仍归 UnexpectedRejection(不是权威失效、不是业务输入)
- 依据:api-server 的 send_phone_code 只返回 400 与 5xx,401/403 出现即为契约异常,应带上文进上报池
2026-10-01 21:17:11 +08:00
k88936
06a4f9346f
unhandledrejection 测试桥只吞被 window 侧消费的拒绝
...
- 合成事件的 reason 改为访问器:有监听方读过就算有人接手;没人读则交回安装前的监听器(含 vitest 失败上报)
- 新增 unhandledRejectionBridge.test.ts 钉住两条路径:无人接手会交回、window 读过则不再交回
- 避免桥把无关的未处理拒绝静默吞掉
2026-10-01 21:15:03 +08:00
k88936
08b8d0d167
修正启动检查系统变体用例的负向断言竞态
...
- 先等系统变体经 unhandledrejection 抛出(并校验抛出物带 Rust 原文),再断言登录页没有该文案
- 原写法在首个 waitFor tick 就因 queryByText 返回 null 而通过,没真正验证拒绝落地后的文案
2026-10-01 21:12:45 +08:00
lhk229
ded9f13f02
Fix Issue 549 ( #573 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m16s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m39s
Project CI / Backend tests (push) Successful in 5m39s
Project CI / Native shell tests (push) Successful in 6m3s
Project CI / Frontend tests (push) Successful in 1m49s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m50s
Project CI / Repository checks (push) Successful in 2m15s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 6m18s
账户素材超过 500 项时,AGC 曾在筛选和分页前直接拒绝整个素材库,导致查询、预览和指定 ID 导入不可用。本 PR 移除账户素材总量及账户分页 offset=500 的客户端限制,允许大库继续使用现有客户端筛选分页。
Closes #549
## 实现范围
- 移除账户素材库原始条数超过 500 的拒绝,以及 MCP schema、桥接、Runtime 执行层和原生函数 strict schema 的账户分页 offset 上限。
- 保留单页最多 100 项、导入批次数量与下载体积、媒体类型、账号归属、权限及会话校验。项目文件查询的 offset 上限和绑定项目画布资源的数量上限保持原有契约。
- 账户素材 UI 列表、预览及指定 ID 导入同步恢复可用。
- 修复真实账户导入时,在持有身份租约期间重复读取会话互斥锁造成的自锁;写入前校验和覆盖写入过程的身份租约继续保留。
- 同步工具说明、技术方案与排障记录。服务端仍返回全库,传输和解析开销另由 #574 跟进,不作为本 PR 的验收前置条件。
## 验收
以下已完成项表示本地自动化与代码核查通过,不代表线上真实账号验收。
- [x] 覆盖 500/501 项素材库解析;503 张静态图片及 1 项不支持媒体的模拟素材库可正常工作。
- [x] MCP 查询支持 limit=1、folderId、query 和 offset>500;nextOffset、末页、越界空页及默认每页 100 项符合现有契约。
- [x] 直接调用 Runtime 执行层时 offset=501 可查询;MCP schema 与参数校验一致,仍拒绝负数、非整数 offset 和 limit>100。这项不覆盖 Runtime 下发给模型的原生函数 schema。
- [x] Runtime 原生函数 asset.library.list 的 strict schema 允许 offset>500;实际下发的完整函数参数已验证 offset=501/600/10000、null 可用,负数/非整数偏移及超界页长拒绝。补丁已提交并推送:41e2cc0b5。
- [x] 共用读取链路的 UI 素材列表和预览在大库场景可用。
- [x] 指定有效 assetId 完成实际下载、本地文件写入及 manifest/revision 更新;重复导入保持幂等。
- [x] 模拟素材库中的不存在 ID 和不支持媒体被拒绝,且不改变 manifest;返回 Agent 的当前页元数据不泄露媒体地址、对象键或凭据。
- [x] 会话退出、账号切换、凭据刷新、身份租约和取消写入相关定向测试通过。
- [x] 工具说明、技术方案和共享排障文档已同步;项目文件与画布资源原有独立边界已核对保留。
- [ ] 真实平台账号联调:超过 500 项素材时查询、预览和导入,以及实际删除、跨账号、无权限素材的拒绝行为。
## 验证证据
- 账户素材、导入、参数校验、项目文件、取消写入与平台会话定向 Rust 测试:33 项通过。
- runtime_prompt_bundle_build:17 项通过;prompt_source_boundaries:6 项通过。合计 56 项通过。
- Rust 格式检查、npm run check:encoding、npm run check:doc-index、git diff --check 通过。
- 以上 Rust 测试在快进 master 前运行;快进至 44f415d05 后已核对本次代码及工具文本与已测试版本一致,并再次通过编码、文档索引、差异检查和提交时 Rust 格式检查。
- 未运行全量测试,未做真实线上账号或付费操作验证。
初次修复提交:697f421e570606d0519f952a0a5689b5f639f902;原生函数 schema 审查补丁:41e2cc0b57b7f9f5faf06546c1f6108e88380ac3(已推送)。
- 审查补丁验证:24 项定向 Rust 测试通过,覆盖全部 agent_native_tools 测试、大库查询/导入和修正后的旧流式结果测试;格式、编码、文档索引、差异检查、提交及推送检查通过。本轮未重复全量测试,未做真实模型或线上账号调用。
Reviewed-on: #573
2026-10-01 20:55:28 +08:00
k88936
ce54c729e8
AGC 认证命令失败改为 JS 侧载体并只按变体分流
...
- 新增 ClientAuthFailure:payload 为 ts-rs 判别联合,context 固定 source=auth + 命令名,cause 为原始拒绝值
- clientAuth 的六个命令统一走 invokeClientAuth:结构化拒绝转成 ClientAuthFailure,非结构化拒绝原样抛出,不兜底文案
- 删除 clientAuthError.ts 的形状读取与 getClientAuthErrorMessage 文案回落层
- AuthenticatedClient 的两个 catch 内联 19 个变体的 switch:业务 / 会话变体原样展示载荷 message,系统变体原样抛出经 unhandledrejection 入池,default: expectNever 保证漏接变体编译失败
- hydrateAuth 失败先离开 loading 态;系统变体不再伪装成 unavailable 投影
- ClientAuthState 收窄为 authenticated / unauthenticated,ClientAuthRefreshResult 收窄为 refreshed / unauthenticated / stale
- platformSession 续期只保留 refreshed / unauthenticated / stale 三条路径
- check-config 的 App 调用扫描登记 invokeClientAuth,继续静态证明命令名可达
- 测试:新增 clientAuthFailure 载体与编译期穷尽用例、jsdom unhandledrejection 桥;删除 clientAuthError.test.ts;clientAuthHost / authFailureReporting / authSurface 跟改新口径
- 共享记忆记录 check-config 扫描形态新增 invokeClientAuth
2026-10-01 20:49:48 +08:00
k88936
c940bf502c
文档:修正认证 ADR 对系统变体分支的描述
...
- 说明系统变体不读载荷、只原样抛出,但变体名必须逐个列出以让 default: expectNever 成立
- 业务 / 会话变体仍要求每个 case 用 as 取具名载荷类型
2026-10-01 20:49:43 +08:00
k88936
0798bf5219
AGC 认证续期失败不再降级成字符串
...
- refresh_session_inner 的非权威失败直接返回 Err(ClientAuthError),不再折成 error_message 字符串
- ClientAuthStateView 删除 error_message 字段,状态收窄为 authenticated / unauthenticated
- ClientAuthRefreshView 删除 error_message 与 failed 状态,authoritative 只在未登录时为 true
- read_client_auth_state 把续期失败原样透传给命令出口,不再投影出 unavailable 第三态
2026-10-01 20:35:47 +08:00
k88936
478b9c9891
文档先行:AGC 认证失败的 JS 侧载体与抛出时机
...
- 新增 ADR:认证命令统一经 invokeClientAuth 把结构化拒绝转成 ClientAuthFailure(payload 判别联合);判定只写在 catch 子句里,系统变体原样抛出经 unhandledrejection 入池,default: expectNever 编译期挡住漏接变体
- 修订【ADR】AGC命令错误结构化与错误报告口径 §3 与后果:撤销"未识别变体上调是故意的",改为编译期穷尽
- 技术方案同步认证命令的封装形态与两个 ADR 链接
- decision-log / pitfalls 记录第二轮口径:删除形状读取与文案回落层、Rust 失败不再降级成字符串
- docs/README.md 登记新 ADR
2026-10-01 20:33:47 +08:00
kdletters
d74b2c003c
Merge pull request '修正 H5 HostBridge 调用链门禁:邀请弹层下沉共享组件后的文件清单' ( #579 ) from codex/profile-invite-gate-fix into master
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m5s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
2026-10-01 20:31:57 +08:00
kdletters
350e9f51b7
修正 H5 HostBridge 调用链门禁:邀请弹层下沉共享组件后的文件清单
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m25s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m6s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 7m50s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 7m11s
Project CI / Backend tests (pull_request) Successful in 5m23s
Project CI / Frontend tests (pull_request) Successful in 2m26s
Project CI / Repository checks (pull_request) Successful in 3m6s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m50s
Project CI / Native shell tests (pull_request) Successful in 6m44s
- check-native-shells 的 H5 HostBridge 调用链必需文件清单移除已删除的 src/components/platform-entry/PlatformProfileReferralModal.tsx
- 补入改为在宿主侧消费宿主剪贴板能力的 src/components/platform-entry/PlatformEntryActiveFlowShell.tsx
- 本地 npm run check:native-shells:contract 通过(含 production-shell-dev-scaffold-scan)
2026-10-01 20:25:38 +08:00
kdletters
22f67d185b
Merge pull request '我的页签恢复邀请好友入口,AGC 客户端账号菜单接入邀请码与玩家社区' ( #578 ) from codex/profile-invite-entry into master
Project CI / AI game creator shell Rust smoke (push) Successful in 2m22s
Project CI / AI game creator shell Rust crates (push) Successful in 1m39s
Project CI / Native shell tests (push) Failing after 55s
Project CI / Frontend tests (push) Successful in 1m44s
Project CI / Backend tests (push) Successful in 4m45s
Project CI / Repository checks (push) Successful in 2m22s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
2026-10-01 20:08:37 +08:00
k88936
6cfc69abf5
Merge remote-tracking branch 'origin/master' into fix/test-concurrent-problem
...
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m57s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m48s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m15s
Project CI / Backend tests (pull_request) Failing after 18s
Project CI / Repository checks (pull_request) Failing after 22s
Project CI / Frontend tests (pull_request) Successful in 2m31s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m24s
Project CI / Native shell tests (pull_request) Successful in 6m53s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-10-01 19:50:10 +08:00
kdletters
41b882e1fe
我的页签恢复邀请好友入口,AGC 客户端账号菜单接入邀请码与玩家社区
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m50s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m26s
Project CI / Native shell tests (pull_request) Failing after 36s
Project CI / Repository checks (pull_request) Failing after 26s
Project CI / Frontend tests (pull_request) Successful in 2m35s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m25s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 11m17s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 12m41s
- 主站「我的」页签常用功能宫格补回「邀请好友」,邀请码与邀请链接拆成两个复制动作
- 邀请弹层下沉到 packages/shared/src/components/PlatformProfileReferralModal,主站与客户端共用一份实现
- 邀请奖励说明不再写死次数与金额,每日上限由 todayInviterRewardCount 与 todayInviterRewardRemaining 推导
- 奖励说明从面板正文移入右上角帮助按钮,鼠标悬浮展开、触屏与键盘点击开合
- 帮助按钮复用平台 .platform-icon-button 配色,说明气泡复用 PlatformStatusMessage 的 warning token
- AGC 客户端账号菜单新增「邀请码」与「玩家社区」两项,弹层标题与菜单入口文案保持一致
- 新增 Tauri 命令 read_profile_referral_invite_center,用登录 origin 补全 inviteLinkPath 后交给渲染层
- 客户端邀请中心按登录账号隔离,切号重置并作废在飞响应,不本地另存邀请码
- 新命令登记进 apps/ai-game-creator-shell/scripts/check-config.mjs 的 native-only 白名单门禁
- 微信群与 QQ 群二维码从 media/social-media-group 迁入共享组件 assets
- 移除已下线文件的 Tailwind @source 与客户端专用弹层样式,原地删除旧邀请弹层实现
- 同步决策记录与产品基线文档中邀请奖励、跨端复用与文案口径
2026-10-01 19:46:18 +08:00
kdletters
1aa457c36b
Merge branch 'master' of https://git.genarrative.world/git/GenarrativeAI/Genarrative
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust lane 1/2 (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
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
2026-10-01 19:45:43 +08:00
lhk229
3193182665
修复 AGC 测试编译并保留 CI 编译诊断
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
删除 Claude 流式结果测试中已失效的回合参数
分片运行器使用 Cargo 渲染诊断并保留 JSON 产物发现
新增编译失败诊断回归测试并更新排障文档
2026-10-01 11:42:48 +00:00
kdletters
fee0dc1fa4
合并 origin/master:网站游戏评分与评价
2026-10-01 19:41:30 +08:00
kdletters
d1f789cc10
AGC 支持 Anthropic 独立网关路由与后台协议选项
...
新增平台 Anthropic 网关路由 /api/llm/anthropic/{*path},复用账号 Router 凭据边界
OpenAI 侧规范路径改为 /api/llm/v1/responses 与 /api/llm/v1/chat/completions,旧路径保留兼容
baseUrl 不再携带路由与版本段,统一由协议自己拼 v1/<op>
cc 执行器改走平台网关,ANTHROPIC_AUTH_TOKEN 复用平台会话,不再直连 Router
后台模型目录 agentMode 增加 anthropic,管理页与客户端契约同步
补齐三条路由埋点与静态段白名单,新增三条回归测试
同步后端架构文档、模型别名文档与排障记忆
2026-10-01 19:41:08 +08:00
suzmii
5dfd231496
回退 dev:all Tauri 时序控制
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Backend tests (pull_request) Failing after 23s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m22s
Project CI / Frontend tests (pull_request) Successful in 2m8s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m42s
Project CI / Native shell tests (pull_request) Successful in 5m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 12m2s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 11m31s
保留无引号启动摘要表。
移除 Tauri 输出捕获、就绪标记和额外等待逻辑。
恢复启动器原有输出与启动时序说明。
2026-10-01 19:28:43 +08:00
k88936
348d20bf55
AGC 壳后台 Runtime 用例的等待预算覆盖分片 2 的假红面
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m14s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m40s
Project CI / Backend tests (pull_request) Failing after 44s
Project CI / Frontend tests (pull_request) Successful in 2m2s
Project CI / Repository checks (pull_request) Failing after 17s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m40s
Project CI / Native shell tests (pull_request) Successful in 5m47s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m52s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 12m22s
- tests/mod.rs 已有的 MOCK_PROVIDER_REQUEST_TIMEOUT / AGENT_RUNTIME_TERMINAL_WAIT_BUDGET 现向 runtime_actions 子模块导出(support.rs)
- project_tools.rs:background_agent_runtime_can_create_checkpoint_before_file_write 的三处 mock provider 等待由 2s/2s/10s 改为统一预算
- action_execution.rs:background_agent_runtime_can_schedule_ready_manifest_tasks 的两处等待同上
- tool_planning.rs:background_agent_runtime_loads_same_agent_continuity_through_tool_observation 的五处等待同上
- task_lifecycle.rs:background_agent_runtime_can_cancel_active_task_and_retry_it 的取消收口轮询由固定 50×20ms 改为终态预算,并同步放宽首条请求等待
- 依据:origin/master 的 run 3143 与 run 3141 在同一 lane(分片 2/4)分别红了这四条用例,现场全是 2 秒预算或多轮轮询被 CI 分片并发放大,链路本身正常
- 验证:本机 4 条用例串行通过;两 lane 并发下连跑 6 次全绿;分片 1/2/3/4 全量 ok
2026-10-01 19:22:08 +08:00
k88936
7224bd0dc0
直连工具结果与计划回灌不再脱敏,只做长度收口
...
- `direct_validation`:浏览器/命令验证回执里的 error/output 原文返回给 Codex
- `direct_patch`:补丁工具输出原文返回
- `direct_delivery`:计划步文案、`contract.scope`、未过验收的缺口清单原文返回
- `direct_runtime`:浏览器事实证据(diagnostic / console.error / exception / fatal request)、陶泥儿整包完成告警、可返修错误的反馈提示原文返回
- `provider_request_builders`:回灌给模型的 `thinkingSummary` / `fallbackResponse` 原文返回
- 两个测试改为断言原文进入 prompt(`browser_diagnostics_go_verbatim_to_the_model_before_same_thread_repair`、`completed_regeneration_replays_the_exact_lost_response`)
- 去掉因不再脱敏而失去用途的 `root` 形参:`update_plan`、`bound_for_completed_workflow_at` / `validate_completed_workflow_result_at`
- 审计/诊断侧照旧脱敏:`record_direct_codex_failure`、`DirectTurnTerminal::failed`、`persist_agent_runtime_error`、`codex_app_server` 日志
2026-10-01 19:21:57 +08:00
lhk229
b60aea4e71
实现网站游戏评分与评价 ( #561 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 2m7s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m55s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 3m23s
Project CI / Frontend tests (push) Successful in 3m3s
Project CI / Repository checks (push) Successful in 3m42s
Project CI / AI game creator shell web tests (push) Successful in 2m3s
Project CI / Backend tests (push) Successful in 6m19s
Project CI / Native shell tests (push) Successful in 8m7s
公开游戏详情页新增评分与评价:登录用户可提交并修改自己对每款游戏的唯一一条 1–10 分评价,评论可空且最多 4000 个 Unicode 码点;游客可分页浏览评价并查看平均分与评分人数。
- 新增私有评价表及共享 DTO/API,事务内校验游戏公开可见性、保证唯一性,并计算分页与全量评分统计;下架或封禁后关闭读写,重新公开及更新版本保留评价。
- 详情页支持编辑预填、取消、提交期间冻结输入、失败保留草稿,以及保存、翻页和账号/游戏切换时的旧响应隔离;复用现有认证与公共组件。
- 同步主规范、里程碑、实施计划、生成绑定、表目录和验收脚本。不扩展 AGC、外部 API、评论审核或评分缓存。
验证:
- 本轮审查复跑前端定向测试 40 项、评价领域测试 2 项,均通过。
- 网站 typecheck、Rust/TypeScript DTO 对齐、SpacetimeDB schema、文档索引、编码与 diff 检查通过。
- 实施文档另记录本地隔离数据库/API 49 项及桌面/移动视口浏览器 smoke 通过;本轮审查未重跑这些运行时验收,也未运行完整测试套件。
发布说明:新增 SpacetimeDB 表,部署时需同步 module 与 API。尚未部署 dev/production,待用户验收。
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/561
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-10-01 19:19:58 +08:00
suzmii
76eadc692c
Merge remote-tracking branch 'origin/feat/dev-all' into feat/dev-all
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m0s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / Frontend tests (pull_request) Successful in 2m34s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m14s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m26s
Project CI / Native shell tests (pull_request) Successful in 6m57s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 12m24s
2026-10-01 19:06:03 +08:00
suzmii
c911a338f9
修正 dev:all 摘要表输出时序
...
改用无引号纯文本表格显示启动服务和实际地址。
等待 Tauri Running DevCommand 后再打印摘要。
补充启动器输出转发、回归测试和开发运维说明。
2026-10-01 19:03:52 +08:00
k88936
b0ec155401
委派回执给模型的明细不再脱敏,审计记录自己脱敏
...
- `build_static_delegate_result_for_child_at` / `publish_game_creator_agent_delegate_result` 的结果明细只做长度上限
- 回执任务文案不再 `sanitize_prompt_context`,父子 run 之间传的是原文
- `record_game_creator_agent_delegate_result_success` 在写 `resultPreview` 审计时自行脱敏
- 抑制态回执任务的 `task` / `terminalDetail` 与 `agent.schedule_ready` 观察改为长度收口
2026-10-01 18:55:04 +08:00
k88936
f8ba46fa4f
Runtime 工具观察只做长度收口,脱敏只留给审计写入
...
- 各工具构造 `AgentRuntimeToolObservation` 时不再调用 `sanitize_agent_runtime_text` / `redact_agent_runtime_project_paths`,改为只做长度上限的 `truncate_agent_runtime_text`
- 保留 `append_agent_db_record` / 事件 / `append_patchset_audit` 等审计写入处的脱敏
- `agent.action_history` 读取的账本仍按写入侧口径脱敏,读取路径不再二次脱敏
- 委派(`agent.delegate` / `agent.spawn_isolated`)与 `agent.schedule_ready` 的结果明细原样进回执
- 去掉因参数失去用途的 `root` 形参:`canvas_durable_result_reconciliation_observation`、`rejected`、`error_observation`、`error_observation_with_revision_advance`
2026-10-01 18:54:11 +08:00
k88936
cf6ed72f34
工具观察原样进 prompt:去掉按 token 预算的脱敏与截断
...
- 删除 `bound_observation_for_prompt` 与 `truncate_to_estimated_tokens`
- `prepare_game_creator_agent_runtime_prompt_history` 去掉 `tool_output_token_limit` 参数,观察原样进 prompt
- 调用处同步去掉该参数:`provider_request_builders`、`tests/runtime_state`
- 删除只验证旧有界行为的 `tool_output_is_bounded_by_token_limit` 测试
- 脱敏仍只发生在写审计/持久化时(`sanitize_game_creator_agent_runtime_context_observations_for_storage`)
2026-10-01 18:53:40 +08:00
kdletters
44f415d057
合并 origin/master(58 个提交):生产 Nginx 模板收敛与记录同步
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 2m23s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m15s
Project CI / AI game creator shell Rust crates (push) Successful in 1m14s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m35s
Project CI / Frontend tests (push) Successful in 2m53s
Project CI / Repository checks (push) Successful in 3m36s
Project CI / Backend tests (push) Successful in 4m26s
Project CI / AI game creator shell web tests (push) Successful in 2m23s
Project CI / Native shell tests (push) Successful in 7m27s
- 合并 origin/master 58 个提交,解决 2 处文件冲突:决策记录与踩坑记录均按两侧新增条目并存处理
- claude_code_cli.rs 自动合并通过:本机 Claude sidecar 诊断改动与上游 sidecar 归位并存,无重复函数定义、无冲突残留
- 保留本地未推送提交:AGC Claude 执行认证与错误诊断、Claude sidecar 超时诊断
- 本次推送主体内容不变:生产 Nginx 模板收敛、host-only snippet 与运维/踩坑/决策文档同步
2026-10-01 18:38:56 +08:00
kdletters
ac4148d24b
生产 Nginx 收敛到仓库模板并同步生产机 host-only 覆盖
...
- 主模板 http 段新增 genarrative_gallery_rps 限流 zone,供公开作品架与自定义世界画廊读取接口使用
- 新增 deploy/nginx/snippets/genarrative-host-extras.conf:内部工具页、公开画廊读取 location、主站官网首页入口
- 主模板改为 include host-only snippet,线上 vhost 以仓库模板为唯一来源
- Server-Provision 安装、备份并回滚 genarrative-host-extras.conf,补充 require_path 与临时文件清理
- 生产运维护栏新增 host-only snippet 安装断言
- 运维文档补充主站 SPA 白名单与 host-only 覆盖小节及生效配置核对命令
- 踩坑记录新增线上手工维护漂移条目:/profile 刷新 404 与 client_max_body_size 停在 64m
- 决策记录新增生产 vhost 单一来源、host-only 独立成 snippet、退役路由不做显式 404 的长期口径
2026-10-01 18:37:46 +08:00
k88936
214055e319
给模型的工具结果不再脱敏或截断,脱敏只留在诊断侧
...
- bridge_tool_failure 原样回传 typed 错误的 message,去掉 redact_agent_runtime_error
- compose_direct_tool_outcome 只在写诊断时按 ToolFailure::redact_limit 脱敏截断,模型面用原文
- 编辑器执行与 Cocos 执行的成功回执去掉脱敏/路径替换,report 原样进工具结果
- 账号素材导入的 failures、生成/抠图/美术准备的 warnings 不再脱敏
- 删除随之失效的 bridge_safe_warning_messages 及其断言脱敏的测试
2026-10-01 18:31:21 +08:00
k88936
7db769c5bb
并发追加指令用例不再钉死败者错误文案
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m29s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m58s
Project CI / Frontend tests (pull_request) Successful in 2m11s
Project CI / Repository checks (pull_request) Failing after 17s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m44s
Project CI / Native shell tests (pull_request) Successful in 5m43s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 11m51s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 10m47s
- runtime_protocol/steering.rs:concurrent_distinct_frozen_root_steers_create_only_one_replacement 的败者断言改为「根 Run 已被接管」类错误收口,覆盖三种真实交错(替代 Run 已写回 session 状态 / 仅终止旧根 Run / 状态切换中途)
- 该用例要守的结构不变量保持不变:恰好一次成功、一次失败、只产生一个替代 Run
- 该断言此前在分片里约三成概率因文案不同而假红,而三种文案都由生产侧抢占顺序决定,不是用例要测的结构语义
2026-10-01 18:28:54 +08:00
k88936
6af95b8a22
回退「工具回执进 message 前先按各自预算做有界序列化」
...
- 撤销 004889f27:给模型的工具结果不做任何截断,报告原文完整回给模型
- 撤销 tool/error.rs 的 bounded_report_text 及 browser_playtest / cocos_execute / environment_check / editor_execute 四处调用
- 截断与脱敏只保留在诊断/审计侧(persist_agent_runtime_error)
2026-10-01 18:28:26 +08:00
suzmii
9fd2c6ecd7
Merge branch 'master' into feat/dev-all
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m7s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m42s
Project CI / Backend tests (pull_request) Successful in 3m45s
Project CI / Frontend tests (pull_request) Successful in 1m57s
Project CI / Native shell tests (pull_request) Successful in 5m55s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m15s
Project CI / Repository checks (pull_request) Successful in 2m38s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 11m22s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m5s
2026-10-01 18:26:06 +08:00
suzmii
e9b3e2b531
补充 dev:all 启动摘要表
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
在 AGC Vite marker 就绪后打印全部服务的实际地址表。
补充 AGC 就绪等待、摘要构造测试和开发运维文档。
2026-10-01 18:22:24 +08:00
k88936
ac0b69875f
删除已退役 Supervisor 的持久进程协作治理用例
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- tests/command_runtime.rs:删除 `process_session_supervisor_collaboration_blocks_stdin_but_allows_poll_and_terminate_in_isolated_registry`——Supervisor 已于 2026-09-21 永久退役(项目对话收敛为 DirectProject 与 Design Agent,前端零引用),这条用例不再有现役调用方
- tests/mod.rs:同批删除它唯一的夹具 `process_session_supervisor_collaboration_governance_fixture`(256 行)
- 保留 `process_session_agent_runtime_*_isolated_registry` 两条兄弟用例:它们走的是未退役的 `code-prototype` 路径,且仍是通用 process_session 收口的守门人
- 该用例也是分片偶发假红的来源:慢容器上 terminate 收口按设计翻成 needs-reconciliation(finalize_live_process_session 的 2 秒排水窗口),退役面不值得继续钉
- 验证:用例总数 3154 → 3153;两条兄弟用例通过;无新增编译告警;check:encoding、git diff --check 通过
2026-10-01 18:17:30 +08:00
k88936
f435d48399
AGC 认证错误改为每个变体一个具名载荷类型
...
- auth_error.rs:枚举改为 newtype 变体,每个变体持有一个同名 `#[ts(export)]` 载荷结构体
- auth_session.rs:41 处构造点改为 `ClientAuthError::X(X { .. })` 并导入载荷类型
- 重新生成 services/generated:ClientAuthError.ts 变成 `{ type } & 具名类型`,新增 19 个载荷类型文件
- tests/clientAuthError.test.ts:新增编译期用例,switch (error.type) 分支里错误窄化成具名载荷类型
2026-10-01 18:08:18 +08:00
k88936
2f51e043b7
文档先行:AGC 认证错误的 TS 形状改为每个变体一个具名载荷类型
...
- ADR §1 增加"每个变体一个具名载荷结构体 + ts-rs 生成 `{ type } & X`"的决策与代价
- ADR §3 说明 switch 分支里错误已窄化成具名类型
- 技术方案同步命令错误形状描述
- decision-log / pitfalls 记录形状约定:不手写这层类型、不再包派生分类与提示文案函数
2026-10-01 18:08:00 +08:00
k88936
31fbadf260
交付类工具的裸 cause 补工具前缀
...
- delivery_status 的 StatusUnavailable 文案改为「交付状态读取失败:{cause}」
- register_delivery_contract 的 ContractRejected 文案改为「登记交付合同失败:{cause}」
- update_plan 的 PlanRejected 文案改为「更新计划失败:{cause}」
- 这些 cause 是 direct_delivery 的内部机器码(如 delivery-status-worker-exited),原来单独回给模型时没有任何工具上下文
2026-10-01 17:56:33 +08:00
k88936
004889f273
工具回执进 message 前先按各自预算做有界序列化
...
- tool/error.rs 新增 bounded_report_text:把 JSON 载荷按给定预算先截断再拼进文案
- browser_playtest / cocos_execute / environment_check / editor_execute 的 report 变体改用该 helper,预算取变体自己的 redact_limit
- 最终可见的头部内容不变,只是不再把整份大载荷搬进多趟脱敏;超长报告被截掉的尾部本来也不会出现在最终文案里
2026-10-01 17:56:16 +08:00
k88936
b561db9249
删除认证失败上报的派生分类层,改为调用方按具体变体分流
...
- 删除 clientAuthErrorKind / clientAuthErrorNotice,clientAuthError.ts 只留 isClientAuthError 形状读取
- 删除 resolveClientAuthFailure 与 ClientAuthFailureResolution,AuthenticatedClient 直接 switch 具体变体名
- 同步重写相关单测与 ADR 第 3 节前端分流描述
2026-10-01 17:55:54 +08:00
k88936
7eb62b09e2
编辑器执行 code 的三种校验失败拆成独立变体
...
- EditorExecuteError 的 CodeInvalid 拆成 CodeEmpty / CodeContainsNul / CodeTooLong{got_bytes,max_bytes},每个 case 一个变体
- editor_execute/error.rs 新增 EDITOR_CODE_MAX_BYTES 常量,direct_tool_bridge 的校验改用该常量并分别返回对应变体
- 模型能从文案看出具体违反了哪条规则,不再只看到一句话笼统覆盖三种失败
2026-10-01 17:55:41 +08:00
k88936
bab88d62e0
includeSequenceFrames 类型错回显改用 not_text_repr
...
- direct_tool_bridge 里 IncludeSequenceFramesNotBoolean.got 由 value.to_string() 换成 not_text_repr(value)
- 与该工具其它「字段给了错误类型」的变体同一口径:回显按 120 字符截断
2026-10-01 17:55:04 +08:00
JenkenB
97617608ba
修正 Web 预检错误分流
Project CI / AI game creator shell Rust smoke (push) Successful in 1m46s
Project CI / AI game creator shell Rust crates (push) Successful in 1m10s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / Backend tests (push) Successful in 4m33s
Project CI / Native shell tests (push) Successful in 6m15s
Project CI / Frontend tests (push) Successful in 2m3s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 10m31s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 11m48s
Project CI / AI game creator shell web tests (push) Successful in 2m3s
Project CI / Repository checks (push) Successful in 3m31s
2026-10-01 17:54:53 +08:00
k88936
47b6454696
web_search 的 maxResults 类型错回显改用 not_text_repr
...
- direct_tool_bridge 里 MaxResultsNotInteger.got 由 value.to_string() 换成 not_text_repr(value)
- 与 query 的 QueryNotText 一致:不受信回显按 120 字符截断,不再把整段值带进错误消息与序列化 typed error
2026-10-01 17:54:51 +08:00
k88936
75e3152412
agc_generate_image 的 kind 不合法时回显截到 120 字符
...
- KindUnsupported 的 got 原来把整段 kind 原样带进文案与序列化错误;这条路径没有长度校验,与上方 KindNotText 的 not_text_repr 口径也不一致
- 改用 bounded_echo(kind),与其它不受信回显同一上限;仍保留开头的原值,模型能看出自己传了什么
验证:cargo fmt --check 通过
2026-10-01 17:52:38 +08:00
k88936
0354fd353c
assetIds/localPaths 与 sliceCount 的类型错回显改用 not_text_repr
...
- ImportAccountAssetsField::not_string_array 与 GenerateImageError::SliceCountInvalid 原来把整个值 to_string() 后嵌进错误,MCP 预检又原样回给调用方,超大数组会整份被反射
- 改用共享的 not_text_repr(120 字符截断),与其它「给错类型」的回显同一口径
验证:cargo fmt --check 通过
2026-10-01 17:52:06 +08:00
k88936
6a4efa15ee
未登记的客户端工具名在构造处截到 120 字符
...
- dispatch 兜底分支构造 UnknownClientToolRejection 时改用 bounded_echo,客户端给的超长工具名不再原样进 to_user_msg 与序列化诊断
- 该名字在构造处就有界,后续 clone/序列化都受同一上限约束
验证:cargo check --bin genarrative-ai-game-creator-shell --tests 通过;cargo fmt --check 通过
2026-10-01 17:51:44 +08:00
k88936
7d51504e09
不认识的字段名回显限长到 120 字符,回显口径收进 tool/error.rs
...
- ToolArgumentsRejection::check 构造 UnknownField 时改成 bounded_echo(field),超长键名不再整份进文案与诊断
- 有界回显的常量与 bounded_echo 从 arguments.rs 移到公共 tool/error.rs(BOUNDED_ECHO_MAX_CHARS=120),not_text_repr 变成它的 JSON 值封装,实现仍只有一份
验证:cargo check --bin genarrative-ai-game-creator-shell --tests 通过;cargo fmt --check 通过
2026-10-01 17:50:57 +08:00
k88936
0e60ecb769
共享入参解析器补「入参必须是对象」的契约断言与文档
...
- optional_text/required_text/page 加 debug_assert!(arguments.is_object()):非对象时 Value::get 恒为 None,会把 NotObject 静默判成「没给字段」或默认分页
- 文档写明调用方必须先跑 ToolArgumentsRejection::check;所有现有调用点已满足,release 行为不变
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: agent::direct_tools_mcp:: 72 passed / 0 failed;cargo fmt --check 通过
2026-10-01 17:49:25 +08:00
k88936
b7d77053ea
分页 offset/limit 的类型错回显改用 not_text_repr,与其它字段同一限长口径
...
- arguments::page 的 OffsetNotInteger / LimitNotInteger 原来用 value.to_string() 无界回显,超大对象/字符串会整份进错误消息与诊断
- 改用共享的 not_text_repr(120 字符截断),与 optional_text 及内联判类型的字段一致
验证:cargo fmt --check 通过
2026-10-01 17:47:23 +08:00
k88936
c2a27aed2a
新增认证失败上报判据的端到端测试
...
- 新测试 mock 模块级 @tauri-apps/api/core invoke,从而能观察 report_client_error 是否被调用
- 覆盖:手机号或密码错误、发码限流不写错误池;网络不可达带 auth/login 上报一次
- 已用变异验证:把分流改成一律上报时,两条业务用例会失败
2026-10-01 17:41:45 +08:00
suzmii
888ab83f39
Merge remote-tracking branch 'origin/feat/dev-all' into feat/dev-all
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m17s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m47s
Project CI / Backend tests (pull_request) Successful in 4m38s
Project CI / Frontend tests (pull_request) Successful in 2m23s
Project CI / Native shell tests (pull_request) Successful in 7m0s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 11m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 11m26s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m22s
Project CI / Repository checks (pull_request) Successful in 3m21s
2026-10-01 17:37:30 +08:00
suzmii
a8097a4364
修复 Windows dev:all 启动 npm 报错
...
改用 Windows shell 启动 npm.cmd,避免 spawn EINVAL。
补充 Windows 启动参数回归测试。
记录端口漂移与 AGC 依赖缺失的实际 smoke 结果。
2026-10-01 17:34:29 +08:00
k88936
ae3811a8aa
部分导入按失败回的口径落注释:不再按 write_permit 区分 isError
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m35s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m19s
Project CI / Backend tests (pull_request) Failing after 18s
Project CI / Frontend tests (pull_request) Successful in 2m0s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m48s
Project CI / Native shell tests (pull_request) Successful in 5m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 10m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 11m15s
- bridge_import_account_assets 的 failed/partial 分支补注释,说明 partial 与 failed 一样按失败回是有意为之,口径已确认
- 只加注释,不改行为:report 仍在消息里,Direct 回合与外部 MCP 客户端的 isError 保持一致
2026-10-01 17:16:36 +08:00
k88936
bdd315f12f
AGC 壳 Rust 单测统一 mock provider 请求预算,修掉分片 4 第二次往返超时
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m1s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m37s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Frontend tests (pull_request) Successful in 1m54s
Project CI / Native shell tests (pull_request) Successful in 5m53s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m53s
Project CI / Repository checks (pull_request) Successful in 2m28s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m52s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 11m53s
- tests/mod.rs 新增 MOCK_PROVIDER_REQUEST_TIMEOUT(30 秒),作为「等一条 mock provider 请求到达」的唯一预算
- tests/sessions.rs 的 7 处 recv_timeout 由散落的 2 秒 / 10 秒改为引用该常量,确认「不会有下一个请求」的 200ms 负向断言保持不变
- wait_for_captured_mock_request 的内联 10 秒预算改为引用同一常量
- pitfalls 记录该超时是 CI 分片并发放大所致,而非产品缺陷,并附本次复核证据
2026-10-01 17:16:16 +08:00
k88936
a7cc28134d
AGC Rust 分片失败复核改按名单精确匹配,覆盖 bin 目标用例名
...
- run-rust-shell-test-shards.mjs:extractFailingTestNames 改为按本片名单精确匹配用例名,不再用 `tests::` / `process_session::tests::` 前缀白名单——bin 目标的 `agent::…::tests::…` 原先永远进不了复核,偶发假红直接判红
- run-rust-shell-test-shards.mjs:复核也失败时同时保留首次失败现场,不再只留复核那一次
- run-rust-shell-test-shards.test.mjs:新增「命名空间用例名也会进复核」的回归用例
- 验证:node --test apps/ai-game-creator-shell/scripts/run-rust-shell-test-shards.test.mjs 3 项通过
2026-10-01 17:16:16 +08:00
k88936
c177dde5c3
AGC 壳通知计数按线程隔离,修掉跨用例后台广播串台
...
- runtime_driver/entrypoints.rs:测试通知计数从进程级 AtomicU64 改成线程作用域 Cell,只统计本测试线程发出的通知
- runtime_driver/entrypoints.rs:`--test-threads=1` 只串行测试线程,前一个用例放行留下的后台回合仍在宿主 async runtime 工作线程上广播「运行中的项目」通知,不再是断言的取样来源
- thread_manager/mod.rs:同步用例注释,说明计数为何按线程隔离,断言语义(放行 1 / 内容变化 1 / 重复进度 0 / 收口 1)不变
- pitfalls:记录现场、根因、现行口径与验证(修复前 5 次红 3 次,修复后 CI 那一片连跑 18 次全绿)
2026-10-01 17:16:16 +08:00
k88936
ede3457464
edit_image 的派生失败转发内层前缀:补注释说明这是有意为之
...
- ResourceEdit 继续原样转发 CreateOrDeriveResourceError 的「生成或派生资源失败:…」,不改文案
- 注释写清理由:该路径与 agc_create_or_derive_resource 同源,内层文案指向真实失败环节;调用方身份由运行时错误事件的 code(工具名)承担,不靠前缀区分工具
2026-10-01 17:13:44 +08:00
k88936
5b59d50a8c
错误事件 sidecar 的 error 字段递归脱敏,保留 typed 错误的 JSON 形状
...
- persist_agent_runtime_error 落盘前对 error 的字符串叶子走与 message 同一条脱敏流水线(URL/项目路径/绝对路径/密钥),键、类型、数组长度都不动
- 每个叶子有 4000 字符预算(AGENT_RUNTIME_ERROR_MAX_ERROR_TEXT_CHARS),sidecar 本身的 16 KiB 上限不变
- 返回的 AgentRuntimeErrorEvent.error 与落盘内容一致;应用日志那条 error 行原本就已脱敏,行为不变
- 新增回归测试:形状留住(变体名/字段名/数字/布尔),叶子脱敏(<absolute-path>、<redacted-url>、无 token)
- 更新原测试里「typed 错误原样进 sidecar」的注释
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::runtime_error:: 4 passed / 0 failed;cargo fmt --check 通过
2026-10-01 17:12:32 +08:00
suzmii
5c7dd512db
Merge branch 'master' into feat/dev-all
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (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 / 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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
2026-10-01 17:08:24 +08:00
kdletters
bc6f40d6db
完善 Claude sidecar 超时诊断
...
认证缺失时提前返回可操作错误
超时时保留 sidecar stderr 摘要
2026-10-01 17:04:24 +08:00
k88936
6b31d4971b
Merge remote-tracking branch 'origin/master' into fix/wrong-report
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m33s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m12s
Project CI / Backend tests (pull_request) Successful in 3m55s
Project CI / Frontend tests (pull_request) Successful in 2m12s
Project CI / Native shell tests (pull_request) Successful in 6m29s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m27s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 11m29s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m53s
Project CI / Repository checks (pull_request) Successful in 2m34s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-10-01 17:01:52 +08:00
k88936
b51bf03854
Merge pull request 'log DirectProject 审批拒绝原因' ( #566 ) from fix/log-cmd-refuse-reason into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m36s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m15s
Project CI / Backend tests (push) Successful in 4m12s
Project CI / Frontend tests (push) Successful in 1m52s
Project CI / Native shell tests (push) Successful in 6m21s
Project CI / Repository checks (push) Successful in 2m25s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 10m12s
Project CI / AI game creator shell web tests (push) Successful in 1m50s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 12m6s
Reviewed-on: #566
2026-10-01 17:01:21 +08:00
k88936
c7da67ed47
非字符串回显限长补齐到内联判类型的四处(承接上一提交)
...
- arguments.rs 导出 not_text_repr,optional_text 与内联判类型的字段共用同一份截断口径
- 抠图 backgroundMode / screenColor、美术准备 mode、生成图片 kind 这四处原来直接 value.to_string(),现在同样限长到 120 字符
- 测试补一条:art_preparation_mode 的超大数组回显必须带截断标记且长度可控
验证:cargo test --bin genarrative-ai-game-creator-shell -- non_text_field_values 通过;cargo fmt --check 通过
2026-10-01 16:55:29 +08:00
k88936
a22e3448a6
抠图的 backgroundMode / screenColor 类型错改成「必须是字符串」
...
- BackgroundModeNotText、ScreenColorNotText 只在入参不是字符串时触发,文案却回的是取值白名单,模型会以为类型对了、只是值不对
- 改成与本模块其它 *NotText 变体一致的「必须是字符串」;取值白名单仍由 BackgroundModeUnsupported / ScreenColorMalformed 承担
- 文案字面变化:backgroundMode「必须是 complex 或 flat」→「必须是字符串」;screenColor「必须是 auto 或 #RRGGBB」→「必须是字符串」
验证:cargo fmt --all --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check 通过
2026-10-01 16:52:42 +08:00
k88936
97c3fc83c1
非字符串入参的回显截断到 120 字符,不再把整个对象原样带进诊断
...
- arguments::optional_text 里的 not_text 改为传截断后的序列化值:类型错只需要看出「传了什么」
- got 同时出现在 to_user_msg 与序列化 error 里,限长后工具结果与诊断 sidecar 都不会被超大数组/对象灌爆
- 复用 runtime_state::truncate_agent_runtime_text,不新增第二套截断实现
- 测试补一条:超大数组回显必须带截断标记且长度可控
验证:cargo test --bin genarrative-ai-game-creator-shell -- non_text_field_values 通过;cargo fmt --check 通过
2026-10-01 16:51:50 +08:00
k88936
8fefd393b2
Merge remote-tracking branch 'origin/master' into fix/wrong-report
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-10-01 16:51:37 +08:00
k88936
8834f844e6
分页助手加 debug_assert,默认 limit 配到上限之上会在测试期炸出来
...
- arguments::page 增加 debug_assert!(default_limit <= max_limit):默认值本身越界时不再让省略 limit 的请求静默地每次都报 LimitOutOfRange
- 文档注释写清这条调用点契约;三个列表工具当前都满足(50/100 对 100)
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: agent::direct_tools_mcp:: 72 passed / 0 failed;cargo fmt --check 通过
2026-10-01 16:47:32 +08:00
suzmii
c383355301
新增 Web 后台与 AGC 一键开发入口
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m36s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m22s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Successful in 2m9s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (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 lane 2/2 (pull_request) Has been cancelled
新增 dev:all 跨平台编排共享后端、主站、后台与 AGC。
保持 npm run dev、npm run agc 及单模块入口行为不变。
补充参数、状态身份、进程退出收束测试。
同步本地开发运维文档、项目概览和决策记录。
2026-10-01 16:47:16 +08:00
k88936
402233ae9e
去掉续期凭据缺失文案里的 result-unknown 机器前缀
...
- AuthResponseMalformed 变体就是分流键,该前缀没有任何解析方,去掉后用户看到完整中文提示
- 该模块的 result-unknown 前缀只在本条出现,其它 result-unknown 属于 resource_editor 等其它链路
2026-10-01 16:47:12 +08:00
k88936
c5153a7ed2
去掉认证网络失败文案里的 network-error 机器前缀
...
- AUTH_NETWORK_ERROR / AUTH_NETWORK_TIMEOUT 不再带 network-error: 前缀,用户看到的就是完整中文提示
- 前端按 type 分流后不再解析该前缀,没有任何 Rust/TS 消费方依赖它
- auth.suite.ts 与 clientAuthHost.test.ts 的对应 fixture/断言同步更新
2026-10-01 16:46:46 +08:00
k88936
9bdeed13a0
kind 白名单从 DirectResourceGenerationKind::ALL 取,删掉第二份字符串清单
...
- DirectResourceGenerationKind 新增 ALL: [Self; 5],顺序与 parse/as_str 一致
- KindUnsupported 的「只允许 …」改为由 ALL 生成,新增 kind 时不再需要手动同步这句文案
- 文案字面不变:image、video、character-animation、sound-effect、background-music
验证:cargo fmt --all --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check 通过
2026-10-01 16:45:10 +08:00
k88936
698b3ffc90
抽出 presentAuthFailure 收口登录与发码的失败处理
...
- 登录/发码两处 catch 的"分流 + 提示 + 上报"逻辑抽成 presentAuthFailure(error, fallback, action)
- 错误池指纹的 action 由调用点传入,避免新增认证动作时各自拼一套导致指纹漂移
2026-10-01 16:44:36 +08:00
k88936
3c2dc57c57
未登记资源指引抽到 tool/error.rs,生成与抠图共用同一份文案
...
- UNREGISTERED_SOURCE_HINT 从 create_or_derive_resource/error.rs 移到公共 tool/error.rs
- remove_background 的 SourceAssetNotRegistered 改为拼接同一常量,去掉逐字复制的副本
- 两个工具的 SourceAssetNotRegistered 文案字面不变(前缀各自保留「生成或派生资源失败:」/「抠图失败:」)
- remove_background/error.rs 一处 format! 收口改动使该 match 触发 rustfmt 重排,随该文件一并 rustfmt(只此一个文件,其余文件未动)
验证:cargo fmt --all --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml -- --check 通过
2026-10-01 16:44:25 +08:00
k88936
d1e637b9fd
修正 DirectTurnEnqueueFailure 文档对 message 来源的描述
...
- 原文写"一处生成的 Display 文案"不准确:可留痕的宿主/环境失败走 record_direct_codex_failure 的 direct-codex-failure:v2 收口文案
- 文档改为写明两条来源(Display 与脱敏诊断收口文案),并保留"Rust 侧不解析该字符串"的约定
2026-10-01 16:43:03 +08:00
k88936
b202c70271
退役词表:DirectProject 域不再使用"拒单"
...
- direct_turn_error.rs 模块文档把"拒单载荷"改写为"入队失败载荷",与 2026-09-24 ADR 的词表一致
- agentRuntimeModel.test.ts 的用例名与注释同步改成"入队失败"
2026-10-01 16:42:43 +08:00
k88936
5d5aafe251
删除无人消费的认证失败分类字段与 error_kind 映射
...
- 删除 ClientAuthError::error_kind():该分类由本次改动自行发明,全仓无消费方
- 删除 ClientAuthStateView.error_kind 字段及 4 个赋值点(含 read_client_auth_state 里写死的 "network")
- 删除 clientAuth.ts RustAuthStateView 的 errorKind 声明,该字段从未被读取
- 保留行为不变:失败仍以 error_message 投影,前端只看 status/user/apiBaseUrl/errorMessage
2026-10-01 16:39:14 +08:00
k88936
387dba37f3
Merge remote-tracking branch 'origin/master' into fix/log-cmd-refuse-reason
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m5s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m20s
Project CI / Backend tests (pull_request) Successful in 4m42s
Project CI / Native shell tests (pull_request) Successful in 5m49s
Project CI / Frontend tests (pull_request) Successful in 2m1s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m47s
Project CI / Repository checks (pull_request) Successful in 2m26s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 12m7s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 11m44s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-10-01 16:21:11 +08:00
k88936
774f95be94
Merge pull request '退役 DirectProject 工具调用与回合流账本' ( #560 ) from refactor/remove-toolcall.jsonl-legacy into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m35s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m17s
Project CI / Backend tests (push) Successful in 4m8s
Project CI / Frontend tests (push) Successful in 1m49s
Project CI / Native shell tests (push) Successful in 6m21s
Project CI / Repository checks (push) Successful in 2m24s
Project CI / AI game creator shell web tests (push) Successful in 1m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 10m25s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 11m50s
Reviewed-on: #560
2026-10-01 16:13:14 +08:00
k88936
ba79cbcece
Merge remote-tracking branch 'origin/master' into fix/log-cmd-refuse-reason
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m14s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m47s
Project CI / AI game creator shell Rust lane 1/2 (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 lane 2/2 (pull_request) Has been cancelled
2026-10-01 16:10:34 +08:00
k88936
454fbd5e91
Merge remote-tracking branch 'origin/master' into fix/wrong-report
2026-10-01 16:09:14 +08:00
k88936
2220682e58
修正回合绑定失败被说成回包丢失
...
- ResponseDeliveryFailure 新增 interrupt_reason,按 cause 给回合终态说明
- 只有 response-write-failed 保留「执行许可回包丢失」;turn-bind-mismatch 改为说明回合绑定不一致、作用域无法确认
- 新增 response_delivery_failure_texts_match_their_cause 用例钉住两句文案
- 同步更新 shared-memory 决策记录里的收束说明口径
2026-10-01 16:08:00 +08:00
k88936
90d37481a4
注释澄清认证错误形状读取不校验 status 是有意为之
...
- isClientAuthError 文档写明 status 故意不校验:无调用方读它,纳入校验会把可用文案换成兜底文案
- 需要 status 参与判断时先补校验再用
2026-10-01 16:06:12 +08:00
k88936
8b50db9893
修复登录失败分流把空文案的业务变体误判为需上报
...
- resolveClientAuthFailure 改用 clientAuthErrorKind 判分流,不再用 clientAuthErrorNotice 是否为 null 当判据
- 空文案的 input/session 变体改为给兜底提示、不进错误池,保持"预期拒绝永不进池"的约束
- clientAuthErrorNotice 文档注明 null 同时表示 fault 与空文案,不能当分流判据
- clientAuthHost.test.ts 增加空文案业务变体的分流用例
2026-10-01 16:05:47 +08:00
k88936
6a1973b0e3
Merge remote-tracking branch 'origin/master' into feat/typed-tool-error
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m44s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m19s
Project CI / Backend tests (pull_request) Successful in 3m55s
Project CI / Frontend tests (pull_request) Successful in 2m16s
Project CI / Native shell tests (pull_request) Successful in 6m55s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m2s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m28s
Project CI / Repository checks (pull_request) Successful in 2m57s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m18s
# Conflicts:
# apps/ai-game-creator-shell/src-tauri/src/agent/direct_tools_mcp.rs
# docs/project-memory/shared-memory/decision-log.md
2026-10-01 16:04:30 +08:00
k88936
fbfc0b62b9
审批解析移出临界区后再留痕
...
- respond 的 target 解析抽成 resolve_approval_gate,锁内只做状态判定与 ticket 登记
- 新增 ApprovalGateOutcome(Proceed / Cached / Deny),拒绝原因带出临界区,state 释放后才调用 denied 写日志
- 拒绝留痕不再持有 state 做同步文件 I/O(app_log 写入与日志轮转),不再拉长审批临界区
- 15 条拒绝原因分类逐条等价迁移,行为与返回形状不变
2026-10-01 16:04:02 +08:00
k88936
a723d10ce3
回退列表工具 offset 上限的收窄,agc_list_registered_assets 恢复无上限
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 47s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 43s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m17s
Project CI / Repository checks (pull_request) Failing after 28s
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
- 回退 4e5adb2a3:page 的 max_offset 恢复成 Option<usize>,删掉 TOOL_PAGE_MAX_OFFSET 常量
- agc_list_registered_assets 传 None(offset 无上限,与它原本的行为一致),agc_list_project_files / agc_list_account_assets 仍传原来的 Some(500)
- agc_list_registered_assets 的 inputSchema offset 去掉 maximum: 500,恢复到原公开入参范围
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: 41 passed / 0 failed
2026-10-01 15:56:49 +08:00
k88936
75d9e25634
首尾换行回到按空白裁剪,不再当控制字符报错
...
- 回退 3f70c6911 的收紧:optional_text 恢复成先 trim、再查 is_control
- prompt 末尾带 \n(\r\n 等)视为普通首尾空白裁掉,与首尾空格同口径;中间的控制字符仍然报 has_control_characters
- 测试改为断言行尾换行被接受且裁成 "生成过场",另加一条中间换行仍被拒的断言
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: 41 passed / 0 failed
2026-10-01 15:56:12 +08:00
k88936
493457c3ea
拒绝原因留痕前统一脱敏
...
- log_denied_reason 在唯一出口调用 sanitize_diagnostic_message,透传的宿主错误文本不再把绝对路径写进日志
- 去重键改用脱敏后的文本,内存与 stderr 拷贝同样不带原文
- 新增 denied_reason_logging_scrubs_embedded_paths 用例固化该约定
- 同步更新 shared-memory 决策记录里的脱敏口径
2026-10-01 15:48:25 +08:00
k88936
ce4ada8bb3
回包失败留痕改为记录真实原因
...
- response_write_failed 改名为 response_delivery_failed,新增 ResponseDeliveryFailure 枚举
- 两个调用点分别传 Write(stdin 写入 / flush 失败)与 TurnBindMismatch(bind_turn 返回 false)
- 日志键改为 agent.direct_codex.approval.response_delivery_failed 并带 cause 字段,回合绑定失败不再被误报成写入失败
- 同步更新 shared-memory 决策记录里的日志键口径
2026-10-01 15:44:25 +08:00
k88936
e3041d84e5
未绑定执行器与回包失败的留痕加有界去重
...
- 未绑定宿主执行器的交互兜底按进程级 (method, outcome) 只写第一行,新增 distinct_outcomes
- 适配器拒绝留痕抽出共用的 log_once,回包未送达同样按回合内原因只记一次
- 上限沿用 MAX_DENIED_REASON_LOGS = 64,模型重试不再逐次刷日志
- 同步更新 shared-memory 决策记录里的去重口径
2026-10-01 15:41:26 +08:00
k88936
7c67a6fcc0
agc_generate_image 的 kind 传了非字符串不再静默当成 image
...
- bridge_image_generation_kind 原来用 and_then(Value::as_str)…unwrap_or("image"):{"kind":true}、{"kind":5}、{"kind":[]} 都会被当成 image 继续生成;空串也会被静默当默认值
- 改成按 schema 语义区分:缺省与显式 null 用默认 image;字符串按原值走 canonical 校验(空串/未知值走 KindUnsupported);其它类型返回新的 GenerateImageError::KindNotText { got }
- 测试补四条断言:kind=true 报「kind 必须是字符串」、kind="" 报「不是受支持的素材类型」、缺省与 null 仍解析为 image
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: 41 passed;agent:: tests::project:: 1078 passed(两条失败为既有 flaky:art_director_request_exposes_canvas_only_for_the_keyed_owner_route / background_agent_runtime_can_generate_platform_art_asset,单独重跑通过)
2026-10-01 15:39:56 +08:00
k88936
c34e45e0c4
未绑定执行器时的交互拒绝按真实结果留痕
...
- 未绑定宿主执行器的交互兜底不再一律记成审批拒绝
- 新增稳定键 agent.direct_codex.interaction.no_adapter,字段为 method / outcome / request_id
- outcome 区分 decline / empty-permissions / unsupported-method,权限申请与未知方法不再被误标为 decline
- 同步更新 shared-memory 决策记录里的日志键口径
2026-10-01 15:38:05 +08:00
k88936
b61fa52e8f
AGC 登录失败按类型化变体分流:业务拒绝不再进错误池
...
- AuthenticatedClient 登录/发码 catch 改用 resolveClientAuthFailure:input/session 变体只给提示,fault 变体与未识别拒绝包成 ClientActionError 交给错误池
- clientAuth.ts 新增 resolveClientAuthFailure,判定只看结构化 type,不做文案匹配
- 删除 errorReporting.ts 的 shouldCaptureClientError,不再存在叶子自行判定要不要上报的口径
- clientAuthHost.test.ts 新增分流用例,auth.suite.ts 的登录失败用例改为结构化拒绝并断言提示文案
2026-10-01 15:33:47 +08:00
lhk229
55375b1406
清理测试编译warning ( #509 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m18s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m30s
Project CI / Backend tests (push) Successful in 3m58s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m12s
Project CI / Native shell tests (push) Successful in 5m49s
Project CI / Frontend tests (push) Successful in 2m18s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m50s
Project CI / AI game creator shell web tests (push) Failing after 2m11s
Project CI / Repository checks (push) Successful in 2m55s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/509
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-10-01 15:29:23 +08:00
k88936
5013f4385f
AGC 前端错误分流基元:ClientActionError 与认证变体分类
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m50s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m9s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / Frontend tests (pull_request) Successful in 2m3s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m42s
Project CI / Native shell tests (pull_request) Successful in 5m41s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m10s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 11m9s
- 新增 clientActionError.ts:ClientActionError 承载 source/action/page 上下文与 cause
- 新增 clientAuthError.ts:isClientAuthError 形状读取 + clientAuthErrorKind 的 input/session/fault 分类 + clientAuthErrorNotice 文案
- captureClientError 解包 ClientActionError 的上下文,并优先使用 cause 的栈信息
- getClientAuthErrorMessage 认识结构化拒绝,非 Error 形状不再字符串化成 [object Object]
- 新增 clientAuthError.test.ts,并在 errorReporting.test.ts 用解包用例替换 shouldCaptureClientError 用例
2026-10-01 15:27:31 +08:00
k88936
fe62482547
Merge branch 'master' into refactor/remove-toolcall.jsonl-legacy
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m53s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m39s
Project CI / Backend tests (pull_request) Successful in 4m10s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 7m34s
Project CI / Native shell tests (pull_request) Successful in 6m15s
Project CI / Frontend tests (pull_request) Successful in 2m15s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m23s
Project CI / Repository checks (pull_request) Successful in 2m45s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m19s
2026-10-01 15:24:49 +08:00
k88936
bb9b0b4d6c
文档对齐:AGC 报告池入口改为调用方带上下文交付
...
- 修订 ADR §2/§3:真故障由调用方包成 ClientActionError 交给错误池,不再把 rejection 留在无人接手的 Promise 上
- 说明 408/5xx/网络判定发生在调用方 catch,shouldCaptureClientError 随本 ADR 删除
- 同步技术方案、decision-log、pitfalls 的重抛口径与影响文件清单
2026-10-01 15:24:42 +08:00
k88936
3f70c69119
首尾的控制字符不再被 trim 静默吞掉,统一按控制字符报错
...
- optional_text 原来先 trim 再查 is_control:`"prompt\n"`、`"\tprompt"` 这类落在首尾的控制字符被静默裁掉、当成合法值,而同一个字符出现在中间却会报错
- 改成先按原串查控制字符,再用 trim 做空值与长度判定:控制字符在哪个位置都报 has_control_characters
- 纯空白值("\n\t"、" ")仍然算空值、报原来的 empty 错误;首尾的普通空格仍按原样裁掉
- 测试补三条断言:prompt 末尾带 \n 必须被拒、纯空白 brief 仍报空、brief 首尾普通空格仍会被裁剪
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent:: 953 passed / 0 failed
2026-10-01 15:18:02 +08:00
k88936
8d55f71911
AGC 认证命令错误结构化
...
- 新增 auth_error.rs:ClientAuthError 具体变体枚举,serde tag=type + ts-rs 导出,附变体名契约测试
- auth_session.rs 全量改为 Result<_, ClientAuthError>:请求/响应/凭据落盘/运行时会话安装按具体变体建模
- 路由语义由变体承担:会话 401/403 走 SessionAuthorityRejected/PermissionDenied,登录 401 保留服务端原因
- 400 变体按请求粒度命名(passwordEntryInputRejected 等),服务端只给 status+message,不做文案匹配
- 注册 auth_error 模块,生成 src/services/generated/ClientAuthError.ts
2026-10-01 15:13:57 +08:00
k88936
66e4ece692
入参给了非字符串值时按字段报类型错,不再混进「不能为空」
...
- ToolTextField 增加 not_text(got),optional_text 在 as_str() 失败时返回它;原来数字/布尔/数组/对象会和空串、null 一起落到 field.empty(),{"prompt":5} 报成「prompt 不能为空」
- 9 个工具 enum 按字段各加一个 NotText 变体(KindNotText、PromptNotText、AspectRatioNotText…),文案形如「生成图片失败:aspectRatio 必须是字符串,当前是「5」。」,仍是一 case 一变体、文案写在变体上
- GenerateImageTextField 改为实现 ToolTextField,删掉 generate_image_optional_text / generate_image_required_text 这两份与共享实现重复的拷贝,generate_image 改走 optional_text / required_text
- 空串 / null / 缺省仍按原来的空值语义处理,只有「有值但不是字符串」换成类型错
- 新增 non_text_field_values_report_a_type_error_instead_of_an_empty_value 覆盖 create_or_derive、prepare_game_art、generate_image 三条路径
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: 41 passed;全量 agent:: 952 passed(唯一失败 concurrent_distinct_frozen_root_steers_create_only_one_replacement 是既有 flaky,单独重跑通过)
2026-10-01 15:01:20 +08:00
k88936
fe200598c0
文档先行:AGC 命令错误结构化与错误报告口径
...
- 新增 ADR:命令错误按具体变体结构化(ts-rs 导出)、报告池只收没人处理的错误、前端按 type 分流不匹配文案
- 更新【技术方案】AGC错误报告与诊断上传:采集口径改为"只收没有调用方处理的错误",补命令变体分流与 clientApi 边界
- 更新共享记忆 decision-log:记录本次口径与影响范围
- 更新共享记忆 pitfalls:记录"输错密码被当成客户端缺陷上报"的现象、根因与判据
- 修正 DirectTurnError 模块注释中"命令边界只给字符串"的过期描述,改为结构化拒单载荷
- docs/README.md 登记新 ADR
2026-10-01 14:52:28 +08:00
k88936
4e5adb2a30
分页 offset 上限收成必填参数与单一常量,三个列表工具口径一致
...
- arguments::page 的 max_offset 由 Option<usize> 改成 usize:调用点必须显式给出上限,不能靠漏传 Option 变成无上限
- 新增 TOOL_PAGE_MAX_OFFSET = 500(与 agc_list_project_files / agc_list_account_assets 的 inputSchema offset.maximum 一致),三个列表工具统一传它;agc_list_registered_assets 原来传 None(无上限),现在同样收敛到 500
- agc_list_registered_assets 的 inputSchema offset 同步补 maximum: 500,保持 schema 与校验一致(这是一个公开入参范围的收窄)
- 只改 offset 边界来源;limit 默认值与上限、分页语义不变
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent:: 952 passed / 0 failed
2026-10-01 14:41:17 +08:00
k88936
1359c7c2b3
去掉 list_registered_assets 的 kind 错误里那份会漂移的示例清单
...
- KindNotManifestClass 原文案列举 9 个示例 kind,而真实白名单是 GameCreationAppAssetKind 的 19 个值,枚举演进后没人会回来同步这句
- 按「不维护第二份清单」的口径,文案只保留「必须用 canonical kind」,取值示例由 kind 参数的 schema description(direct-tools.json 的 agc_list_registered_assets.parameters.kind)承担
- 只改文案,判定逻辑不变
验证:cargo check --bin genarrative-ai-game-creator-shell --tests 通过
2026-10-01 14:37:03 +08:00
k88936
0d21f838ed
生成图片的允许值与边界提成常量,校验与诊断文案共用同一份
...
- 新增 GENERATE_IMAGE_ASPECT_RATIOS / _IMAGE_SIZES / _SLICE_MODES 与 grid 轴、sliceCount 的 MIN/MAX 常量,放在 direct_tool_bridge 的 GENERATE_IMAGE_ARGUMENTS 旁
- generate_image_input 的 aspectRatio / imageSize / sliceMode / grid 轴区间 / sliceCount 区间校验改为读常量;generate_image/error.rs 的对应文案也改为读同一批常量(KindUnsupported 早已从 PLATFORM_ART_ASSET_GENERATION_KINDS 派生,这次把其余几组对齐)
- 只改取值来源,判定范围与文案取值不变
- 未纳入本次:commands.rs 的 LOCAL_PROJECT_ASSET_ASPECT_RATIOS/_IMAGE_SIZES 与 agent_native_tools.rs 的 canvas.asset_generate schema 仍是各自的副本(面向非 agent 的栏目画布入口),统一它们属于另一次改动
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: agent::direct_tools_mcp:: 71 passed
2026-10-01 14:35:53 +08:00
k88936
ea33e8c166
DirectProject 审批拒绝原因留痕
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m43s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m13s
Project CI / Frontend tests (pull_request) Successful in 2m12s
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m57s
Project CI / Native shell tests (pull_request) Successful in 5m54s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m41s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m49s
宿主拒绝 app-server 的审批 / 交互请求时,原因必须落 AppData `RUST` 日志。稳定键 `agent.direct_codex.approval.denied`,字段为 `thread_id` / `method` / `reason` / `distinct_reasons`;未绑定宿主执行器时 `reason=no-bound-host-execution-adapter`,回包写入失败另记 `agent.direct_codex.approval.response_write_failed`。
2026-10-01 14:32:25 +08:00
k88936
235adde72c
联网搜索响应超限的诊断带上实际收到的字节数
...
- WebSearchError::ResponseTooLarge 原来只记 max_bytes,用户只看到「超过上限 524288 bytes」,不知道实际多大
- 两个构造点都已拿到真实大小:content_length() 与 bytes.len() + chunk.len(),变体加 got_bytes 并写进文案
- 判定与两个构造点位置不变,仅补上实际值
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge::tests::search_parser_accepts_only_bounded_public_https_results 通过
2026-10-01 14:14:29 +08:00
k88936
23a111985a
联网搜索 maxResults 非整数的诊断上限改为随变体携带,不再写死 5
...
- WebSearchError::MaxResultsNotInteger 原文案把上限写死成「1 到 5」,同一份文件里 MaxResultsOutOfRange 却是从 DIRECT_TOOL_BRIDGE_MAX_SEARCH_RESULTS 取 {max};常量一改,两条诊断就会自相矛盾
- 变体加上 max: u64,构造点传 DIRECT_TOOL_BRIDGE_MAX_SEARCH_RESULTS as u64,文案改成「1 到 {max}」
- 只影响这一条诊断的取值来源,判定区间不变
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge::tests::search_parser_accepts_only_bounded_public_https_results 通过
2026-10-01 14:11:27 +08:00
k88936
b2d01ef8c1
write_file 入参形状校验收进 write_file_input,MCP 预检不再漏掉未知字段
...
- 其它 *_input 解析器都先调 ToolArgumentsRejection::check,只有 write_file_input 没有;工具桥路径靠 bridge_write_file_with_permit 里另一次 check 兜住,但独立客户端 MCP 预检 validate_write_file_arguments 只调 write_file_input,带未知字段的入参能通过预检、要等回客户端桥才被拒
- 在 write_file_input 开头补上同一份 check(path/content 白名单),两个入口共用一条规则;写文件门禁里的那次 check 保留,保证「先查形状、再过权限」的现有顺序不变
- 测试补一条:{"path":"game/index.html","content":"…","unexpected":1} 必须被 validate_write_file_arguments 拒绝
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: 40 passed;agent::direct_tools_mcp::tests::tool_catalog_preserves_reviewed_resource_contracts 通过
2026-10-01 14:08:52 +08:00
k88936
c9e4a7e397
美术准备模式缺省时直接构造 ReuseOrCreate,去掉生产路径的 expect
...
- art_preparation_mode 在 mode 缺省时走 from_tool_value(None).expect("default art preparation mode"),依赖「None 必然映射为 ReuseOrCreate」这条隐式不变式
- 缺省值就是 ReuseOrCreate,直接返回该变体即可;显式传入 mode 的解析路径不变,少一条潜在 panic 分支
- bridge_argument_bounds_are_deterministic 断言缺省模式仍为 ReuseOrCreate,继续通过
验证:cargo check --bin genarrative-ai-game-creator-shell --tests;cargo test -- agent::direct_tool_bridge::tests::bridge_argument_bounds_are_deterministic 通过
2026-10-01 14:03:43 +08:00
k88936
822e89bdc0
生成图片的 gridX/gridY 解析不再把超大整数截断成合法网格
...
- generate_image_grid_axis 原来用 `value as u32`,u64 直接截断:4294967297(2^32+1)会变成 1,随后 1..=32 的区间校验把这个巨大输入当成合法网格静默接受
- 改成 u32::try_from,超出 u32 的值直接落到 GridAxisNotInteger 拒绝分支,不再依赖截断后的值
- 补一条回归测试:gridX=4294967297 必须被拒绝,gridX=4/gridY=4 仍通过
验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge::tests::generate_image_grid_axis_rejects_values_beyond_u32 通过
2026-10-01 14:00:03 +08:00
k88936
28f6ddc7dc
去掉权限策略不可用诊断里重复的「读取项目权限策略失败」前缀
...
- ProjectPermissionRejection::PolicyUnavailable 的 cause 来自 read_project_permission_policy_at,本身多数已带「读取/解析项目权限策略失败:」,包装文案再拼一次会得到「读取项目权限策略失败,无法确认……:读取项目权限策略失败:…」
- 包装文案只保留「无法确认该动作是否被允许,本次操作未执行:」,cause 原样保留;判定与变体结构不变
验证:cargo check --bin genarrative-ai-game-creator-shell --tests 通过
2026-10-01 13:53:06 +08:00
k88936
6788a75ca6
分页 limit 的诊断改成「非负整数」,与 offset 保持一致
...
- ToolPageRejection::LimitNotInteger 原文案说 limit「必须是整数」,但负数(如 -1)走到这个分支时本身就是整数,读起来自相矛盾
- 解析用的是 as_u64,真实约束是非负;文案改成与 OffsetNotInteger 相同的「非负整数」,只改措辞,判定与变体结构不变
验证:cargo check --bin genarrative-ai-game-creator-shell --tests 通过
2026-10-01 13:52:52 +08:00
k88936
cf90d7a8db
修正美术重生成「已绑定另一项美术重生成请求」文案里多余的「稳定」
...
- prepare_game_art/error.rs 的 BoundToAnotherBrief 变体描述的是当前客户端回合已绑定另一项美术重生成请求,「稳定」是残留错译,会让模型误以为存在「稳定/不稳定」两种请求
- 只改这一处用户可见文案,判定逻辑与变体结构不变
验证:cargo check --bin genarrative-ai-game-creator-shell --tests 通过
2026-10-01 13:52:29 +08:00
kdletters
73090437f4
后台 chunk 体积告警阈值提到 700 以恢复 master 直推门禁
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m43s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m16s
Project CI / Backend tests (push) Successful in 3m39s
Project CI / Frontend tests (push) Successful in 1m51s
Project CI / Native shell tests (push) Successful in 5m35s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m27s
Project CI / Repository checks (push) Successful in 2m17s
Project CI / AI game creator shell web tests (push) Successful in 1m43s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m52s
- apps/admin-web:vite chunkSizeWarningLimit 由 600 提到 700;当前 index chunk 为 600.23 kB,超出 600 会触发 vite warning,而 scripts/build-gate.mjs 把 warning 当作构建失败
- 背景:远端 master 的 a344686b5(后台项目工程新增按需全量同步时间排序)把该 chunk 推过阈值,任何人直推 master 都会被 check:repository-ci 拦下;本次沿 2026-05-01 把 500 提到 600 的同一口径处理,后台按路由真正拆分另行排期
2026-10-01 13:45:07 +08:00
k88936
9372845c35
内置工具失败改成 typed 错误穿出派发边界,事件带原始 error,软失败清零
...
- dispatch 返回 Result<Value, ToolCallError>:不再在工具内部吞掉错误再补一个失败 Value,handle_direct_tool_bridge 在唯一一处 match 里同时组装发给模型的内容与诊断
- 新增 ToolCallError { message, redact_limit, error, images },error 直接存序列化后的 typed 错误;每个内置工具在自己的 agent/tool/<tool>/error.rs 定义 typed enum,共用 case(参数不是对象 / 未审核字段等)抽到 agent/tool/error.rs 的 ToolFailure
- AgentRuntimeErrorEvent 增加 error 字段携带原始 typed 错误,schema 升到 agent-runtime-error.v3;应用日志详情行扩成 message=… error=… metadata=…,各带独立长度预算
- 软失败清零:import_account_assets、run_validation、browser_playtest、environment_check、apply_patch、editor_execute、cocos_execute 原先返回 Ok(失败载荷) 的分支改为 typed 错误,并把 status / dispatched / retryAllowed 等载荷带进错误,模型仍能看到
- 失败证据截图走 ToolFailure::attached_images 与 ToolCallError.images,截图放 #[serde(skip)] 字段,不混进诊断里的 error
- bridge_tool_result 去掉 is_error 入参,isError 只在组装处按 Ok/Err 分支写一次;MCP 线上 isError 字段与校验不变
- 修正上一提交遗留的两处 rustfmt:direct_tools_mcp.rs、runtime_tools/context.rs(同一 workspace 整体格式门禁要求)
- 同步更新技术方案文档字段表与共享记忆决策记录
验证:cargo check --bin genarrative-ai-game-creator-shell --tests 通过;cargo test --bin genarrative-ai-game-creator-shell -- agent:: 951 passed / 0 failed;npm run check:encoding、git diff --check 通过;Windows 专属 cocos/unity/godot 分支在 Linux 下临时去 cfg 交叉编译通过(无真实 Windows 构建)
2026-10-01 13:30:32 +08:00
kdletters
dbc3355e3a
账单不再计入实际变动为 0 的泥点流水
...
- spacetime-module:每日免费 / 会员周期换期改为先算「换期后余额 + 实际变动」(新增 resolve_expiring_points_wallet_transition),实际变动为 0 时只更新余额状态、不再写 profile_wallet_ledger
- spacetime-module:通用结算入口 apply_profile_wallet_signed_delta 在 amount_delta 为 0 时直接返回当前余额,不再落一条 0 变动流水
- spacetime-module:账单列表 list_profile_wallet_ledger_entries 在按余额结算链排序之后、截断 50 条上限之前剔除 amount_delta 为 0 的存量行,历史 0 流水立即从账单消失且不占用列表上限
- spacetime-module:新增 3 条定向单测覆盖换期实际变动与账单 0 变动过滤(去 0 后不改变其余条目顺序)
- 文档:后端数据契约 profile_wallet_ledger 补「实际变动为 0 不进账单」口径并修正源码路径为 runtime/active/profile.rs;decision-log 追加 2026-10-01 条目说明根因是旧判据看入参而不是实际余额变动
2026-10-01 13:23:29 +08:00
kdletters
127def0a8a
修复 AGC Claude 执行认证与错误诊断
...
官方 Claude 模型复用当前平台会话令牌
保留 Claude 失败终态摘要并增加回归测试
补充 AGC 排障记忆
2026-10-01 13:21:57 +08:00
k88936
cdb2223140
Merge branch 'master' into refactor/remove-toolcall.jsonl-legacy
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m44s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m20s
Project CI / Backend tests (pull_request) Successful in 3m40s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 7m3s
Project CI / Frontend tests (pull_request) Successful in 2m2s
Project CI / Native shell tests (pull_request) Successful in 5m47s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m5s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m55s
Project CI / Repository checks (pull_request) Successful in 2m26s
2026-10-01 12:58:04 +08:00
suzmii
66e12cc3fd
Merge pull request 'AGC 随包资源 staging 归位:统一跨平台构建目标与增量缓存(#519)' ( #520 ) from fix/agc-rust-staging-idempotency into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m55s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m13s
Project CI / Backend tests (push) Successful in 4m39s
Project CI / Frontend tests (push) Successful in 2m32s
Project CI / Native shell tests (push) Successful in 7m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m30s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m17s
Project CI / AI game creator shell web tests (push) Successful in 1m54s
Project CI / Repository checks (push) Successful in 2m26s
Reviewed-on: #520
2026-10-01 11:59:41 +08:00
k88936
c0e6396bad
Merge branch 'master' into refactor/remove-toolcall.jsonl-legacy
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
2026-10-01 11:55:43 +08:00
suzmii
bdab523a90
Merge branch 'master' into fix/agc-rust-staging-idempotency
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m44s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m14s
Project CI / Backend tests (pull_request) Successful in 3m35s
Project CI / Frontend tests (pull_request) Successful in 1m57s
Project CI / Native shell tests (pull_request) Successful in 5m35s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m26s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m38s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m44s
Project CI / Repository checks (pull_request) Successful in 2m29s
2026-10-01 11:52:08 +08:00
lhk229
a344686b59
为后台项目工程新增按需全量同步时间排序 ( #546 )
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m44s
Project CI / AI game creator shell Rust crates (push) Successful in 1m9s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
新增按钮读取所选渠道全部项目并按同步时间降序、用户与项目 ID 升序展示
复用本地分页并支持全量刷新、恢复默认顺序、进度提示与取消读取
为全量读取增加超时、数量和游标边界,失败时保留原结果
补充三项关键交互测试并同步技术方案、运维说明与共享记忆
Reviewed-on: #546
2026-10-01 11:51:10 +08:00
k88936
29c4442ae9
修掉 dispatch 放行成功分支未使用的 reply 绑定
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m17s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m17s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m17s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m25s
Project CI / Backend tests (pull_request) Failing after 19s
Project CI / Repository checks (pull_request) Failing after 25s
Project CI / Frontend tests (pull_request) Successful in 2m54s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m55s
Project CI / Native shell tests (pull_request) Has been cancelled
- thread_manager/dispatch.rs:放行成功分支的 `Ok(reply)` 改成 `Ok(_)`——终态文案已改由运行态事件下发,`reply` 不再被消费,留着会触发 unused_variables 警告
- 验证:cargo test --bin genarrative-ai-game-creator-shell thread_manager::(62 passed / 0 failed)、cargo fmt --check、npm run check:encoding、git diff --check
2026-10-01 11:36:37 +08:00
k88936
f7aa2af905
删除无调用方的 direct_taonier_active_now_millis
...
- direct_runtime/mod.rs:删除从未被调用的 direct_taonier_active_now_millis(函数体内唯一的 unix_millis 用法随之消失),宿主时钟只留 direct_now_ms
- 验证:cargo test --bin genarrative-ai-game-creator-shell direct_runtime(101 passed / 0 failed)、cargo fmt --check、npm run check:encoding、git diff --check
2026-10-01 11:36:37 +08:00
suzmii
e7fa90ae18
修复AGC随包资源校验边界
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m4s
Project CI / Backend tests (pull_request) Successful in 3m43s
Project CI / Frontend tests (pull_request) Successful in 2m7s
Project CI / Native shell tests (pull_request) Successful in 5m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m37s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m14s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m38s
Project CI / Repository checks (pull_request) Successful in 2m14s
修复变参 feature 解析、Windows Codex 缓存幂等性、插件缓存产物检查和插件根目录链接校验。
补齐 staging/backup 忽略规则与 feature 回归测试。
2026-10-01 11:35:27 +08:00
k88936
4999653a5e
统一错误事件收成一个 message,去掉 public_text / recovery_hint / detail
...
- AgentRuntimeErrorEvent 只留一个 message:产生失败的 typed 错误在失败现场写好的人类可读文案;persist_agent_runtime_error 由 10 个入参减到 8 个,agent_runtime_error_app_log_lines 同步收口
- 删掉 recovery_hint 与 detail 两个字段及其入参;开发者信息不另开字段,全部进 metadata:tool、脱敏 arguments、directTurn、dispatchDenied
- 应用日志详情行由 hint=… summary=… detail=… metadata=… 收成 message=… metadata=…,身份行不变
- message 预算:sidecar 8 KiB、应用日志 1200 字符(取原来 detail 的预算,用户只上传 AppData 日志、拿不到 sidecar)
- direct-codex 路径把 typed Display 全文作为 message;retryable / recovery_hint 仍由 typed DirectTurnError 判定,只留在前端要解析的 direct-codex-failure:v2 文案里
- runtime_state.rs 那条改为只记原始 error(投影后的用户文案已经写进 project.jsonl,不再存第二份)
- 同步修正技术方案文档的字段表与共享记忆的决策记录
2026-10-01 10:55:26 +08:00
k88936
1dfe0dd8d4
内置工具错误改成每工具一个 typed enum,工具桥与 MCP 预检收口
...
- 每个内置工具在 agent/tool/<tool>/error.rs 定义自己的错误 enum:一个 case 一个变体,用户(以及转述给用户的模型)可见文案写在变体的 to_user_msg() 上,捕获处只调 to_user_msg()
- 跨工具重复的 case(入参形状、项目权限门禁、分页、清单读取、资源登记完成投影、客户端 Direct 回合门禁、宿主执行门禁、未登记工具名)在 agent/tool/error.rs 定义一次,各工具用包装变体 + From 复用,不复制文案
- 工具失败诊断的 code 由「反推错误文案」改成稳定的工具名,开发者信息进 metadata:tool、脱敏 arguments、directTurn、dispatchDenied
- 统一错误事件去掉 retryable 字段,AGENT_RUNTIME_ERROR_SCHEMA_VERSION 升到 agent-runtime-error.v2
- 独立客户端 MCP 的 validate_* 改成调用工具桥同一份入参规则,再用该工具 enum 的 to_user_msg() 渲染,删掉重复的字符串文案
- project/verification.rs 的项目权限策略判定改为返回 typed ProjectPermissionRejection(Denied / PolicyUnavailable)
- 同步更新技术方案文档的字段表与共享记忆的决策记录
2026-10-01 10:51:50 +08:00
k88936
3611b1e4b9
修 emit 活动白名单漏项并统一宿主时钟
...
- runtime_driver/entrypoints.rs:emit 白名单补 host-review / error-feedback——DirectRuntime 实际会传这两个活动,漏项在 debug 构建 panic、release 构建静默丢掉整次进度回填
- runtime_driver/entrypoints.rs:updated_at 改用 direct_now_ms(),删掉内联 Unix-ms 计算,宿主只留一个时钟
- runtime_driver/entrypoints.rs:新增用例钉住 DirectRuntime 传过的全部活动值都在白名单内
- docs:工具调用卡片技术方案「背景与现状」补 superseded 说明,去掉失效的 src/app/types.ts:1090 指针
- 验证:cargo test --bin genarrative-ai-game-creator-shell agent::(930 passed / 0 failed / 5 ignored)、npm run check:encoding、npm run check:doc-index、git diff --check
2026-10-01 10:29:15 +08:00
suzmii
7e60484633
Merge remote-tracking branch 'origin/fix/agc-rust-staging-idempotency' into fix/agc-rust-staging-idempotency
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m39s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m16s
Project CI / Backend tests (pull_request) Successful in 4m9s
Project CI / Frontend tests (pull_request) Successful in 2m16s
Project CI / Native shell tests (pull_request) Successful in 6m12s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m38s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m14s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m52s
Project CI / Repository checks (pull_request) Successful in 2m24s
2026-09-30 20:25:26 +08:00
suzmii
0bfc5768cc
修复AGC跨平台资源构建目标
...
让Linux no-bundle smoke不再误用Windows随包资源目标。
统一dev与release的Cargo目标和feature解析,补充跨平台回归测试。
同步随包资源staging技术方案中的实际构建目标约定。
2026-09-30 20:24:23 +08:00
suzmii
0a2dffd8a0
Merge branch 'master' into fix/agc-rust-staging-idempotency
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m48s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / Native shell tests (pull_request) Failing after 1m38s
Project CI / Backend tests (pull_request) Successful in 3m44s
Project CI / Frontend tests (pull_request) Successful in 1m52s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m42s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 11m23s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m32s
Project CI / Repository checks (pull_request) Successful in 2m18s
2026-09-30 19:44:06 +08:00
k88936
719db293d2
退役 DirectProject 工具调用与回合流账本
...
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m11s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m11s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m11s
Project CI / Backend tests (pull_request) Failing after 26s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m42s
Project CI / Repository checks (pull_request) Failing after 27s
Project CI / Frontend tests (pull_request) Successful in 2m56s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m42s
Project CI / Native shell tests (pull_request) Successful in 7m0s
- agent/direct_tool_calls.rs、agent/direct_turn_stream.rs:整体删除,agent.rs 去掉模块声明与导出
- direct_runtime/mod.rs:删 DirectToolCallCollector、回合流节流器与全部落盘/发射调用点,observer 只回填 update_active_turn
- codex_app_server/mod.rs:删 DirectCodexTurnObservation::ToolCall,AgentMessageSegment 结构体变体简化为元组变体,direct_tool_call_turn_id / direct_tool_call_now_ms 改名
- claude_code_cli.rs:删 tool_use / tool_result 采集分支与 DirectToolCall 构造
- main.rs、runtime_driver/entrypoints.rs:删 GameCreatorDirectTurnUpdateEvent 与 game-creator-direct-turn-update 事件,emit 收缩为 (status, activity)
- thread_manager/wire.rs:新增 direct_now_ms,替代随 direct_tool_calls 删除的时钟函数
- docs:ADR、工具调用卡片技术方案、DirectProject 聊天真相源收敛里程碑与实施计划、pitfalls 旧路径同步到当前状态,decision-log 新增 2026-09-30 退役条目
- 未修(另开):redact_absolute_path_tokens 的无语境绝对路径扫描仍会误伤 HTML 结束标签与嵌套 JSON 转义
- 验证:cargo test --bin genarrative-ai-game-creator-shell agent::(929 passed / 0 failed / 5 ignored)、npm run check:encoding、npm run check:doc-index、git diff --check
2026-09-30 19:42:13 +08:00
suzmii
1dbbdcf329
修复AGC开发资源准备时序
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / Backend tests (pull_request) Failing after 18s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m57s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Repository checks (pull_request) Failing after 27s
Project CI / Native shell tests (pull_request) Failing after 1m40s
Project CI / Frontend tests (pull_request) Successful in 2m6s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m52s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m15s
在启动Vite前完成随包资源staging,避免Windows监听目录导致rename返回EPERM。
同步更新开发入口生命周期测试。
2026-09-30 19:28:16 +08:00
suzmii
d2d78fa3d4
修复AGC随包资源staging边界
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m34s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m3s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m7s
Project CI / Repository checks (pull_request) Failing after 25s
Project CI / Native shell tests (pull_request) Failing after 1m44s
Project CI / Frontend tests (pull_request) Successful in 2m12s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m3s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m30s
修复 --no-bundle 构建前的资源准备接线。
拒绝插件随包目录中的未声明文件并同步Rust校验。
增加staging替换失败后的旧资源恢复与回归测试。
2026-09-30 19:12:30 +08:00
kdletters
66ff5bf4b7
隐藏扩展设置中的插件进程诊断信息
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m43s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m18s
Project CI / Backend tests (push) Successful in 4m18s
Project CI / Frontend tests (push) Successful in 2m32s
Project CI / Native shell tests (push) Successful in 6m39s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 10m42s
Project CI / AI game creator shell web tests (push) Successful in 1m58s
Project CI / Repository checks (push) Successful in 2m45s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 11m49s
移除内置插件卡片中的 lastError 展示
移除导入插件卡片中的 lastError 展示
补充扩展设置文档约定
2026-09-30 18:59:26 +08:00
lhk229
c6381f68e1
修复AGC壳CI缺少Claude SDK依赖安装 ( #558 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m54s
Project CI / Backend tests (push) Successful in 5m55s
Project CI / Frontend tests (push) Successful in 2m58s
Project CI / Native shell tests (push) Successful in 6m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 11m31s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 13m4s
Project CI / Repository checks (push) Successful in 4m16s
Project CI / AI game creator shell web tests (push) Successful in 5m13s
为两条Rust测试lane及smoke任务补齐编译前npm安装
为Rust缓存预热补齐Claude SDK依赖安装
更新CI安装顺序验证及开发运维文档和共享记忆
Reviewed-on: #558
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-30 18:11:17 +08:00
suzmii
6d789b9dc0
Merge pull request 'AGC 编辑器分支产物归位(M3,待 Windows 验收)' ( #524 ) from feat/agc-bundled-resources-m3 into fix/agc-rust-staging-idempotency
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m17s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m35s
Project CI / Frontend tests (pull_request) Successful in 3m12s
Project CI / Backend tests (pull_request) Successful in 5m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 7m55s
Project CI / Repository checks (pull_request) Successful in 3m28s
Project CI / Native shell tests (pull_request) Successful in 7m20s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m58s
Reviewed-on: #524
2026-09-30 17:47:41 +08:00
k88936
41c3dea3fd
Refactor: Add client turn attribution to tool diagnostics and enhance test coverage
...
- Introduced `active_client_turn_id` for client turn attribution in diagnostics.
- Updated error tracking to include `clientTurnId` in tool failure events.
- Added test cases to validate behavior with and without bound client turns.
2026-09-30 17:40:02 +08:00
suzmii
8be75e8e15
合并 origin/master(33 个提交):DirectProject 入队化与事件投影
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m54s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Backend tests (pull_request) Successful in 6m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 7m59s
Project CI / Repository checks (pull_request) Successful in 3m29s
Project CI / Native shell tests (pull_request) Successful in 8m0s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m58s
- 合并 origin/master(425fbcf63..9ee34809b),唯一冲突是共享决策日志两侧各插条目,取「两侧并存」
- 本轮 master 未触及随包资源声明、准备步骤与三份 tauri 配置,build.rs 只读校验保持不变
- 决策日志与踩坑记录同步两侧条目;docs/README.md 与项目索引按 master 收敛
- 构建期重新生成的 ts-rs 绑定经 prettier 归一后与 master 逐字节一致(合并未丢类型)
- 校验:cargo test --no-run 全 target 通过、AGC 应用 vitest 191 files / 1889 tests passed、check-package-layout、prepare-bundled-resources 18 passed、check-config、check:encoding、prettier、cargo fmt --check 全绿
2026-09-30 17:38:35 +08:00
k88936
9ee34809be
Merge pull request 'Feat/ 待发送消息从前端队列移入rust' ( #514 ) from feat/msg-queue-to-rust into master
...
Project CI / AI game creator shell Rust smoke (push) Failing after 1m11s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m12s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m12s
Project CI / AI game creator shell Rust crates (push) Successful in 1m42s
Project CI / Frontend tests (push) Successful in 3m33s
Project CI / Repository checks (push) Successful in 4m18s
Project CI / AI game creator shell web tests (push) Successful in 2m36s
Project CI / Backend tests (push) Successful in 6m41s
Project CI / Native shell tests (push) Successful in 7m24s
Reviewed-on: #514
2026-09-30 17:26:08 +08:00
suzmii
b5a143c04f
合并 origin/master:随包资源仍由准备步骤生成,Claude Agent SDK sidecar 按同一架构归位
...
- 合并 origin/master(140 个提交),解决 4 处冲突:build.rs 取只读校验分支、package.json 同时保留 bundled-resources:test 与 check:generated-bindings、决策日志与踩坑记录两侧条目并存
- master 的构建期 staging(stage_bundled_claude_agent、prune_stale_codex_components)不进构建脚本;sidecar 改由声明与准备步骤产出
- package-layout.json 新增 claudeAgent section(锁定版本、sidecar 入口、上游 SDK 与平台原生运行时目标表、复制跳过规则),layoutVersion 递增到 2
- prepare-bundled-resources.mjs 新增 sidecar 整目录原子替换与缓存 key,复制规则按 section 参数化,Windows 真机 24 个文件、复跑命中缓存零写入
- package_layout.rs 新增 sidecar 只读校验(入口与仓库源码逐字节一致、上游包版本、可执行位、白名单外文件)与声明钉住用例
- build.rs 调用 sidecar 校验并导出 AGC_CLAUDE_AGENT_SDK_VERSION;claude_code_cli.rs 的 sidecar 身份串改用声明版本
- resources/claude-agent 映射从基线 tauri.conf.json 移到 windows/macos 平台配置,check-config.mjs 增加「基线不得声明 resources/**」守卫
- 修正 package_layout 的 Windows 路径期望用例(期望值改与实现同形,原用例在 Windows 必红)
- 同步技术方案 §4.5/§4.9、共享决策日志与踩坑记录
2026-09-30 17:23:04 +08:00
k88936
8a4e3cbcdd
Merge remote-tracking branch 'origin/master' into feat/msg-queue-to-rust
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m9s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m11s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m12s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m45s
Project CI / Frontend tests (pull_request) Successful in 4m25s
Project CI / Repository checks (pull_request) Successful in 4m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m15s
Project CI / Backend tests (pull_request) Successful in 7m11s
Project CI / Native shell tests (pull_request) Successful in 7m50s
2026-09-30 16:55:37 +08:00
k88936
dc7feec426
文档:DirectProject 队列条目事件投影、resolved_text 持久化与埋点归宿主收口
...
- ADR 状态改为 2026-09-30 落地完成,§2 补入队侧的“用户条目校验与冻结”,§5 埋点段去掉渲染侧 discard 与句柄表措辞
- ADR 词表收口:并发拒单/放行补拒单出口/放行期拒单三处改成入队失败与放行失败口径
- ADR §9 与实施计划同步归位后的符号名:active_turn_id_at、stale_turn_for_release、kick_queue_dispatch、complete_turn
- 实施计划状态改为第 0–7 步全部落地,进度表第 6/7 步补落地说明与提交号,新增「2026-09-30 收口记录」
- 实施计划顶部路径口径补 thread_manager 之外去掉 direct_ 前缀的函数改名对照
- decision-log 2026-09-30 条目把“设计稿,尚未实施”换成落地提交链与验证结论,并补 09-24 条目指向落地证据
2026-09-30 16:39:45 +08:00
k88936
28b64cf25a
DirectProject 待发消息条目改为事件投影,放行时重投影 canonical 与 prompt
...
- queue.rs:PendingTurn 退化成 queue.enqueued 的投影(new / from_event / enqueued_event 往返),删掉 canonical_user_item 与 prompt 两个宿主私有产物字段
- thread_manager/mod.rs:删 StoredEvent.pending(append_inner 并回 append);pending_turns 改为一次事件折叠(有 queue.enqueued、没有配对 queue.removed),容量、判重、remove、claim 全读这一次折叠;mark_queue_events_cleanable 删掉“产物还在就不回收”的防御
- dispatch.rs:放行的 canonical = serde_json::to_value(&pending.user_item),prompt = direct_codex_user_item_to_prompt(&pending.user_item)——不写盘、不读 manifest、不重跑校验
- user_input.rs:入队只造条目本身,不再冻结 prompt / canonical 形状
- wire.rs:queue.enqueued 注释改为“这条事件就是这条待发消息的全部事实”
- 验证:cargo test -- thread_manager::(62 passed,单线程跑进程级计数器用例)、-- agent::(948 passed,另一条 design_runtime 用例为既有并发 flaky,单跑通过)、-- direct_runtime:: analytics:: direct_codex_user_item(182 passed)、npx vitest run appSurface/directThreadChat/directHistoryPaging/directProjectTurn(249 passed)
2026-09-30 16:37:06 +08:00
k88936
425fbcf637
Merge pull request 'Feat/发布页引导用户使用客户端' ( #557 ) from feat/guide-user-use-client into master
...
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m14s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m13s
Project CI / AI game creator shell Rust crates (push) Successful in 1m37s
Project CI / Frontend tests (push) Successful in 3m37s
Project CI / Repository checks (push) Successful in 4m18s
Project CI / AI game creator shell web tests (push) Successful in 2m24s
Project CI / Backend tests (push) Successful in 6m42s
Project CI / Native shell tests (push) Successful in 7m35s
Reviewed-on: #557
2026-09-30 16:35:20 +08:00
k88936
0270cd601e
DirectProject 埋点成绩改由宿主结算,删掉候选/settle 两阶段与 analyticsAttemptId
...
- analytics/run.rs:删 Request::DirectCandidate / Request::Settle 与 settle();direct_finished 改收放行代次,终态再读一次 identity_generation,不同则整条不记,相同则直接落 Request::Terminal
- analytics/store.rs:删 pending_runs / pending_run_bytes 与两条候选分支(连带 16 条上限),run_request 不再需要字节预算参数
- analytics/gui.rs + main.rs:删 settle_direct_run_analytics 命令与注册
- 放行侧:kick_queue_dispatch 在读 claim 之后读一次平台会话代次并随整轮传下去;user_input 命令不再收 analyticsAttemptId,队列条目不再持有埋点句柄
- 渲染层:删 beginDirectRunAnalytics、句柄表与结算 effect、settle 调用与命令参数;删除 tests/directRunAnalytics.test.ts,appSurface 两处断言同步
- 判据口径随放行搬家:从“发送时与终态同代”改成“放行时与终态同代”,入队后放行前的账号切换不再丢弃成绩
- 验证:cargo test -- analytics::(45 passed,含新增的直写与代际变化两条)、cargo test -- agent::(949 passed)、analytics_real_file_write 用例、npx vitest run tests/appSurface.test.ts(194 passed)、相关 chat/direct 单测 139 passed、typecheck 通过
2026-09-30 16:25:05 +08:00
k88936
fa56f45675
添加游戏发布页面的客户端引导组件
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m4s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m5s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m3s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m31s
Project CI / Frontend tests (pull_request) Successful in 3m47s
Project CI / Repository checks (pull_request) Successful in 4m8s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m10s
Project CI / Backend tests (pull_request) Successful in 6m39s
Project CI / Native shell tests (pull_request) Successful in 7m25s
2026-09-30 16:23:34 +08:00
k88936
534baea589
Merge remote-tracking branch 'origin/master' into feat/guide-user-use-client
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m14s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m14s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m14s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m39s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
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
2026-09-30 16:19:34 +08:00
k88936
688d3b103a
为游戏发布页添加客户端引导组件
...
- 优化工具栏布局
- 属性化客户端入口组件,支持按钮文案、样式及窄屏选项配置
2026-09-30 16:18:31 +08:00
k88936
15a495dc29
DirectProject 引用解析文本随条目持久化,prompt 投影拆成 freeze 与纯折叠
...
- AgcResourceReference 增加 resolved_text:入队冻结时写入素材摘要 + UI 设计文档代码上下文,此后随条目持久化;缺省合法(旧历史照样解析),序列化时不写 None
- wire.rs 新增 freeze_direct_codex_user_item(校验 + 算片段 + 写盘 + 冻结进 part + 判空),direct_codex_user_item_to_prompt 改为只读条目自身事实的纯折叠(零 IO、零校验、无失败出口)
- wire 投影与 turn input 优先读 resolved_text,缺省才退回按当前 manifest 现算摘要;历史回读依旧不产生写副作用
- user_input.rs 入队侧改用 freeze,prompt 由冻结条目折叠得出
- 生成绑定 DirectCodexUserContentPart 增加可选 resolvedText
2026-09-30 16:07:46 +08:00
kdletters
110f088d41
修复 Jenkins 发布流水线与 macOS 包门禁
...
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m12s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m12s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m12s
Project CI / AI game creator shell Rust crates (push) Successful in 1m37s
Project CI / Frontend tests (push) Successful in 3m37s
Project CI / Repository checks (push) Successful in 4m4s
Project CI / AI game creator shell web tests (push) Successful in 2m11s
Project CI / Backend tests (push) Successful in 6m31s
Project CI / Native shell tests (push) Successful in 7m13s
- 转义 Stdb Publish GString 内的 shell 命令替换,避免 Jenkinsfile 加载时 Groovy 编译失败
- 为 Stdb Publish 暂存清理命令补充生产运维回归门禁
- 抽离 macOS 包内容策略并放行随包 Claude Agent SDK 的受控 node_modules
- 违规资源现在会输出具体相对路径,并补充包内容白名单单测与排障记录
2026-09-30 16:01:21 +08:00
k88936
2b98b022c2
文档:待发消息条目改为事件投影、引用解析文本随条目持久化、埋点成绩归宿主
...
- ADR §3/§4/§5:在队条目 = 事件窗口里“有 queue.enqueued、没有配对 queue.removed”的折叠;队列事件不带 prompt、不带埋点身份,也没有宿主私有的第二类字段
- ADR §5/§9:引用 part 的解析文本写进自己的 resolved_text 并随条目持久化(缺省合法、旧历史照样解析),放行/历史回读/turn input 共用;放行读 identity_generation、终态比对后直写成绩,删掉候选/settle 两阶段与 attempt id
- ADR 备选方案补 6–9 条(条目另存产物、整条 prompt、clientTurnId 兼作埋点身份、保留两阶段)与影响与代价(prompt 块顺序、埋点口径随放行搬家)
- 实施计划:新增第 6 步(条目不再另存产物)、第 7 步(埋点成绩归宿主),落地进度表与状态同步;补 2026-09-30 文件路径口径
- decision-log:追加并修正 2026-09-30 条目(resolved_text 持久化、埋点链退役、不用 clientTurnId 兼作身份)
2026-09-30 15:48:38 +08:00
k88936
f121257cca
线程管理器归位 agent/thread_manager:去掉 Direct 前缀,按职责拆文件
...
- 四个 direct_* 文件移入 agent/thread_manager:wire.rs(运行态事件契约)、queue.rs(待发消息队列规则)、dispatch.rs(放行与占用)、mod.rs(管理器主体与对外入口)
- 类型去掉 Direct 前缀:ThreadEvent / ThreadManager / ThreadItem / ThreadFileChange / ThreadDeltaKind / ThreadRequestKind / PendingTurn / QueueRemovalReason / QueueRemovalOutcome / DispatchedTurn / TurnReservation / TurnIdentity / StaleTurnRelease / ConsumeResult / SubscriptionBootstrap / ActiveTurn / ActiveTurnSnapshot
- 对外函数改名:subscribe_thread / consume_thread / unsubscribe_thread / append_thread_event / enqueue_pending_turn / remove_pending_turn / claim_pending_turn / update_active_turn / list_active_turns / complete_turn / complete_turn_if_reserved / active_turn_id_at / read_turn_identity / stale_turn_for_release / thread_id_for_project
- 生成绑定跟着改名(DirectThreadEvent→ThreadEvent 等十个文件为 rename),前端八处 import 同步;Tauri 命令名与前端 IPC 契约不变
- 定向验证:cargo test agent::(945 passed,另两条并发用例为既有 flaky、重跑通过)、npx vitest run appSurface/directThreadChat/directHistoryPaging(247 passed)、typecheck 通过
2026-09-30 15:47:22 +08:00
k88936
e70b338900
文档:DirectProject 待发消息条目改为事件投影,prompt 改为条目重投影
...
- ADR §3/§4/§5 与备选方案 6–8、影响与代价:删掉 StoredEvent.pending 的第二份产物,队列成员由事件折出;prompt 只在引用 part 上冻结算不出的片段(to_prompt_cache,宿主内存专用),canonical 形状与 prompt 放行时重投影;analyticsAttemptId 进 queue.enqueued
- 实施计划:状态改第 0–6 步、落地进度表补第 6 步、新增「第 6 步:条目不再另存产物」的实现点与验收
- decision-log:追加 2026-09-30 修订条目(背景、三条决策、埋点身份的口径)
2026-09-30 15:20:39 +08:00
kdletters
c25fd47d16
纠正清智创游官网游戏下载线上路由
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 1m18s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m18s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m18s
Project CI / AI game creator shell Rust crates (push) Successful in 1m51s
Project CI / Frontend tests (push) Successful in 4m46s
Project CI / Repository checks (push) Successful in 5m5s
Project CI / AI game creator shell web tests (push) Successful in 2m47s
Project CI / Backend tests (push) Successful in 9m1s
Project CI / Native shell tests (push) Successful in 10m4s
移除错误的独立主站 vhost 配置
补充官网现役 vhost 的精确下载接口 snippet
同步线上排障说明与回归测试
2026-09-30 14:52:02 +08:00
k88936
888c249ffd
Merge branch 'master' into feat/msg-queue-to-rust
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m16s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m16s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m49s
Project CI / Frontend tests (pull_request) Successful in 4m14s
Project CI / Repository checks (pull_request) Successful in 4m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m13s
Project CI / Backend tests (pull_request) Successful in 7m10s
Project CI / Native shell tests (pull_request) Successful in 7m58s
2026-09-30 14:37:25 +08:00
k88936
792a3361fb
Merge pull request '更新导航游戏图标资源' ( #545 ) from style/game-play into master
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 52s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m0s
Project CI / AI game creator shell Rust crates (push) Successful in 1m52s
Project CI / Frontend tests (push) Successful in 3m25s
Project CI / Repository checks (push) Successful in 3m45s
Project CI / Backend tests (push) Successful in 7m31s
Project CI / AI game creator shell web tests (push) Successful in 2m34s
Project CI / Native shell tests (push) Successful in 8m13s
Reviewed-on: #545
2026-09-30 14:20:43 +08:00
k88936
928bdb030c
Merge branch 'master' into style/game-play
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m18s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 1m26s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m46s
Project CI / Frontend tests (pull_request) Successful in 4m9s
Project CI / Repository checks (pull_request) Successful in 4m26s
Project CI / Backend tests (pull_request) Failing after 5m46s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m38s
Project CI / Native shell tests (pull_request) Successful in 8m58s
2026-09-30 14:20:29 +08:00
kdletters
05bf69f2c2
修复清智创游官网引擎下载接口路由
...
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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
新增 tsingnovagames.com 独立 Nginx vhost 并代理 /api 到 api-server
补充官网 /home/ 静态首页与下载接口回归测试
同步生产运维验收与排障说明
2026-09-30 14:18:12 +08:00
kdletters
fb130d1847
新增 AGC 模型 Agent 模式与 Claude Agent SDK sidecar
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 57s
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
后台模型目录增加 codex/cc 执行模式绑定,旧目录缺省兼容 Codex
AGC 客户端按模型绑定路由 Codex app-server 或 Claude Agent SDK sidecar
随包携带 Node runtime、Claude Agent SDK 与匹配平台 Claude runtime
补充模型配置、客户端选择、运行时适配、MCP 取消和定向测试
同步 AGC 模型配置规范、里程碑计划与共享决策记录
2026-09-30 14:07:25 +08:00
k88936
8dccf04a62
更新导航游戏图标资源
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m58s
Project CI / Backend tests (pull_request) Successful in 5m6s
Project CI / Frontend tests (pull_request) Successful in 2m37s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m22s
Project CI / Native shell tests (pull_request) Successful in 7m29s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 10m12s
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
2026-09-30 14:07:06 +08:00
k88936
5e2d47919e
Merge pull request 'Style/game play' ( #543 ) from style/game-play into master
...
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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Reviewed-on: #543
2026-09-30 13:55:57 +08:00
k88936
a7caaa6ade
Merge remote-tracking branch 'origin/master' into style/game-play
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m56s
Project CI / Backend tests (pull_request) Successful in 4m27s
Project CI / Frontend tests (pull_request) Successful in 2m21s
Project CI / Native shell tests (pull_request) Successful in 6m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m53s
Project CI / Repository checks (pull_request) Successful in 2m38s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m1s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-09-30 13:38:14 +08:00
k88936
d538c6e9c9
Merge remote-tracking branch 'origin/master' into feat/msg-queue-to-rust
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m25s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m14s
Project CI / Backend tests (pull_request) Successful in 4m1s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m40s
Project CI / Frontend tests (pull_request) Successful in 2m19s
Project CI / Native shell tests (pull_request) Successful in 6m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 9m52s
Project CI / Repository checks (pull_request) Successful in 2m37s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m12s
2026-09-30 13:37:14 +08:00
k88936
131026795a
合并 origin/master:待发消息队列归宿主叠加 master 的 active-turns 广播与保活下沉
...
- direct_runtime/mod.rs:保留本分支「Thread Manager 是活动回合唯一事实源」(direct_active_turn_id_at),
丢掉 master 的 DirectTaonierActiveInvocationGuard 第二份进程内表;master 的美术背景路由改动全部保留
- direct_thread_manager.rs:双方都保留——本分支的待发队列 / 容量上限 / 残留回合兜底释放,
与 master 的 emit_direct_active_turns_changed 广播、unsubscribe、update_active_turn 返回「是否真的变了」
- useDirectProjectChatController.ts:保留本分支入队化逻辑,采纳 master 的 rawMessage 小重构与保活下沉
- direct_turn_dispatch.rs:会话保活改挂放行占用(DirectTurnReservation._session_keepalive),
随占用释放即停,等价承接 master 放在调用身份守卫里的保活意图
- 保留本分支对 direct-execution-production-fixture.mjs 的删除(--direct-codex-chat CLI 已退役,夹具无入口)
- 连带退役 scripts/run-agc-direct-execution-fixture.mjs 与 npm run check:agc-direct-execution-fixture(只服务该夹具)
- 文档同步:ADR / 09-24 实施计划 / decision-log 记录上述退役,09-16 与 09-18 里程碑、pitfalls 的夹具命令标注为已退役
2026-09-30 13:35:14 +08:00
k88936
3b76c2611e
游戏分发四个页面的返回按钮文案统一成「返回」
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m27s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
- GamePlayPage 返回详情 → 返回(含启动超时面板里的按钮)
- MyGamesPage 与 GamePublishPage(三处分支)返回游戏广场 → 返回
- 目标页仍由各自 onBack 决定,按钮不再承诺可能不对的目的地
- GameDistributionPages.test.tsx 超时用例断言改为 /^返回$/u
- 同步里程碑文档与玩法链路文档的返回文案描述
2026-09-30 13:33:02 +08:00
k88936
0619903e3f
修复游玩页面板不滚动规则被 workbench 祖先规则压掉
...
- .platform-tab-panel--game-play 覆盖带上 .platform-desktop-shell--workbench 祖先,压过 overflow: auto
- E2E 游玩页断言补整页与面板的横向溢出测量,避免面板 overflow-x: hidden 静默裁切漏检
- 修正 E2E 探针里重复的 panelOverflowY 键名,拆成 panelOverflowY 与 panelOverflowStyle
- 同步里程碑文档与 pitfalls 同日条目(单类名覆盖被祖先规则压掉、守卫实际为空)
2026-09-30 13:24:55 +08:00
k88936
e221543947
终止钮按 canStopTurn 显示:队列非空不再顶出终止按钮
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m8s
Project CI / Frontend tests (pull_request) Successful in 1m57s
Project CI / Repository checks (pull_request) Failing after 25s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m27s
Project CI / Native shell tests (pull_request) Successful in 5m47s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m38s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m57s
- `useDirectProjectTurnStatus` 新增派生判据 `canStopTurn`(`nativeRunning || commandInFlight`)与共享的
`canStopDirectProjectTurn`,写清它与 `displayBusy` 的分工:前者回答"终止这一脚踢给谁",后者回答"界面能不能声称空闲"
- composer 的发送钮 / 终止钮按 `canStopTurn` 换;`busy` 继续管模型 / 附件 / 语音这些与当前这轮冲突的控件
- `cancelTurn` 的受理判据改用同一个函数:显示与受理同源,不再出现"按钮在、点了说没有回合"
- `displayBusy` 保持三者并集不变(卡片仍要早于首个 token 显示"正在处理")
- 测试:`directProjectTurnStatus` 补 `canStopTurn` 用例;appSurface 补"只有待发消息、没有回合在跑时不显示终止钮"(撤掉修复会红)
2026-09-30 13:11:45 +08:00
k88936
e976a69f9f
详情页返回按来源回到上一页并改用浏览器原生返回
...
- GameDetailPage 左上角「返回游戏广场」简化为「返回」,不再写死跳广场
- 详情/游玩页返回优先 window.history.back(),由 popstate 还原真实来源页(我的游戏/广场)
- activeAppPageRoutes 给应用历史条目补深度标记并新增 hasAppHistoryBackEntry()
- 深链直开等无可回退条目时用 replaceAppHistoryPath 兜底回广场或详情
- 新增 activeAppPageRoutes 深度语义用例与 PlatformEntryActiveFlowShell「游戏详情返回」两条用例
- 同步里程碑文档 2026-09-30 与 pitfalls 同日条目
2026-09-30 13:05:55 +08:00
k88936
9f04940c6d
整包工作流恢复只在需要恢复时才取整轮任务锁
...
- `recover_direct_taonier_regeneration_workflow_at` 先做只读判据(复用 `direct_taonier_regeneration_workflow_requires_recovery_at`),不需要恢复就直接返回
- 真要动手才取 `direct-codex-art`,并在锁下重读一次判据(以锁下那一份为准)
- 原来无条件取锁:正在跑的整包重生成整轮持有它,入队会先同步阻塞约 1 秒再被 `HostStateUnavailable` 拒掉
- 实施计划补一行说明,与 ADR §6"入队不取整轮持有的锁"对齐
- 测试:新增用例"整包重生成在跑(锁被占)时不需要恢复的入队路径不取锁",撤掉修复会红
2026-09-30 13:04:49 +08:00
k88936
0d3937b7eb
广场的发布游戏与我的游戏入口上移到 hero 右上角
...
- GameGalleryPage 新增 .game-page-actions 一行,把「发布游戏」「我的游戏」从 hero 下方的工具栏动作区移出,右对齐放在 hero 上方
- 工具栏只保留「游戏广场」标题与搜索框,不再和入口按钮挤在一行
- .game-page-actions 设 flex-end、0.6rem 间距与 1.1rem 底部间距;两个入口都不可用时整行不渲染,hero 位置不变
- 实测 390/360/820 三档:按钮在 hero 之上、与 hero 间距 18px、右边缘与 hero 对齐
- 里程碑文档记录该布局调整
2026-09-30 12:57:00 +08:00
k88936
51e4811344
残留回合兜底释放改成 Thread Manager 里的原子动作
...
- `DirectThreadManager::release_stale_turn` 在同一个临界区里做完"校验 → 解除占用 → 写 aborted 终态"
- 判据不满足(没有活动回合 / 身份对不上 / 没过启动窗口)一个字都不写,占用与事件都保持原样
- 拆成"先校验后释放"两次取锁会让并发认领插进中间,清掉新那一轮的占用并给老回合补假终态
- `direct_stale_turn_for_release` 降级成"调用原子出口 + 把结果翻成人话",文案与对外语义不变
- 兜底终态改由 Thread Manager 写,身份取被释放那一轮自己的 clientTurnId,删掉 app-server 侧的建事件助手
- 测试:管理器侧新增"校验与释放是一个动作"用例;运行时侧用例补上"拒绝时零写入 / 通过时占用与终态一起落地"
2026-09-30 12:55:07 +08:00
k88936
baca440c5d
对齐页签面板左右留白,修掉移动端右侧贴边
...
- 删除 .platform-tab-panel 里写死的 padding-right: 0.25rem:它是不分层规则,优先级高于 Tailwind @layer utilities 的 padding-inline,把右内边距钉成 0
- 同时删除 @media (max-width: 639px) .platform-tab-panel 与 .platform-desktop-shell--workbench .platform-tab-panel 里各自重复的 padding-right: 0
- 左右留白统一交给使用处的 px-3 / sm:px-6;没有 px 类的舞台(创作主页、我的、游玩页)保持 0/0
- 实测:390 下面板 12/12、列表左右留白 28/28;820 下 24/24、44/44(改前为 12/0、28/16 与 24/0、44/20),横向溢出仍为 0
- pitfalls 与里程碑文档同步该根因(unlayered 覆盖 Tailwind 层级)与测量结论
2026-09-30 12:52:15 +08:00
k88936
3bb1c28a51
修复我的游戏页移动端列表横向溢出并与画廊统一布局口径
...
- .my-game-list 改 grid-template-columns: minmax(0, 1fr),单列 auto 轨道不再被内容最小宽度撑开
- .my-game-card 加 min-width: 0 与 overflow: hidden,卡片可被压缩并裁掉溢出,与 .game-card 同口径
- .my-game-card__title 加 min-width: 0 与 overflow-wrap: anywhere,长标题不撑宽标题行
- pitfalls 记录该机制(auto 轨道最小尺寸 = 内容最小宽度 + nowrap 简介 + 缺 min-width:0)与 Chromium 夹具判据
- 里程碑文档补上该修复与 390/360 视口的测量结论
2026-09-30 12:44:08 +08:00
k88936
e0ca5ad9b9
前端 bootstrap 用例补齐:在跑的那一轮与在队条目同时还原
...
- `directThreadChat.test.ts` 队列投影分组里新增一条:bootstrap 同时带 `turn.started` 锚点与两条 `queue.enqueued`
- 断言 `turnRunning` / `turnUserItemId` / `pendingTurns` 三者同时正确,而不是各测一半
- 只加用例,不改实现
2026-09-30 12:43:32 +08:00
k88936
d341a9be13
补中途加入者的合并快照用例
...
- 新增 `late_subscriber_sees_the_running_turn_and_the_pending_queue_together`
- 钉住:正在跑那一轮的 `turn.started` 锚点(带开口条目身份)与还排着的 `queue.enqueued` 同时进 bootstrap,顺序按事件序
- 原有用例各覆盖一半(一条只测队列、一条只测锚点),这条覆盖两者同时存在的中途加入场景
2026-09-30 12:43:20 +08:00
k88936
e405a4f36f
修复游玩页启动面板居中溢出导致顶部内容滚不到
...
- .game-player-launch 纵向对齐由 center 改为 safe center(保留 center 作旧浏览器回退),溢出时退回 start,不再把标题裁到 scrollTop=0 也够不到的位置
- 同步修正 ≤820px 与 max-height:26rem 两处媒体查询里的 align-content
- 把 overflow-y: auto 提到 .game-player-launch 基础规则,启动卡片成为唯一的内部滚动兜底,页面与 .platform-tab-panel 仍保持 overflow:hidden
- pitfalls 记录该故障模式(居中溢出叠加内部滚动会让负方向那半不可达)与真实 Chromium 夹具判据
- 里程碑文档补上 safe center 口径与取证说明
2026-09-30 12:04:26 +08:00
kdletters
39823b05c1
修复Jenkins release渠道测试环境污染
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m45s
Project CI / AI game creator shell Rust crates (push) Successful in 3m12s
Project CI / Backend tests (push) Successful in 3m53s
Project CI / Frontend tests (push) Successful in 1m45s
Project CI / Native shell tests (push) Successful in 5m36s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m53s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m20s
Project CI / Repository checks (push) Successful in 2m32s
Project CI / AI game creator shell web tests (push) Successful in 1m48s
固定发布构建单测使用dev渠道,避免继承Jenkins的release环境变量。
记录Mac构建在Windows目标测试中读取NSIS配置失败的根因与排障口径。
2026-09-30 12:00:13 +08:00
kdletters
b7862288d0
移除AGC正式渠道产品名后缀
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / Backend tests (push) Successful in 4m0s
Project CI / Frontend tests (push) Successful in 2m3s
Project CI / Native shell tests (push) Successful in 6m16s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- release 渠道复用正式产品名陶泥儿,安装包与更新归档不再包含 Release 文本。
- 保留 release identifier 与 release-win/release-mac 更新分区,更新渠道身份回归测试。
- 同步客户端发布、运维与项目记忆文档。
2026-09-30 11:51:03 +08:00
k88936
75f9bbacb1
入队前先判容量:满了不再做工程准备
...
- `direct_thread_manager` 新增只读的 `direct_pending_turn_count`(管理器 `pending_turn_count` + 模块级封装)
- `enqueue_direct_codex_turn_typed` 在前置条件之后、工程准备之前先做一次容量预判,满队直接返回 `QueueFull`
- 工程准备是分钟级、会在磁盘留产物的活,为注定收不下的消息先做它没有意义;权威判据仍是入队临界区里的检查
- 补一条管理器用例钉住这个只读口径:只数在队条目,认领 / 取消后立刻跟着变
2026-09-30 11:50:38 +08:00
k88936
a83ed01313
删掉重复且永不成立的项目切换守卫
...
- `runTurn` 的 catch 里同一判据写了两遍,两处之间只有同步代码、没有 await,`projectPathRef.current` 不可能变
- 保留 await 之后那一遍,删掉其后永远不会成立的第二遍
- 不改行为:守卫效果由前一处完整覆盖
2026-09-30 11:45:44 +08:00
k88936
25cec7955a
取消失败提示改成普通分支,去掉嵌套三元
...
- `cancelPendingTurn` 里三路结果(不在队 / 已放行 / 已取消)改用 if / else 表达
- 已放行那一路的说明注释挪到对应的分支上
- 不改任何文案与行为
2026-09-30 11:44:36 +08:00
k88936
301f66da2d
游玩页改成固定画布,移动端不再整页可滚
...
- PlatformEntryActiveFlowShell 在 game-play 舞台给页签容器加 platform-tab-panel--game-play,不再挂 overflow-auto,也不再叠加双份内边距
- index.css 新增 .platform-tab-panel--game-play,面板 overflow:hidden 并去掉右侧留白
- gameDistribution.css 让 .game-play-page 改 height:100%/min-height:0、播放器 flex:1 1 auto/min-height:0,删除移动端把页面撑高的 calc(100dvh - 8rem)
- 矮视口(max-height:26rem,横屏手机)压扁启动面板并隐藏封面,保证「开始游戏」可达,页面与面板本身仍不滚动
- PlatformEntryActiveFlowShell.test.tsx 双向锁定游玩舞台页签容器不滚动、游戏广场等舞台仍保持滚动
- check-game-distribution-web-e2e.mjs 移动端段新增「移动端游玩页不可滚动(面板与整页都不溢出)」断言
- 里程碑文档补上该修复的根因、口径与验证记录
2026-09-30 11:44:35 +08:00
k88936
055a6d6658
首屏「立即试玩」改为滚动到列表而不是打开第一款游戏
...
- GameGalleryPage 的 hero 按钮不再取 visibleGames[0] 直接开详情,改为把游戏列表滚进视野
- 滚动按平台页签面板(.platform-tab-panel)算相对偏移并走 scrollTo({behavior:'smooth'}),缺少 scrollTo 时退化成直接赋值
- 新增 gameListRef 锚在列表工具栏,退役只服务该按钮的 featuredGame 派生
- GameDistributionPages.test.tsx 新增「首屏「立即试玩」滚动到列表,而不是打开第一款游戏详情」,断言未触发 onOpenDetail 且滚动落在页签面板上
- 里程碑文档新增「网页侧交互修正(2026-09-30)」记录该修正与验证命令
2026-09-30 11:44:26 +08:00
k88936
20126ead0c
注释用词统一:入队半 / 放行半 改成 入队侧 / 放行侧
...
- `codex_app_server/mod.rs` 两处、`direct_runtime/mod.rs`、`direct_thread_queue.rs`、`direct_runtime/user_input.rs` 各处的简体表述统一
- 同步实施计划文档里的同一处措辞,保持词汇一致
- 只改措辞,不改任何行为
2026-09-30 11:43:21 +08:00
k88936
f4558475a0
取消待发消息时清掉它的埋点句柄
...
- 控制器在 `remove_direct_project_pending_turn` 返回 `removed` 时删除该 `clientTurnId` 的埋点句柄
- 被取消的待发消息永远不会放行、也就不会有自己的 `turn.completed`,句柄留着只会泄漏
- 留着还会挤进"身份缺失"的兜底结算候选(挑认领表里最早那一条),把下一次结算算到没跑过的回合头上
- 补一条 appSurface 用例钉住这条不变式:回放没有身份的失败终态时,兜底结算只落到还能收口的那一条
2026-09-30 11:42:57 +08:00
k88936
3e8954548a
测试替身对齐宿主的按身份判定:alreadyDispatched 只认正在跑那一条
...
- hostQueue 记录被放行的 clientTurnId,cancel 只在身份一致时回 alreadyDispatched,其余回 notFound
- 与宿主 remove_pending_turn(按 active_turn.turn_id 比对)保持一致,避免复用该替身时掩盖 notFound 分支
2026-09-30 11:33:42 +08:00
k88936
354acfd70b
文档:DirectProject 守卫清理落地,ADR 与实施计划标记完成
...
- ADR 状态改为 2026-09-30 落地完成,§9 守卫退役条目改成已落地口径
- 实施计划状态改为第 0–5 步全部完成,进度表第 5 步写成落地说明;第 4 步的 TurnAlreadyRunning 交还给第 5 步
- 09-23 接单化计划加后续注记:接单/拒单词表与 TurnAlreadyRunning 已退役,正文不再回改
- decision-log 的 09-30 条目补落地与验证结果,09-24 条目加落地指向
2026-09-30 10:41:10 +08:00
k88936
4e8b269816
删掉 TurnAlreadyRunning:入队化后没有并发撞单的生产点
...
- 删 DirectTurnError::TurnAlreadyRunning 变体,以及 is_reportable / Display 的对应分支与专属用例
- 前端 directTurnEnqueueFailureNotice 删掉 turnAlreadyRunning 分支;ts-rs 绑定同步删除该变体
- 结构化载荷用例的样本换成 queueFull,本地说明用例的文案样本换成队列已满提示
2026-09-30 10:39:53 +08:00
k88936
ecac9d8e15
DirectProject 调用身份归 Thread Manager:删掉第二份进程内守卫表
...
- 新增 Thread Manager 的只读身份入口:DirectTurnIdentity + read_direct_turn_identity,占用仍只由终态出口解除
- 五个身份读者(执行会话、工具桥、校验预约、上下文预取、付费美术重生成)改读 direct_active_turn_id_at
- 删 DirectTaonierActiveInvocationGuard / DIRECT_TAONIER_ACTIVE_INVOCATIONS / DirectActiveTurnView 与只读探测
- 删 release_stale_direct_taonier_active_invocation,改为 direct_stale_turn_for_release 只做前置校验(身份一致 + 启动窗口),释放仍由 complete_direct_thread_turn + kick_direct_queue_dispatch 完成
- DirectStaleTurnReleaseReason 取代 DirectTaonierStaleGuardReason;终止兜底的注释与文案改成占用口径
- 放行不再另取调用身份:认领时已在 Thread Manager 登记,删掉认领后的守卫进入与失败分支
- 新增前置判据用例 stale_cancel_releases_the_occupancy_and_dispatches_the_next_pending_turn,并补背景拨时测试钩子
- 集成用例改用 DirectTurnReservation::accept_for_test 建占用,不再进守卫
2026-09-30 10:39:32 +08:00
k88936
41c03d7199
文档:核实删调用身份守卫的前置判据,收敛第 5 步口径
...
- ADR §9 记录核实结论:取消兜底本来就同时释放占用、补写 turn.completed 并踢队列,删守卫不需要新增无条件终态;连接死亡的失败事实由 app-server 连接层落地
- 实施计划第 5 步改写:60 秒启动窗口闸门改挂 Thread Manager 的占用登记年龄,读者改读 direct_active_turn_id_at,TurnAlreadyRunning 一并删
- decision-log 追加 2026-09-30 条目,记录核实过程、决策与影响范围
2026-09-30 10:30:16 +08:00
k88936
7b04830a02
Merge pull request '修复移动端顶栏折行与头像裁剪弹窗被底部主菜单遮挡' ( #515 ) from fix/mobile-style into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m24s
Project CI / AI game creator shell Rust crates (push) Successful in 1m21s
Project CI / Backend tests (push) Successful in 3m46s
Project CI / Frontend tests (push) Successful in 1m49s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m29s
Project CI / Native shell tests (push) Successful in 5m33s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m57s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
Project CI / Repository checks (push) Successful in 2m17s
Reviewed-on: #515
2026-09-30 10:29:38 +08:00
k88936
25f3e41623
CLI 与夹具退役:DirectProject 只剩入队一个命令入口
...
- cli.rs 删 CliCommand::DirectCodexChat 变体、project_path_mut 分支、--direct-codex-chat 解析与派发
- direct_runtime/mod.rs 删 run_direct_game_creator_turn_at 与 run_direct_game_creator_turn_at_with_creation_type
- 删 scripts/direct-execution-production-fixture.mjs(CLI 唯一消费者)
- user_input.rs 模块注释改成"唯一的命令入口",不再承诺 CLI 分工
- 顺带删掉只剩测试在用的 direct_turn_error_boundary_text,判据只剩 direct_turn_enqueue_failure 一处
- 三条命令边界测试改打 direct_turn_enqueue_failure(...).message,覆盖不变
- 文档:09-22 里程碑把 --direct-codex-chat 从"范围外(保留)"改成退役项,两份 Direct 技术方案的 CLI 承诺删掉,
09-23 ADR 的"CLI 保持 await"标为口径反转,decision-log 追加口径修正,实施计划标注第 4 步落地
2026-09-30 10:25:38 +08:00
k88936
dfd94c435f
Merge remote-tracking branch 'origin/master' into fix/mobile-style
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Backend tests (pull_request) Successful in 4m9s
Project CI / Frontend tests (pull_request) Successful in 2m15s
Project CI / Native shell tests (pull_request) Successful in 6m6s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m53s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m38s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m45s
Project CI / Repository checks (pull_request) Successful in 2m44s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
2026-09-30 10:20:58 +08:00
k88936
0534e9c678
前端收口:待发消息队列改由事件投影驱动,退役本地队列机器
...
- 新增 conversation/directPendingTurns.ts:入队/移除两个纯函数,不判上限、不排期、不排序
- reducer 新增 queue.enqueued / queue.removed 分支,折成 pendingTurns 投影
- chip 文案派生搬到 pendingTurnChipLabel.ts,删除 chatComposerQueue.ts 整套本地队列实现
- controller 退役 queuedTurns / queueSequenceRef / completionPendingRef / busyBaselineTurnCountRef
与看门 counts effect;取消 chip 改调 remove_direct_project_pending_turn 按 typed 结果说话
- 埋点句柄按 clientTurnId 存表,回合终态按本轮开口条目身份结算
- turnBusy 改名 commandInFlight 并收窄成 IPC 在飞;忙态 = 原生在跑 ∨ IPC 在飞 ∨ 待发消息非空
- 提交改成等命令的入队结果:用户自己能改的入队失败保留草稿,其余按已交出处理
- 测试:队列投影单测、入队只发一次 IPC、IPC 在飞挡住第二次提交、满队保留草稿、取消已放行条目
- 文档:实施计划标注第 0–3 步落地并补第 3 步细则,ADR 的埋点与退役面口径改成落地后的写法
2026-09-30 10:20:37 +08:00
lhk229
54e534b101
Merge pull request '清理文档' ( #535 ) from opt/prune-docs into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / Backend tests (push) Successful in 3m53s
Project CI / Frontend tests (push) Successful in 2m4s
Project CI / Native shell tests (push) Successful in 5m52s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m57s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m11s
Project CI / AI game creator shell web tests (push) Successful in 1m43s
Project CI / Repository checks (push) Successful in 2m19s
Project CI / AI game creator shell Rust crates (push) Successful in 1m5s
Reviewed-on: #535
2026-09-29 23:36:24 +08:00
lhk229
16f507ac15
Merge pull request '隐藏策划资源读取提示中的资源名称' ( #534 ) from opt/hide-docs-name into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m23s
Project CI / AI game creator shell Rust crates (push) Successful in 1m18s
Project CI / Backend tests (push) Successful in 3m55s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m51s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m6s
Project CI / Frontend tests (push) Successful in 2m15s
Project CI / Native shell tests (push) Successful in 6m6s
Project CI / AI game creator shell web tests (push) Successful in 2m3s
Project CI / Repository checks (push) Successful in 2m51s
Reviewed-on: #534
2026-09-29 22:47:03 +08:00
lhk229
716aad24d9
Merge branch 'master' into opt/hide-docs-name
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Backend tests (pull_request) Successful in 3m59s
Project CI / Frontend tests (pull_request) Successful in 2m15s
Project CI / Native shell tests (pull_request) Successful in 6m8s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m45s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m5s
Project CI / Repository checks (pull_request) Successful in 2m48s
2026-09-29 22:46:45 +08:00
kdletters
8315d5660a
后台公共组件收口到共享组件库并统一列表实现
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- packages/shared/src/components/admin/ 新增 16 个后台共享组件(AdminPage/AdminPanel/AdminButton/AdminAlert/AdminTable/AdminField/AdminInfoList/AdminTagList/AdminPagination/AdminListPanel/AdminDialog 等)与随组件的 admin.css,经 @genarrative/shared/components 导出
- AdminListPanel 统一列表外壳:columns + renderRow、加载两口径(empty/line)、空态三态(state/text/row)、toolbar 与 pagination 槽位、showEmpty 判据、surface=plain(弹窗内列表)
- AdminListPanel 新增列头排序(sortable/sortValue/sortDescription):正序→倒序→不排序循环、同步 th[aria-sort]、稳定排序
- AdminDialog 统一弹窗外壳(遮罩/标题行/关闭动作/role=dialog/aria-modal/Esc/点遮罩关闭/初始聚焦/as=form),12 处各页自写弹窗全部改用它
- AdminFormat 新增 formatAdminDateTime/formatAdminDate,删除 7 份重复的本地时间格式化实现,修掉列表里裸 ISO 时间
- 21 个文件里 26 处列表全部迁到 AdminListPanel(24 处 columns 形态、2 处弹窗内 plain),页内已无手写表头或 AdminTable 当 children 的写法;累计 45 个可排序列
- 页面壳归一:错误报告补 AdminPage wide + AdminPageHeading,详情弹窗移出列表面板;模板管理列表从共享 ui Table 换成 AdminTable
- 样式收口:公共组件规则随组件进入共享 styles,清理 admin.css 重复按钮/面板规则,.admin-tag 与 .admin-table th 改 nowrap,埋点用户列参考按钮紧跟本行并留行距,错误报告修版心
- 新增 scripts/admin-web-fake-api.mjs 本地假 API(含 overview/dashboard/tracking/error-reports/feature-gates/邀请码/兑换码/任务/充值/项目工程/AGC 模型与模板/游戏/账号/用户详情夹具),用于本地核对渲染
- docs 同步:共享基础组件库与展示页(后台组件层/列表排序/收敛范围/本地核对)、decision-log 与 pitfalls 记录迁移口径、排序边界与踩坑
- 验证:npm run admin-web:typecheck、npx vitest run apps/admin-web packages/shared/src/components/admin(26 files / 244 tests)、npm run check:encoding、git diff --check、prettier、eslint 全部通过
2026-09-29 22:39:41 +08:00
suzmii
4cba964234
Merge pull request '修复 DirectProject 流式正文逐 delta 脱敏吃掉段尾换行导致 Markdown 结构损坏' ( #533 ) from fix/direct-delta-markdown into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Backend tests (push) Successful in 4m6s
Project CI / Frontend tests (push) Successful in 2m10s
Project CI / Native shell tests (push) Successful in 6m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m53s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m22s
Project CI / AI game creator shell web tests (push) Successful in 1m44s
Project CI / Repository checks (push) Successful in 2m13s
Reviewed-on: #533
2026-09-29 21:49:44 +08:00
suzmii
2cc7df8074
修复 DirectProject 流式正文逐 delta 脱敏吃掉段尾换行导致 Markdown 结构损坏
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m58s
Project CI / Backend tests (pull_request) Successful in 4m7s
Project CI / Frontend tests (pull_request) Successful in 2m13s
Project CI / Native shell tests (pull_request) Successful in 6m8s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m29s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m45s
Project CI / Repository checks (pull_request) Successful in 2m15s
- prompt_context.rs:sanitize_error_context 改为 split_inclusive('\n') 逐段处理并原样保留行终止符,「逐段脱敏」与「整段脱敏」同形(CRLF 仍归一成 LF,私钥块整行吞掉的旧口径不变)
- codex_app_server/mod.rs:新增 direct_thread_delta_sanitization_preserves_line_breaks,钉住逐段脱敏 == 整段脱敏,去掉 split_inclusive 即红
- pitfalls.md:记入本次排障(含 chunk 起点路径误判这一同源未修缺陷)
2026-09-29 21:30:44 +08:00
lhk229
a5664cb1c9
Merge pull request 'Remove Read Tools Path restrictions for gameagent' ( #531 ) from feat/remove-gameagent-path-restrictions into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m50s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m25s
Project CI / Native shell tests (push) Successful in 6m15s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m8s
Project CI / Frontend tests (push) Successful in 2m9s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m29s
Project CI / AI game creator shell web tests (push) Successful in 1m37s
Project CI / Repository checks (push) Successful in 2m9s
Reviewed-on: #531
2026-09-29 20:35:42 +08:00
lhk229
0dacfec429
修复 Game Agent 项目外读取的父目录链接绕过
...
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 smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
文件读取和目录列表逐段拒绝符号链接及 Windows 重解析点
新增受保护目录别名与文件链接回归测试,保留普通外部读取
同步技术方案与排障记录,明确真实路径要求
2026-09-29 13:34:59 +01:00
lhk229
5454062423
合并 origin/master 到 Game Agent 读取路径分支
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Successful in 4m8s
Project CI / Frontend tests (pull_request) Successful in 2m17s
Project CI / Native shell tests (pull_request) Successful in 6m44s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m7s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m16s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m38s
Project CI / Repository checks (pull_request) Successful in 2m28s
- 决策记录同时保留外壳状态栏浮层与 Game Agent 读取路径两条 2026-09-29 条目
2026-09-29 13:18:48 +01:00
kdletters
1d6cbd4b67
外壳状态栏退役,状态改由浮层提示承载
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 3m57s
Project CI / Frontend tests (push) Successful in 2m0s
Project CI / Native shell tests (push) Successful in 6m5s
Project CI / Repository checks (push) Failing after 42s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m49s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m54s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
- 首页输入框下方与项目组页面头部那行状态栏退役:status 不再由页面渲染,统一由外壳浮层承载(WorkspaceLauncher 合成粘性状态与一次性提示,渲染 notice ?? statusNotice)
- 进行中进度与失败结论走粘性浮层(sticky: true,不自动收起,切页回来仍可见);成功与取消回显走一次性浮层(成功/取消 2.6 秒、失败 6 秒收起),一次性提示优先显示,收起后粘性状态继续显示
- 粘性状态只挂首页与项目组两个页面,进项目工作台、模板库、帮助页不再飘在界面上;运行/预览提示与取消回显不受该限制
- RunNoticeToast/RunNotice 更名为 LauncherNoticeToast/LauncherNotice,新增 sticky 与 neutral 色调,挂点改为 data-launcher-notice-toast,长文案容器限宽 min(680px, 100vw - 2rem) 并换行
- 收起回调只从 ref 读,不再写进 effect 依赖:此前外壳每次重渲染都会换一个内联箭头函数,把收起计时重新起算,长驻页面上的提示可能永远收不回去
- useHomeProjectCreation 三处取消(非空文件夹确认弹窗、打开项目选目录、新建项目选目录)改为清空状态并弹一次性浮层回显「已取消」,不再往页面上那行写文字
- 删除 HomeView 的 status prop 与状态行节点、ProjectsPage 的 status prop 与 .launcher-project-page-status 节点及对应 CSS 规则
- launcherNoticeToast 用例补粘性不收起、父组件重渲染不重新计时、取消回显短时收起;launcherNoticeShellWiring 用例补进行中状态与取消回显都只走浮层、首页不留那一行、粘性状态不进项目工作台
- appSurface/home.suite 三处取消断言改断浮层挂点;homeWebPreflight 与 designProjectRestore 的 hook 夹具补 showTransientNotice
- 技术方案与 decision-log 记录该口径与边界:首页带按钮的「已创建的工作区」提示仍留在页面上
2026-09-29 19:35:49 +08:00
lhk229
59966b55c0
放开 Game Agent 读取工具的绝对路径和项目外路径
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m32s
Project CI / Backend tests (pull_request) Failing after 20s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m56s
Project CI / Frontend tests (pull_request) Successful in 2m26s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m42s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
- agc_read_project_context 与 agc_list_project_files 改走 resolve_game_agent_read_path,绝对路径和离开项目的 .. 可以读
- 落在项目内的路径仍按项目相对路径处理,继续拒绝 .agent、凭据文件名、符号链接和硬链接
- 项目外读取同样拒绝这些受保护名字和链接,目录列表标记为未登记且不可导入
- agc_write_file、agc_apply_patch、素材导入和共享 normalize_relative_path 仍限定在当前项目
- Codex 进程沙箱仍是 read-only,提示词未改
- 决策记录、实施计划和 pitfalls 同步该口径
2026-09-29 12:18:11 +01:00
kdletters
30a190d183
修复 AGC NSIS 安装钩子在模板常量与插件目录之前编译导致的出包失败
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 4m6s
Project CI / Frontend tests (push) Successful in 2m11s
Project CI / Native shell tests (push) Successful in 6m11s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m0s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m19s
Project CI / AI game creator shell web tests (push) Failing after 1m48s
Project CI / Repository checks (push) Successful in 2m33s
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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
- installer-hooks.nsh 顶层收敛为 !define / Var / !macro:迁移逻辑改成 !macro AgcMigrateLegacyIdentity,由 !macro NSIS_HOOK_POSTINSTALL 在模板插入点(Section Install,addplugindir 之后)展开,避免 include 时 INSTALLMODE 未定义走错分支、nsis_tauri_utils 插件目录还没 add 导致 makensis 报 Plugin not found 中断
- 旧展示名改走运行期变量 $AgcLegacyIdentity(替换 Push/Pop + Function),去掉 section 上下文里不可用的 Return 提前返回,清理与补建语义保持不变
- 文件头补编译期位置纪律:模板在 installer.nsi 第 28 行 include 本文件,早于 !define INSTALLMODE / MAINBINARYNAME 与 !addplugindir,顶层只能放声明
- build-release.test.mjs 新增守卫用例:顶层不得出现 Function、插件调用、模板常量引用或裸可执行语句(对修复前形态命中 36 条,含第 68 行顶层插件调用)
- pitfalls 与 decision-log 记录该踩坑、根因、本机逐字复现与处理口径
- AGC 渠道安装身份隔离里程碑补 2026-09-29 钩子编译位置修正小节与本机探针取证
2026-09-29 18:00:03 +08:00
lhk229
4a0f18e8a2
写明策划工作区是相对路径根目录
...
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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 (push) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m7s
Project CI / Backend tests (push) Successful in 3m50s
Project CI / Frontend tests (push) Successful in 2m11s
Project CI / Native shell tests (push) Successful in 5m57s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m48s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m3s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
Project CI / Repository checks (push) Successful in 2m16s
- system-prompt.md 说明工作区是相对路径根目录 `.`,策划文件仍放在工作区内并使用相对路径
- 技术方案与决策记录同步该句口径
2026-09-29 10:37:20 +01:00
lhk229
06f7f145b8
Remove Absolute and External Path Restrictions of Design Agent. Fix mac runtime failure ( #528 )
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m19s
Project CI / AI game creator shell Rust crates (push) Successful in 1m7s
Project CI / Backend tests (push) Successful in 3m49s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / Native shell tests (push) Successful in 6m3s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m25s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m31s
Project CI / AI game creator shell web tests (push) Successful in 1m35s
Project CI / Repository checks (push) Successful in 2m15s
Co-authored-by: kdletters <61648117+kdletters@users.noreply.github.com >
Reviewed-on: #528
Co-authored-by: lhk <ink29535@proton.me >
Co-committed-by: lhk <ink29535@proton.me >
2026-09-29 17:15:28 +08:00
lhk229
68ba4c47d8
将决策记录模板移至项目记忆说明
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m14s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m17s
Project CI / Backend tests (pull_request) Successful in 3m50s
Project CI / Frontend tests (pull_request) Successful in 2m21s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m10s
Project CI / Native shell tests (pull_request) Successful in 6m30s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m34s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m49s
Project CI / Repository checks (pull_request) Successful in 2m47s
在项目记忆 README 的使用原则后恢复决策记录格式模板
说明模板按需填写,简单决策无需补齐全部字段
在决策记录文件顶部增加指向模板的链接
2026-09-29 15:05:14 +08:00
lhk229
6d8969a6fa
清理过期共享记忆与固定文案检查
...
移除运维和原生壳对记忆文案的固定措辞检查,保留实际契约与权限验证
清理过期决策和踩坑流水账,保留当前兼容约束与未完成验证边界
明确共享记忆维护规则,并同步修正游戏发行计划的现行入口说明
2026-09-29 15:04:32 +08:00
lhk229
5452956682
隐藏策划资源读取提示中的资源名称
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m44s
Project CI / Backend tests (pull_request) Successful in 4m34s
Project CI / Native shell tests (pull_request) Successful in 6m30s
Project CI / Frontend tests (pull_request) Successful in 2m12s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m11s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m39s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m47s
Project CI / Repository checks (pull_request) Successful in 2m27s
工具提示不再附加资源 ID,保留文件路径展示和实际读写行为。
同步策划 Agent 技术方案,说明新提示与历史消息的适用范围。
2026-09-29 14:31:27 +08:00
suzmii
12d6ed8223
补记打包客户端的启动与只读投影取证
...
- M3 里程碑「客户端编辑器分支」补本轮实测:安装包解出的客户端在 http://tauri.localhost/ 生产态正常起首页,包内插件与 Skill 包被读取
- 记录 CDP 主世界可读 list_agc_plugins / list_agc_skill_catalog 的自动化路径与 Godot 插件按项目类型可见的现役语义
- 记录「缺适配器 / 缺组件 / 编辑器没开」三类失败文案,供补做时分类记录
2026-09-29 13:55:06 +08:00
suzmii
1099b2dad4
记录 M3 Windows 打包一致性验收结论与两条排障经验
...
- M3 里程碑补「验收记录(2026-09-29)」:准备步骤连续三次复跑 32 个文件内容与 mtime 不变;NSIS 包内 plugins/ 与 resources/plugins 逐文件 sha256 完全一致;运行时三个相对路径与声明必需产物 17 项在包内全部命中
- 与迁移前两份对照(本机 2026-09-24 已安装包、合并基线 8f59c034f 的 build.rs 产物)逐项比对:路径集合与源码派生内容、Unity/Godot 产物一致
- 记录两条已定性差异:Cocos payload 只构建 windows-injection(导出面与迁移前相同)、MSVC 链接产物不可字节复现
- 记录新风险:准备步骤与应用构建共用 target/<triple>/<profile>/deps/cocos_editor_bridge.dll
- 定性 CI 唯一红项 background_agent_runtime_can_write_memory_and_project_files 与本 PR 无关:合并基线同样失败,本机实测第二个 follow-up 请求 5.18s/4.87s 而预算 2s
- pitfalls 新增 2026-09-29 条目:随包资源编译产物摘要不可复现与共用输出路径的核对口径
2026-09-29 13:42:26 +08:00
kdletters
80bf54c39d
修复 AGC dev 渠道改名后旧快捷方式仍指向旧安装
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m6s
Project CI / Backend tests (push) Failing after 3m7s
Project CI / Frontend tests (push) Successful in 1m40s
Project CI / Native shell tests (push) Successful in 5m43s
Project CI / Repository checks (push) Successful in 2m28s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m50s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m53s
Project CI / AI game creator shell web tests (push) Successful in 1m37s
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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 新增 src-tauri/windows/installer-hooks.nsh:安装结束时按旧展示名(陶泥儿、Genarrative AI Game Creator)清理旧快捷方式(先用 IsShortcutTarget 校验目标)、旧安装目录与旧卸载项
- 同一钩子在用户原本就有旧桌面图标时补建当前身份的桌面图标、并始终补建开始菜单图标,解决 /UPDATE 下模板不创建快捷方式导致「点旧快捷方式→更新→自动启动新版」的循环
- build-release.mjs 只在 dev 渠道 + Windows 目标注入 bundle.windows.nsis.installerHooks,并让 node runtime 资源映射与钩子共存
- build-release.test.mjs 新增用例:只有 dev+Windows 注入、钩子文件存在且旧身份表完整、JSON Merge Patch 后钩子不被资源映射顶掉
- pitfalls 与 decision-log 记录改名迁移口径、删除边界与「再改展示名必须追加旧身份」的纪律
- AGC 渠道安装身份隔离里程碑补 2026-09-29 修正小节与真机升级验收项
2026-09-29 12:23:14 +08:00
kdletters
75ca16739a
修复 AGC 登录丢失会话主体导致的身份无效
...
- auth_session.rs 新增 SessionIdentity:登录主体取自响应用户投影、续期主体取自已持久化凭据文件,漏传主体不再是能写出来的状态
- complete_login 改用 SessionIdentity::Login(payload.user),删掉原先写死的空 user_id 字符串
- commit_authenticated_session 在写 client-session.json 之前解析并校验主体,空主体失败关闭且不再留下半截会话文件
- 新增 validated_session_user_id:主体 trim 归一化,空值报「登录失败:登录服务未返回用户身份」
- 补 auth_session 定向用例三条:登录响应供主体、续期只带主体、空主体失败关闭
2026-09-29 12:14:59 +08:00
kdletters
c2a3cafe77
把人工门禁的「本机必然红」与「真缺陷」分开并写入索引
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m13s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m47s
Project CI / Backend tests (push) Successful in 3m44s
Project CI / Frontend tests (push) Successful in 1m57s
Project CI / Native shell tests (push) Successful in 5m48s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m51s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m12s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
Project CI / Repository checks (push) Successful in 2m19s
- 逐条探红:check:nginx-pingora-canary(无 nginx 时明示降级为静态检查)、check:pingora-canary-live-guard、check:pingora-direct-live-guard、check:production-health-patrol-env 全绿
- check:pingora-release-readiness-plan 红:门禁的 assertAbsoluteScriptArg 要求 POSIX 绝对路径(/opt/genarrative/current/scripts/...),Windows 必然失败,属 Linux/CI 专属门禁
- check:api-server-env 红:本机 .env.local 只有 LLM_API_KEY / DASHSCOPE_*,缺 TIANTOKEN_BASE_URL/API_KEY 与阿里云抠图 AccessKey,属本机环境缺口(与 ExternalV1 计划里已记的结论一致),不是代码问题
- 两条结论写入开放事项索引第五节,避免后续重复追查
2026-09-29 07:54:39 +08:00
kdletters
4f47343108
记录 dev 真实部署的发行读取契约与门禁接线审计
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 游戏分发里程碑新增「真实部署只读取证(dev 环境)」小节:平台同源入口 /games/<gameId>/ 与直连发行网关路径匿名 200(nosniff、CORP=cross-origin、ACAO=*、发行专用 CSP、cache-control max-age=60)、同路径带 Cookie 403、带 Cookie 走 nginx 映射仍 200(证明 proxy_set_header Cookie "" 生效);生产 /api/game-distribution/games 当前 0 条已发布
- 索引第三节补该证据;第五节新增 2026-09-29 广度回归(npm test 423 文件 / 4482 passed / 26 skipped)与门禁接线审计(check:* 共 80 个:53 个自动可达、27 个生产/凭据/环境依赖型人工门禁),并给出审计方法
- 一次性审计脚本不入库;接线结论与「加新门禁先问它有没有自动调用方」一起保留在 pitfalls 与索引里
2026-09-29 07:49:18 +08:00
kdletters
02c6d33e9c
把两条路由门禁串进 npm run lint 并用 guardrail 锁住接线
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m2s
Project CI / Backend tests (push) Successful in 3m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 根因:check:nginx-spa-routes 与 check:pingora-route-parity 从来没有自动调用方(只有切换期聚合门禁 check:pingora-release-readiness 含 parity,而它不在 CI 里跑),所以红了一个月也没人看见
- package.json 的 lint 链在 check:maintenance-page 之后接入 check:nginx-spa-routes 与 check:pingora-route-parity,因此 check:repository-ci、CI 与 pre-push 都会执行
- check-production-ops 新增两条 guardrail:断言 package.json 的 lint 链里必须出现 npm run check:nginx-spa-routes / npm run check:pingora-route-parity,删任一条立刻变红(变异验证已做)
- 文档:索引第五节与 Pingora 试点文档更新为「已接进 CI」;pitfalls 新增「为什么以前会漏:加新门禁先问它有没有自动调用方」
- 验证:npm run lint 全绿(含两条新门禁 + eslint + typecheck)、check:production-ops OK、encoding / doc-index / diff / prettier / eslint 通过
2026-09-29 07:42:58 +08:00
kdletters
d67f9e03c0
修正索引第五节的分组数字
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m3s
Project CI / Backend tests (push) Successful in 4m1s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 未勾选 11 条的构成更正为 macOS 节点 3 + 桌面会话 6 + 真实 Provider 2(逐份列出对应计划),此前写的 桌面会话 5 / Provider 3 与第二节表不符
2026-09-29 07:36:57 +08:00
kdletters
e34efc4675
按 2026-09-29 的真实状态重新盘点开放事项索引
...
Project CI / AI game creator shell Rust crates (push) Failing after 1m19s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 第一节:占用锁计划补上 2026-09-28 的实测(write_lock 21 / gui_ 31 / project_execution_owner 8 / owner_diagnostic 4 passed),说明只差真机多窗口运行时表现与第 4 条 A/B 收口决定,并注明它用编号式验收标准、不计入复选框口径
- 第二节:重写为 current 口径——未勾选 11 条、6 份计划,按「macOS 节点 + 真机 / 桌面会话 / 真实 Provider」分组;另列 8 份已无未勾选但仍在等签收或外部环境的计划
- 第三节:游戏分发里程碑从「28 条」更正为剩 4 条,两份实施计划均 0 条;并更正解冻前提——2026-09-28 起发行入口改为平台同源路径,不再要求独立 HTTPS 发行域名与通配证书
- 第五节:补 2026-09-29 重新盘点(81 份计划 / 15 条未勾选 / 8 份文件),把 74 份与 43 条标为历史快照,并把 ``check:nginx-spa-routes``/``check:pingora-route-parity`` 从「仍红」更正为已转绿(含新增反向覆盖与 smoke 断言)
- 阶段 A 实施计划:把「本机只到领域单测」更新为已补齐的真实栈证据(13 条 E2E + AGC live 发布 1 passed + 后台列表/ZIP 联调 10/10)
2026-09-29 07:34:14 +08:00
kdletters
38eb5b69ed
给路由 parity 门禁补反向覆盖,模板里的 location 必须被矩阵声明
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- check-pingora-route-parity 新增 validateNginxLocationsAreCovered:两份 Nginx 模板里出现的每条 location 都必须被矩阵某条用例的 nginx 片段(location 前缀)声明,否则判红
- 这条针对的正是 2026-09-29 发行网关路由那类漂移:此前只做正向检查(矩阵片段必须存在于模板),模板单方面加路由时门禁一直是绿的
- 矩阵新增 web_root_spa(samplePath=/ → static/web/spa_fallback,片段 location = / + try_files /index.html =404;)并把三个新 id 列入必查清单;Pingora 试点文档补根路径回退与反向覆盖说明
- 验证:check:pingora-route-parity OK(24 路由)、check:nginx-spa-routes OK(12 路由 / 3 模板)、cargo test -p pingora-gateway 39 passed、check:production-ops、prettier / eslint / encoding / doc-index / diff 全绿;变异验证:往生产模板插一条无矩阵声明的 location → 只有反向覆盖报「production 模板的 location 没有被矩阵覆盖」
2026-09-29 07:29:41 +08:00
kdletters
5fee115f10
实现 Pingora 发行网关路由并关闭两处路由漂移待办
...
Project CI / AI game creator shell Rust crates (push) Failing after 1m17s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 RouteDecision::ReleaseGateway:/games/game_<32 位小写十六进制 id>/… 重写上游路径到 /api/game-distribution/releases/<gameId><asset>、清空 Cookie、不进 SPA fallback、不套接流保护分组、不受维护闸拦截,与 nginx 同名 location 同口径(只认小写 32 位十六进制)
- 路由矩阵新增 games_release_gateway 用例(含 upstreamPath 期望值)与对应断言;parity 门禁支持 release_gateway 并把 games_spa_fallback、games_release_gateway 列入必查清单
- check:pingora-gateway-smoke 新增三条运行时断言:重写到发行网关且上游拿不到 Cookie、/games/detail 仍走 SPA、/games/game/index.html 仍是真实 404
- 文档:Pingora 试点文档补「平台同源发行入口」语义;pitfalls 记录 SPA allowlist 三处真相源与「发行入口不是 SPA」;按 docs/project-memory/README.md 删除两份已关闭待办,关闭记录写入开放事项索引第五节
- 验证:网关 39 passed、check:pingora-route-parity OK(23 路由)、check:nginx-spa-routes OK(12 路由 / 3 模板)、check:pingora-gateway-smoke 通过、cargo fmt --all --check、check:production-ops、encoding / doc-index / diff 检查全绿;变异验证:矩阵 upstreamPath 写错或拿掉 /games/detail 都会立刻变红
2026-09-29 07:24:52 +08:00
kdletters
16ff10111f
限制 dev 发布目录与 Jenkins 构建暂存的历史堆积
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / Backend tests (push) Successful in 3m47s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- production-api-deploy.sh 新增 --keep-releases(默认 2):发布成功后保留 current 目标与最近 1 个历史 release,只清理同时含 api-server 或 web 标记的旧目录,清理失败只告警、不改变发布结论
- production-api-deploy.sh 新增 prune_old_releases 与参数校验:非整数或小于 1 的 --keep-releases 在任何动作之前失败
- check-production-api-deploy 增加默认值、显式值和非法值三类夹具,并断言非法参数不会提升 release
- check-production-ops 增加 release 保留策略与三个部署 Job 暂存清理的合同
- Api Deploy、Web Deploy、Stdb Publish 三个 Jenkinsfile 在部署或发布成功后只保留最近 2 个 build/<version> 暂存,失败时保留暂存便于诊断和重跑
- 内联清理片段避开 Groovy 反斜杠转义,并在 set -euo pipefail 下对空 build 目录安全(if [ -d build ] 守卫加兜底)
- 开发运维文档补充 release 与 Jenkins 暂存的保留上限口径
- pitfalls 记录 dev 根盘写满的两处根因(发布与暂存无上限、JNLP 幽灵 agent 刷 syslog)以及 Jenkins 内联 shell 的两个坑
2026-09-29 07:19:00 +08:00
kdletters
589f3582ae
补齐 Pingora 网关的 SPA allowlist 并关闭 SPA 路由漂移待办
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m16s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- Pingora MAIN_SPA_PATHS 从 5 条补到 12 条(补 /components、/design-system、/games、/games/detail、/games/mine、/games/play、/games/publish),与前端路由源和 nginx 三份模板逐条一致
- 路由对照矩阵新增 games_spa_fallback(/games/detail → static/web/spa_fallback)并同步 Pingora 试点文档的 SPA allowlist 表,让 cargo test -p pingora-gateway matches_nginx_route_parity_matrix 真正覆盖这条
- 门禁与验证:check:nginx-spa-routes OK(12 路由 / 3 模板)、check:pingora-route-parity OK(22 路由)、网关全量 38 passed、check:production-ops OK、cargo fmt --all --check OK;变异验证:临时拿掉 /games/detail 后矩阵用例以 static mode mismatch 变红;dev 与生产 5 条 /games* 深链实测 200
- 关闭【待办】主站SPA路由白名单与前端路由源不一致 并写入关闭记录;另立【待办】Pingora网关缺发行网关路由(三份 nginx 模板都有 /games/game_<32hex>/ → 发行网关,Pingora 缺这条代理,切流后会 404)
2026-09-29 07:16:00 +08:00
kdletters
9112207089
记录游戏分发 E2E 家族 13 条全绿与 AGC 一键发布客户端取证
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m39s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m12s
Project CI / Backend tests (push) Successful in 4m3s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 里程碑:新增 2026-09-29 小节,记录其余 9 条 E2E(dto-parity / upload-safety / upload-resume 两段 / package-limits / owner-isolation / sandbox / validation-restart 两段 / media / ops-rollback)全部通过及各自要点
- 证据矩阵:第 1 节补上 AGC 一键提交的客户端侧 live 测试证据(真实 publishLocalProjectGame 打真实后端、分片偏移不重传不跳段、同 localProjectId 复用 gameId),第 3 节补 2026-09-29 复跑耗时
- 开放事项索引:补 2026-09-29 的 13 条 E2E 复跑与 AGC live 证据,瓶颈口径不变
2026-09-29 07:08:30 +08:00
kdletters
d8011a72fa
游戏分发 web E2E 的冷启动假失败改为浏览器级预热
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / Backend tests (push) Successful in 3m56s
Project CI / Frontend tests (push) Successful in 2m7s
Project CI / Native shell tests (push) Successful in 6m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m34s
Project CI / AI game creator shell web tests (push) Successful in 1m42s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m40s
Project CI / Repository checks (push) Successful in 2m15s
- 现象:冷 Vite 下 check:game-distribution-web-e2e 先卡在目录卡片 20 秒等待,重跑又卡在游玩页「开始游戏」15 秒等待;同一时刻公开目录 API 已把该游戏排在第一
- 根因:原先的 fetch 预热只拿到 SPA 外壳(HTML 里没有路由模块),Vite 仍在断言阶段现编译这些模块图
- 修复:改成起浏览器后用一次性 context 真走 /games、/games/detail、/games/play(domcontentloaded + 2 秒 settle,120 秒上限,失败只告警),首个 goto 的 120 秒超时保留
- 复验:重启 dev 栈(冷缓存)→ 24/24 PASS;四条 web E2E(web / publish / publish-recovery / a11y)全部复跑通过
- 文档:里程碑补 2026-09-29 复跑记录,pitfalls 同日条目按实测证据补正
2026-09-29 06:54:47 +08:00
kdletters
198c208172
用已安装包现场取证随包 Codex,并收窄 Windows 验收边界
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 3m56s
Project CI / Frontend tests (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m5s
Project CI / Native shell tests (push) Successful in 6m5s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m27s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
Project CI / Repository checks (push) Successful in 2m14s
- Mac 客户端随包运行依赖补齐:记录已安装 陶泥儿开发版 0.1.154 的载荷完整性(coding-agent/win-x64 六个组件 SHA-256 与 manifest.json 6/6 一致、codex-cli 0.155.1)与随包 app-server 能在 Windows 起来的现场证据
- 说明该包在第一条 direct 回合报 items must not be empty 是 7ec984d0d 已修缺陷的现场复现(0.1.154 源码不含、0.1.158 源码包含,master 同用例通过),剩余验收收窄为安装器实跑 + GUI/Cocos 回归
- pitfalls 新增「用夹具 --agc-exe 直接验证已安装渠道包里的随包 Codex」的做法与判读口径
- 开放事项索引同步该行
2026-09-29 06:42:08 +08:00
kdletters
fdb09db8a3
打通本机 dev 栈的后台工程列表与 ZIP 联调并记录证据
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 项目自动上传与后台工程下载:查清「本地数据库 404」的成因是 standalone 未运行(并非库缺失),`npm run dev:spacetime` 启动后自动发布 xushi-p4wfr,`/healthz` 200 且认证投影从 spacetime 表恢复
- 记录联调结果:渠道端点返回 {"channels":["dev","release"]}、未认证 401、游标分页 50+34=84 条、官方门禁 check:agc-project-snapshot-admin-http 对两个真实项目各 10/10 通过(含逐文件 SHA-256 与 .agent 目录还原)
- 开放事项索引同步:该计划只剩「新客户端安装版下的隔离实机自动上传」这一条
2026-09-29 06:37:40 +08:00
kdletters
d0b9bdebfe
补齐真机闭环的现场证据,并记下本会话不能跑 GUI 验收的约束
...
Project CI / AI game creator shell Rust crates (push) Failing after 1m3s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m51s
Project CI / Backend tests (push) Successful in 3m55s
Project CI / Frontend tests (push) Successful in 1m43s
Project CI / Native shell tests (push) Successful in 5m47s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m52s
Project CI / Repository checks (push) Successful in 2m22s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m11s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
- 渠道安装身份隔离:记录本机 dev 0.1.154 与旧身份 陶泥儿 0.1.109 同机并存的真实样本、已装产物内嵌 agc/dev-win/latest.json 且不含 release 端点、两个安装包资源串互不串身份,并写明真机条件已具备
- 更新插件里程碑:写明检查一半已由清单核对脚本覆盖,安装一半在本机只差一次点击,并给出点击前后的取证口径
- DirectProject 两条运行时验收:勾选行注明宿主侧已由真 app-server 夹具取证,剩余部分是界面渲染与用户终止路径
- 记录环境约束:本会话不能启动用户可写目录下的可执行文件,GUI 验收必须在桌面会话执行
2026-09-29 06:27:04 +08:00
kdletters
3fa4501c68
用 Jenkins 真实证据关闭渠道化第 5 条,并记录 dev-mac 卡在离线 mac 节点
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 4m17s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m9s
Project CI / Frontend tests (push) Successful in 2m12s
Project CI / Native shell tests (push) Successful in 6m18s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m18s
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 渠道化里程碑:四渠道全量只读核对(dev-win 0.1.158、release-win 0.1.159、release-mac 0.1.139、dev-mac 0.1.142)与真实 Jenkins 日志/归档取证,条目 5「凭据不落日志、不进归档」勾选关闭
- macOS 里程碑:记录节点 genarrative-agc-macos-01 自 2026-09-24 19:54:51 +08:00 起 ChannelTermination 离线(JNLP 只能在 Mac 本机启动)、离线期间不产出半成品,以及日调度 Job 因此连续失败
- pitfalls:新增「AGC 发布类 Job 变红或卡住先看构建节点在线状态」的排查口径与只读检查命令
2026-09-29 06:18:40 +08:00
kdletters
e1dacccec5
复核版本守卫在真实 dev-win 构建上的表现并记入里程碑
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 5m4s
Project CI / Native shell tests (push) Successful in 6m20s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m44s
Project CI / Frontend tests (push) Successful in 2m15s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m3s
Project CI / AI game creator shell web tests (push) Successful in 1m37s
Project CI / Repository checks (push) Successful in 2m14s
- 只读核对线上 dev-win 0.1.157(commit d39931a01a):清单地址、产物签名、PE 身份与版本、统一总号四层同时成立
- 该构建是 assertArtifactVersionMatches 补上后的首个真实 Windows 渠道构建,确认守卫在 CI 不误伤也不漏放
- 渠道化里程碑记录本条证据,并保留仍未取证的 Jenkins 日志边界
2026-09-29 00:51:32 +08:00
kdletters
e39abe8b61
复核批量标签的原生写盘与跨窗口路径并记入里程碑
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 原生写盘:add_local_project_resource_tags 单次 add_manifest_asset_tags_at(整批校验/一次 manifest 写入/一次 revision/审计记录),前端 CAS 带项目身份与 revision,失败保留草稿
- 跨窗口:handleResourceBatchTagsSaved 用 epoch+路径+项目 ID 丢弃迟到回包,然后调用共用的 reloadManifestAfterAssetCommand 回读广播
- 相关定向用例 24 passed;里程碑记录该复核与仍未验收的真机边界
2026-09-29 00:47:54 +08:00
kdletters
c30248c4ad
封面生成客户端合同复核并记入里程碑
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 复核两处:generateGameDistributionCover 返回的 assetObjectId 直接作为封面(无本地二次上传);read_cover_asset_id 取不到平台素材 ID 时失败关闭,不会退回本地文件
- 里程碑 C3 条记录该复核结论与仍未验收的边界(GUI 真实生成、Provider 出图与泥点扣费账实相符)
2026-09-29 00:43:49 +08:00
kdletters
a441af25e5
证据矩阵按 2026-09-29 的两次修复更新
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 第 3 条:包体上限改为单一来源 shared_contracts 常量,AGC 客户端读包阶段按平台上限预检,本地 512 MiB 导出上限只是防呆线
- 第 5 条:免费生成简介/分类补上客户端侧合同(上下文有界 6,000 字符、素材只带文件名脱敏、失败本地兜底不阻断发布)与用例证据
- 保证 D6 的矩阵与当前代码/证据一致,未取证项分类不变
2026-09-29 00:40:53 +08:00
kdletters
e6c3729adb
AGC 发布前检查平台包体上限,并把上限单一来源
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / AI game creator shell Rust crates (push) Successful in 1m46s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- shared-contracts 新增 GAME_DISTRIBUTION_MAX_PACKAGE_BYTES(200 MiB),服务端 module-game-distribution 保留同值常量并在注释里指明;api-server 新增 publish_package_limit_matches_the_shared_contract 守卫测试把两处锁一致
- AGC project/export 新增 ensure_within_platform_package_limit:读包阶段预检,超限返回「发行包 X MiB 超过平台上限 200 MiB;请精简资源后重新导出再发布」,不再让 200–512 MiB 的包白读盘/暂存后吃服务端 413
- 用例:project::export::npm_export_tests::publish_precheck_rejects_packages_over_the_platform_limit(边界=上限放行、超限文案、本地导出上限确实更宽)
- 里程碑 C1 与 pitfalls 记录「本地导出上限 ≠ 平台发布上限」这一口径
2026-09-29 00:36:28 +08:00
kdletters
cb44081040
发布资料建议的项目上下文改为脱敏:素材只带文件名
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / Backend tests (push) Successful in 4m24s
Project CI / Frontend tests (push) Successful in 2m17s
Project CI / Native shell tests (push) Successful in 6m27s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m56s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m24s
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- GameDistributionPublishPanel:buildPublishProjectContext 不再原样拼接 asset.localPath,新增 contextSafeAssetLabel(统一分隔符、取最后一段、限长 80),绝对路径(含用户目录)不再进入提示词;上下文整体仍截到 6,000 字符
- 新增用例「发布资料建议只带脱敏且有界的项目上下文」:40 个绝对路径素材 + 超长版本说明,断言长度在 5,000~6,000、含文件名、不含 C:\Users 与项目目录;13 tests passed
- 变异验证:改回 `asset.localPath` 原样拼接后该用例立即以 expected ... to not include 'C:\Users' 变红
- 游戏分发里程碑第 C2 条补记该客户端侧口径与剩余边界(GUI 与真实 Provider 仍待验收)
2026-09-29 00:27:07 +08:00
kdletters
1951a88fba
网页侧证据复跑并修掉 Vite 冷启动造成的假失败
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m45s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- check-game-distribution-web-e2e:导航前先 fetch 预热 /games、/games/detail、/games/play 三条路由(120s 上限,失败只告警),首个 goto 超时提到 120s,避免 Vite dev 冷启动(实测 /games 首请求 20.2s、warm 后 14ms)被当成页面故障
- 复跑合并 Web 预检改动之后的网页侧四条 E2E:web-e2e 24/24 PASS、web-publish 全过、web-publish-recovery 全过、web-a11y 全过
- 里程碑补「网页侧证据复跑(2026-09-29)」小节;pitfalls 记录冷启动判据与修法
2026-09-29 00:21:43 +08:00
kdletters
25898969fb
给真机 DirectProject 夹具加一键入口
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / Backend tests (push) Successful in 4m21s
Project CI / Frontend tests (push) Successful in 2m23s
Project CI / Native shell tests (push) Successful in 6m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m17s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m48s
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- 新增 scripts/run-agc-direct-execution-fixture.mjs:默认用 src-tauri/target/debug 的 AGC 二进制跑全部 11 个用例,支持 -- --cases 子集与 -- --agc-exe 覆盖;二进制缺失时给出构建提示并以退出码 2 结束
- package.json 注册 npm run check:agc-direct-execution-fixture
- 复验:全量 11/11 passed(completed/passes/mcp/mcp-write/native/native-resources/patch/deadline/native-session/restart/running);-- --cases restart 透传也通过
- DirectProject 里程碑记录该可复跑入口与 11/11 结果
2026-09-29 00:11:11 +08:00
kdletters
d39931a01a
把签名凭据卫生收进 check:production-ops 门禁
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 两个 AGC 打包管线必须用 withCredentials 把 AgcUpdaterSigningKey / ...Password 绑到 TAURI_SIGNING_PRIVATE_KEY / ..._PASSWORD
- 禁止 echo $TAURI_SIGNING_PRIVATE_KEY、Write-Host $env:...、%VAR%、set -x 之类会把绑定凭据打进日志的写法;归档 glob 不得出现 *.pem|*.key|*.pfx|*.p12
- 变异验证:往 mac 管线插一行 echo $TAURI_SIGNING_PRIVATE_KEY 后门禁立刻以「不得把签名凭据打印到构建日志」失败退出;还原后 check:production-ops OK
- 渠道化里程碑第 5 条补记该静态门禁与剩余边界(真实 Jenkins 运行日志仍需 CI 取证)
2026-09-29 00:05:54 +08:00
kdletters
f6ccabf425
补客户端更新"校验失败不得当成功"的回归用例
...
Project CI / AI game creator shell Rust crates (push) Failing after 1m15s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- appUpdate.test:新增「签名校验失败时拒绝安装、不重启进程,并保留待装更新供重试」——插件抛 signature verification failed 时断言错误原样上抛、restart_agc_app 未被调用、重试仍走安装链路并在成功后重启
- 变异验证:把 restartAppAfterUpdate() 挪到 await downloadAndInstall 之前,该用例立即以 expected "spy" to not be called with arguments: [ 'restart_agc_app' ] 变红;还原后 7 passed
- 客户端更新里程碑补记该覆盖与剩余边界(真机安装闭环与插件侧临时文件清理需真实设备与已发布包);pitfalls 记录"重启必须排在安装成功之后"
2026-09-29 00:02:17 +08:00
kdletters
8b305162c1
给宿主收尾修复补阶段回归断言
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- host_ended_turn_is_not_a_failure 追加断言:宿主自己收尾后账本阶段仍是 Working,不得被改成 Interrupted(这正是 2026-09-28 CLI 回执变成"执行通道已断开"的根因)
- 变异验证:临时补回缺陷版本的 self.interrupt(&reason).await 后该断言以 left=Interrupted/right=Working 变红;还原后 codex_app_server::execution 13 passed
- decision-log 记录该守卫与变异结果
2026-09-28 23:57:59 +08:00
kdletters
a59329995e
真机夹具加 running 用例:进程存活期间宿主可观测到运行中回合
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m38s
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / Backend tests (push) Successful in 4m21s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m27s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m13s
Project CI / Native shell tests (push) Successful in 6m23s
Project CI / Frontend tests (push) Successful in 2m12s
Project CI / AI game creator shell web tests (push) Successful in 1m46s
Project CI / Repository checks (push) Successful in 2m19s
- direct-execution-production-fixture:新增 running 场景(工具阻塞期间进程存活),轮询宿主账本抓快照,断言 phase=working、active 里恰好一条 kind=execute 在途许可、executorStopped=false;收尾后 phase=completed、active 清空、executorStopped=true,宿主侧条目顺序不变
- 复验:completed,passes,mcp,mcp-write,native,deadline,restart,running 共 8/8 passed
- 记录事实:CLI/无前端宿主既无用户消息也无最终助手回复(前端写入),夹具断言只校验宿主侧条目;宿主侧"正在跑"的可观测事实两路径一致
- 文档:DirectProject 里程碑补该轮核对;pitfalls 扩写 CLI 历史只含宿主侧条目这一坑
2026-09-28 23:39:11 +08:00
lhk229
b0d94ed2d9
Merge branch 'master' into codex/fix-web-preflight-home
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m43s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / Backend tests (pull_request) Successful in 4m4s
Project CI / Frontend tests (pull_request) Successful in 2m10s
Project CI / Native shell tests (pull_request) Successful in 6m29s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m23s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m10s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m1s
Project CI / Repository checks (pull_request) Successful in 2m42s
2026-09-28 23:37:47 +08:00
kdletters
c388803729
给真机夹具加 restart 用例:回合进行中杀进程后部分历史与宿主事实
...
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- direct-execution-production-fixture:新增 restart 场景(契约 → 部分助手文本 + 阻塞原生工具 → 工具真开始后 SIGTERM 杀进程),断言部分文本与工具卡片按顺序落盘、被杀工具卡片是最后一行且无回执行、账本不伪造成 completed/executorStopped
- 复验:completed,passes,mcp,mcp-write,native,deadline,restart 共 7/7 passed
- 变异验证:把"等 400ms 再杀"改成"等 20s"(让回合自然跑完)后同一条用例立即变红(AGC must be killed mid-turn)
- 记录事实:CLI/无前端宿主不写用户消息(GUI 由前端写),夹具断言据此只校验部分文本与工具卡片顺序
- 文档:DirectProject 里程碑补该轮核对与剩余 UI 侧边界;pitfalls 记 CLI 不写用户消息这一坑
2026-09-28 23:32:02 +08:00
lhk229
720498c028
合并最新主分支到 Web 环境预检修复分支
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m2s
Project CI / Backend tests (pull_request) Successful in 4m27s
Project CI / Frontend tests (pull_request) Successful in 2m13s
Project CI / Native shell tests (pull_request) Successful in 6m34s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m41s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m30s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m47s
Project CI / Repository checks (pull_request) Successful in 2m43s
同步远端 master 至 8b67efbcf
保留双方排障记录并解决文档末尾冲突
保留 Web 环境探测隔离与独立测试夹具修复
2026-09-28 23:26:18 +08:00
lhk229
172ef2a16b
修复环境探测测试夹具触发配置检查的问题
...
Project CI / AI game creator shell Rust lane 2/2 (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 Rust crates (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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
将 Node 环境断言移入独立测试夹具并通过 include_str 引用
保持生产配置检查规则与预检实现不变
同步定向验证入口说明
2026-09-28 23:24:52 +08:00
kdletters
4415c7a5ff
修复宿主自己收尾被记成本轮未完成(CLI 回执不再是通道断开)
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- fail_turn:宿主自己关的连接(is_closed)只把原因追加进终态说明,不再调 session.interrupt,避免把正常收尾改写成 interrupted
- direct_execution:新增 ExecutionSession::append_terminal_note,与 interrupt 同款留痕但不改阶段;用户主动终止与真实通道故障保持原口径
- 复验:真 AGC CLI → 真 app-server → loopback Responses 夹具 6/6 passed(原来 6/6 失败);completed 用例 phase=completed、executorStopped=true,terminalReport 为宿主真实交付报告
- 定向单测 codex_app_server::execution 13 passed(含 host_ended_turn_is_not_a_failure、user_requested_stop_is_not_recorded_as_a_failure)、direct_execution 26 passed
- 文档:pitfalls 记录 Killer 定位与修复、decision-log 记该决策与边界、DirectProject 里程碑说明该夹具现为可复跑证路(两条 UI 验收仍需真实客户端窗口)
2026-09-28 23:23:56 +08:00
kdletters
8b67efbcff
给 app-server 关闭原因加可观测日志并定位 DirectProject 收尾 Killer
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m40s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m10s
Project CI / Backend tests (push) Successful in 4m34s
Project CI / Frontend tests (push) Successful in 2m16s
Project CI / Native shell tests (push) Successful in 6m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m10s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m31s
Project CI / Repository checks (push) Successful in 2m28s
Project CI / AI game creator shell web tests (push) Has been cancelled
- codex_app_server:shutdown_game_creator_codex_app_server_inner 在 GENARRATIVE_AGC_DIRECT_DEBUG=1 下打印关闭原因,避免以后再靠插桩区分「宿主收尾」与「通道自己断了」
- 用该日志定位到:夹具里是宿主自己的 shutdown_and_report(execution.rs:938,reason=宿主执行预算或交付收尾)先置 closed 再关 app-server,关进程给在途回合发 TransportClosed,于是 CLI 回合拿到「连接断开」、账本落 interrupted
- 记录修复方向(宿主主动收尾时先交付结果、不向该回合发 TransportClosed)与影响面(CLI / 单回合宿主,GUI 常驻不走这条路)
- DirectProject 里程碑与 pitfalls 同步:四层排除结论 + Killer 定位;两条运行时验收继续未勾选
2026-09-28 23:10:59 +08:00
kdletters
a18a6e84b0
插桩排除 DirectProject 宿主收尾的两个候选原因
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / Backend tests (push) Successful in 4m36s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 在 Drop for ExecutionBinding 分支插桩后一次都没打印:账本 interrupted 不是它补的 cancel_from_host
- 临时打印 app-server stderr 分段原文:1242 字节全是 ProgramData/模型元数据/PowerShell shell snapshot 告警,没有 panic/error,说明子进程是被优雅关掉的
- 结合上一轮的「不是 codex 版本漂移、不是 stdin 被忽略」,记录下一步插桩点应落在宿主侧关闭 stdin / kill 子进程的代码;所有插桩已回滚,工作树保持干净
- DirectProject 里程碑与 pitfalls 同步该结论,两条运行时验收继续未勾选(本质要真实客户端窗口)
2026-09-28 23:04:26 +08:00
kdletters
90a414ebf3
清理随包 Codex 资源里的旧布局残留
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m54s
Project CI / Backend tests (push) Successful in 4m3s
Project CI / Frontend tests (push) Successful in 1m59s
Project CI / Native shell tests (push) Successful in 6m11s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- src-tauri/build.rs:stage_codex_target 拷贝前调用新增的 prune_stale_codex_components,删掉不在本轮布局也不在 manifest.json/NOTICE.md 白名单里的文件并收掉空目录
- 复验:重建后 resources/codex/win-x64 根目录那份 0.147.0 codex.exe 与临时备份被清除,六个声明组件、manifest.json 与 NOTICE.md 保留;同一二进制下 loopback 夹具仍跑到 requests=3、markers.ready=true
- 文档:DirectProject 里程碑本轮核对细化第二层问题(不是 codex 版本漂移、不是 stdin;指向 Drop for ExecutionBinding 的收尾竞态,需插桩),并说明两条运行时验收本质要真实客户端窗口;pitfalls 记录该环境陷阱与修复
2026-09-28 22:55:41 +08:00
kdletters
7ec984d0d2
修复 DirectProject 空历史注入导致新项目第一条消息失败
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / Backend tests (push) Successful in 4m20s
Project CI / Frontend tests (push) Successful in 2m13s
Project CI / Native shell tests (push) Successful in 6m19s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m1s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m23s
Project CI / AI game creator shell web tests (push) Successful in 1m41s
Project CI / Repository checks (push) Successful in 2m16s
- build_direct_project_history_injection_params 在历史为空时返回 Ok(None),调用方跳过 thread/inject_items(codex app-server 0.155.1 起拒绝 items: [])
- 新增两条单测:空历史不得构造载荷、有历史仍构造 1 条;cargo test direct_project_history_wire 3 passed、cargo fmt --check 通过
- 复验:真 AGC CLI → 真 app-server → loopback Responses 夹具从「4 秒失败、requests=[]」变为「requests=3、markers.ready=true、exit=0」
- 记录第二层未解决问题:同一用例账本仍落 phase=interrupted(app-server 收尾连接终止),两条运行时验收继续未勾选
- decision-log 与 pitfalls 记录缺陷、修复与证据;DirectProject 里程碑补本轮核对
2026-09-28 22:45:47 +08:00
kdletters
93af29314c
只读核对补旧协议指针的分区断言
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m21s
Project CI / AI game creator shell Rust crates (push) Successful in 1m37s
Project CI / Backend tests (push) Successful in 3m49s
Project CI / Frontend tests (push) Successful in 1m37s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m20s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m39s
Project CI / Native shell tests (push) Successful in 5m50s
Project CI / AI game creator shell web tests (push) Successful in 2m18s
Project CI / Repository checks (push) Successful in 2m49s
- check:agc-update-channel-manifests:非 dev 的 Windows 渠道核对时断言 agc/latest.json 仍指向 dev-win 分区(全局单对象只属于 dev)
- 渠道隔离里程碑与 decision-log 记录线上证据:release-win 核对通过,指针指向 dev-win 0.1.155
2026-09-28 22:30:15 +08:00
kdletters
e055cb1d7c
核对脚本能读 Windows 安装包内部渠道身份与版本
...
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- 新增 scripts/pe-version-info.mjs:纯 Node 解析 PE RT_VERSION(VS_FIXEDFILEINFO + StringFileInfo),带非 PE 输入失败关闭的用例
- check:agc-update-channel-manifests:下载 Windows 安装包后断言 ProductName 与 FileVersion,与 mac 侧解 Info.plist 对称;实测 dev-win 0.1.155=陶泥儿开发版/0.1.155、release-win 0.1.150=陶泥儿 Release/0.1.150
- 渠道化与渠道隔离里程碑记录:dev-win 0.1.155 于 14:26:13 发布完成(总号/清单/旧协议指针三者对齐),但该构建源码早于 assertArtifactVersionMatches,守卫仍待下次真实构建验证
- decision-log 与 pitfalls 补记 PE 侧核对口径
2026-09-28 22:27:18 +08:00
lhk229
927475f2c7
修复 Web 游戏预检的用户目录依赖
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m48s
Project CI / Native shell tests (pull_request) Failing after 1m13s
Project CI / Repository checks (pull_request) Failing after 17s
Project CI / Frontend tests (pull_request) Successful in 1m50s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m21s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m11s
为 Node/npm 版本探测设置临时用户目录并隔离配置、缓存和工作目录
补充真实运行时探测及子进程隔离环境回归断言
同步技术方案与排障记忆
2026-09-28 22:23:04 +08:00
kdletters
87a26f74df
渠道清单只读核对补统一总号与线上一致性断言
...
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- check:agc-update-channel-manifests:读 agc/global-version.json,断言任何渠道清单版本不高于统一总号(渠道落后按 INFO 提示,只有反超才失败),复用 agc-global-version 的 compareVersions
- 渠道化里程碑本轮核对补线上总号证据:总号 0.1.155(dev-win 取号),四个渠道 0.1.154/0.1.150/0.1.142/0.1.139 均不高于总号
- decision-log 记录该线上口径
2026-09-28 22:22:31 +08:00
kdletters
7da6de0b4e
补齐跨渠道产物隔离核对并把 dev-mac 缺陷钉到字节级
...
Project CI / AI game creator shell Rust crates (push) Failing after 1m11s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- check:agc-update-channel-manifests:新增「不同渠道更新包不得字节相同」断言(需 AGC_UPDATE_VERIFY_DOWNLOAD=1),并核对 Windows 安装包文件名带本渠道产品名
- 只读核对 dev-win/dev-mac/release-win/release-mac:dev-win 0.1.154、release-win 0.1.150、release-mac 0.1.139 身份与版本一致;dev-mac 0.1.142 与 release-mac 0.1.139 的更新包 sha256 相同,字节级证明 dev 分区放了 release 渠道的产物
- 渠道安装身份隔离里程碑补本轮核对(发布产物身份 + 跨渠道唯一性),真机并存仍待验收
- macOS 里程碑与 pitfalls、decision-log 记录字节级取证与新断言
2026-09-28 22:18:37 +08:00
kdletters
c6ea0f0e34
给共享产物选择器补版本守卫,避免旧安装包被发出去
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m3s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- build-release:新增导出的 assertArtifactVersionMatches,generateUpdateManifest 选中的产物若文件名带 _x.y.z_ 版本段就必须等于本轮版本,否则失败关闭(macOS 无版本段的 .app.tar.gz 交给身份断言)
- build-release.test:新增残留旧安装包被拒绝、同版本通过、无版本段返回 null 三条用例
- decision-log 与 pitfalls 补记该通用守卫与完整测试批次(apps/ai-game-creator-shell/scripts/*.test.mjs 110 passed)
2026-09-28 22:13:41 +08:00
kdletters
e23b0e871b
修复 macOS 渠道发布挑中残留产物,改为构建期核对包内版本与渠道身份
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m45s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- build-macos-ci:构建前按后缀清空 macos/ 下的 *.app.tar.gz / *.sig / *.dmg / *.dmg.sha256,构建后读 Info.plist 核对版本与渠道身份,生成清单后再断言选中本轮更新包
- 新增 macos-release-identity.mjs 与单测:回归用例直接用线上 dev-mac 里那份 0.1.139 release 身份包
- prepare-macos-codex.test:残留清理断言改成按后缀全覆盖,并校验清理在构建前、身份核对在验签前
- Jenkinsfile.ai-game-creator-shell-macos-build:mac Job 增加身份守卫用例
- check:agc-update-channel-manifests:下载后解出 mac 包内 Info.plist 核对版本与身份,并按 2026-09-21 决策只要求 darwin-aarch64
- 文档:两份里程碑按现行决策修正口径并记录线上缺陷,decision-log 记决策与边界,pitfalls 记录「按目录扫描挑产物会选中残留」
2026-09-28 22:09:57 +08:00
kdletters
3702e0f8e0
记录游戏分发阶段 B 第 7 条已按本地可证范围取证
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m36s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / Backend tests (push) Successful in 3m59s
Project CI / Frontend tests (push) Successful in 2m20s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m14s
Project CI / Native shell tests (push) Successful in 6m37s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 作者/管理员下架关闭发行读取、匿名直取 OSS 被拒、撤销传播窗口 60 秒三条都有 2026-09-28 的运行证据,勾选阶段 B 第 7 条并注明真实 CDN 属阶段 D
2026-09-28 22:00:36 +08:00
kdletters
a4d4d04d97
补齐 AGC 已发布渠道清单只读核对与线上差异取证
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- 新增 scripts/check-agc-update-channel-manifests.mjs:只读核对 OSS 渠道清单结构、对象存在性、签名对象一致性,AGC_UPDATE_VERIFY_DOWNLOAD=1 时下载产物用内置公钥验签
- package.json 注册 npm run check:agc-update-channel-manifests
- 渠道化里程碑条目 3 勾选:dev-win/dev-mac 产物下载验签通过,dev-win 的 sha256/size 与旧协议指针一致;条目 5 记录 withCredentials 与归档 glob 的静态核对结果
- macOS 里程碑记录线上 dev-mac 清单仍是单架构(0.1.142 / c07c10c0c),universal 需 mac 构建机重发
- pitfalls 记录「单测绿不等于线上清单符合契约」与 dev-mac 更新产物命名待核对
2026-09-28 21:56:50 +08:00
kdletters
d5dc95e822
补齐游戏分发主规范逐条证据矩阵
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m1s
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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 docs/project-memory/plans/【证据矩阵】AGC游戏分发主规范逐条证据-2026-09-28.md:按主规范 9 节逐条映射证据与三档结论,HTTP 路由逐行核对,未取证项单列
- 里程碑阶段 D 第 6 条勾选,补「本轮核对(阶段 D 主规范逐条证据矩阵)」并更新阶段 D 现状
- 阶段 D 第 5 条注记告警现状:只有巡检 timer + 日志 operation,独立指标/告警规则未建
2026-09-28 21:50:48 +08:00
kdletters
e8b76da809
补齐游戏分发发布回滚窗口与发行网关缓存取证
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- 新增 scripts/check-game-distribution-ops-rollback-e2e.mjs:关闭/开放发布开关、关投稿保在线、管理员批准被拦、拒绝审核与安全下架仍可用、换版保留旧版本、发行网关响应头与 60 秒缓存窗口、日志脱敏、边缘 /games/<gameId>/ 路由映射(40 项 PASS)
- package.json 注册 npm run check:game-distribution-ops-rollback-e2e
- 里程碑阶段 D 第 4、5 条勾选并补「本轮核对(阶段 D 发布回滚窗口与发行网关缓存)」,含变异验证结果
- pitfalls 记录发布开关用例要连拒绝审核与安全下架一起验,以及本机 check:production-health-patrol 必然 FAILED
2026-09-28 21:46:29 +08:00
suzmii
0cf536b675
恢复 --no-bundle 不再强制随包资源 staging,并同步 CI 分组契约
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m18s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Backend tests (pull_request) Successful in 3m55s
Project CI / Frontend tests (pull_request) Successful in 2m2s
Project CI / Native shell tests (pull_request) Successful in 5m54s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m4s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m39s
Project CI / Repository checks (pull_request) Successful in 2m13s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 9m55s
- build-release.mjs:回到「只有出包(非 --no-bundle)才执行 staging」,修复 Linux 上只编译的 release smoke 因强制 staging 去够 Windows 上游包而失败(保留 staging 与 cargo 共用同一 feature 集,以及未覆盖目标的自然跳过)
- scripts/project-ci-workflow.test.ts:check:web 分组新增 bundled-resources:test 后的精确命令串断言同步
2026-09-28 21:35:56 +08:00
kdletters
6afa63a9de
补齐游戏分发校验重启恢复与失败可观测取证
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m34s
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 scripts/check-game-distribution-validation-restart-e2e.mjs:两段式 prepare/resume,在确认校验中途杀掉 api-server,覆盖暂存字节不丢、重新确认可恢复、待审积压可查、坏包 422 失败可诊断、公开版本不被误删
- package.json 注册 npm run check:game-distribution-validation-restart-e2e
- 里程碑阶段 D 第 3 条勾选,并补「本轮核对(阶段 D 重启恢复与失败可观测)」与阶段 D 现状描述
- pitfalls 记录两段式 E2E 的管理员凭据取决于 api-server 启动环境,以及同一状态文件只能 resume 一次
2026-09-28 21:34:24 +08:00
kdletters
b58fab7b52
补齐游戏分发 200 MiB 上限档与发包边界复跑
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 5m53s
Project CI / Backend tests (push) Successful in 4m47s
Project CI / Frontend tests (push) Successful in 2m6s
Project CI / Native shell tests (push) Successful in 6m46s
Project CI / Repository checks (push) Successful in 2m49s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m24s
Project CI / AI game creator shell web tests (push) Successful in 1m50s
- 新增 scripts/check-game-distribution-package-limits-e2e.mjs:196 MiB 合法包走通上传+校验+送审并记录耗时与工作集,声明超限 413,文件数/单文件/展开量/压缩比四类边界各自 422 失败关闭并落 upload_failed
- 校验实现无进程拉起,包内脚本未被执行
- 游戏分发里程碑阶段 D 第 2 条改为已勾选,并写明本轮可复核数据
2026-09-28 21:13:50 +08:00
kdletters
76cdb96c55
补齐游戏分发网页侧导航可达性与视觉约定取证
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m35s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Backend tests (push) Successful in 4m15s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m5s
Project CI / Native shell tests (push) Successful in 6m25s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m15s
Project CI / AI game creator shell web tests (push) Successful in 1m43s
Project CI / Repository checks (push) Successful in 2m11s
- 新增 scripts/check-game-distribution-web-a11y-e2e.mjs:桌面/移动导航切换、键盘焦点一路进到开始游戏、全屏按钮生效、安全区内边距、移动端发布面板无横向溢出,共 11 项 PASS
- 游戏分发里程碑阶段 C 第 8 条改为已勾选,并记录移动端首次进入的阻断提示这一既有门槛
- 第 9 条按共享组件、warm token、无假统计/演示兜底、iframe 未放宽四条约定取证后勾选
2026-09-28 20:52:54 +08:00
kdletters
bbe416ca60
补齐游戏分发发布恢复链路并修掉双击提交建两份游戏
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m37s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m7s
Project CI / Backend tests (push) Successful in 4m12s
Project CI / Frontend tests (push) Successful in 2m9s
Project CI / Native shell tests (push) Successful in 6m20s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m28s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m31s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
Project CI / Repository checks (push) Successful in 2m25s
- 新增 scripts/check-game-distribution-web-publish-recovery-e2e.mjs:上传中断留草稿、关窗/登录失效后重登续传沿用原 versionId、双击只落一份、换账号不显示他人草稿,共 10 项 PASS
- GamePublishPage 加同步 submitInFlightRef 在途守卫与按次稳定的 Idempotency-Key(失败重试复用、成功后清空),双击不再创建第二份游戏
- 游戏分发里程碑阶段 C 第 5 条改为已勾选
- pitfalls 记录「点一次会建资源的入口需要同步守卫或稳定幂等键」
2026-09-28 20:37:48 +08:00
kdletters
bbbd91db88
补齐游戏分发网页发布链路并修掉发布灰度按匿名判定
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m54s
Project CI / Backend tests (push) Successful in 4m9s
Project CI / Frontend tests (push) Successful in 2m6s
Project CI / Native shell tests (push) Successful in 6m22s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m32s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m31s
Project CI / AI game creator shell web tests (push) Successful in 1m37s
Project CI / Repository checks (push) Successful in 2m17s
- 新增 scripts/check-game-distribution-web-publish-e2e.mjs:网页登录、选封面、选发行包 ZIP、填资料提交,待审不可见、审核后公开、更新沿用同一 gameId 且旧版在线,共 12 项 PASS
- frontendRuntimeConfigService 去掉 skipAuth:发布灰度按作者判定,匿名请求恒为 false,之前只要显式配置过灰度网页端就永远没有发布入口;单测同步更新
- 游戏分发里程碑阶段 C 第 4 条改为已勾选,第 5 条缺口收窄到上传中断/双击/登录失效/窗口关闭与换账号
- pitfalls 记录「按用户灰度配置不能走 skipAuth」的经验
2026-09-28 20:21:34 +08:00
kdletters
f0ae3ce52c
补齐游戏分发网页侧链路取证并修掉返回目录丢关键词
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / Backend tests (push) Successful in 5m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m50s
Project CI / Frontend tests (push) Successful in 2m24s
Project CI / Native shell tests (push) Successful in 7m27s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m9s
Project CI / AI game creator shell web tests (push) Successful in 1m50s
Project CI / Repository checks (push) Successful in 2m24s
- 新增 scripts/check-game-distribution-web-e2e.mjs:真实 dev 网页栈 + Chromium 游客走目录筛选、空态与重置、详情主动作、分享直达详情、按需加载发行 iframe、失败重试、退出不自动重启、移动端门槛与旋转提示,共 23 项 PASS
- GameGalleryPage 的顶栏搜索词同步改为按 prop 值比对:原来的一次性 ref 守卫在开发态 StrictMode 双跑下会用空值清掉刚从 sessionStorage 恢复的关键词
- vite.config.ts 增加 /games/<gameId>/ 发行入口代理(rewrite 到发行网关并去掉 Cookie),本地网页栈与生产 nginx 同口径
- 游戏分发里程碑阶段 C 第 6、7 条改为已勾选,其余条目列出具体缺口
- pitfalls 记录 StrictMode 守卫击穿与 Vite 发行入口代理两条经验
2026-09-28 20:07:20 +08:00
kdletters
eb7c00658a
补齐 External v1 场景生成路由的本地真实栈受理 smoke
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / Backend tests (push) Successful in 5m9s
Project CI / Native shell tests (push) Successful in 6m14s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m6s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m12s
Project CI / Frontend tests (push) Successful in 2m42s
Project CI / AI game creator shell web tests (push) Successful in 1m41s
Project CI / Repository checks (push) Successful in 2m16s
- 新增 scripts/check-external-v1-scene-generation-smoke.mjs:dev 账号现建外部 API Key,校验非法 Key 401、缺幂等键/空 sceneContent/custom 缺 customStyle 各自 400、合法请求 202 且返回 operationId、同键重放同一 operationId、同键换请求体 409
- 轮询生成状态得到 completed 与 assetObjectId,并用 external read-url 换签名地址下载成功(200 image/png),证明 Provider 出图在本机可用
- 里程碑最后一条验收改为已勾选,并把先前「Provider 出图未验证」的环境结论更新为已实测
2026-09-28 19:52:16 +08:00
kdletters
ad2ab4cd60
补齐游戏发行沙箱的真实浏览器取证并勾选阶段 B 第 5/6 条
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m49s
Project CI / Backend tests (push) Successful in 5m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 scripts/check-game-distribution-sandbox-e2e.mjs:把探针包发布到本地发行网关,再用 Chromium 以 sandbox=allow-scripts 的 iframe 打开,断言 module 载入、storage/cookie/父文档 DOM 隔离、跨源 fetch 与 WebSocket、Worker、弹窗、顶层跳转、敏感权限全部被挡
- 同一次运行核对发行网关策略:最小 CSP(connect-src self / worker-src none)、nosniff、Access-Control-Allow-Origin *、带 Cookie 403、未知扩展名 404,共 22 项 PASS
- 游戏分发里程碑阶段 B 第 5、6 条改为已勾选,并按主规范 2026 决策说明独立发行域名已由「平台同源路径 + sandbox 不透明来源」替代
- 第 7 条缺口收窄到只剩「撤销传播符合最大缓存窗口」需要生产 CDN/TTL
2026-09-28 19:43:59 +08:00
kdletters
2d875377a9
补齐项目快照的客户端上传与后台列表下载联调取证
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m39s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m58s
Project CI / Backend tests (push) Successful in 5m36s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 scripts/check-agc-project-snapshot-admin-http.mjs:核对后台列表里的快照统计、下载工程 ZIP、逐条与本地项目副本比对 SHA-256,并检查排除项与 .agent 目录
- 里程碑条目 9 改为已勾选,写入真实客户端共享模块上传(首次 synced、紧接着 no-op)与后台列表/ZIP 的 HTTP 联调取证,并把未验证项单独列出
- pitfalls 记录单用户每小时 3000 次文件上传配额对真实链路冒烟的影响与选项目口径
2026-09-28 19:35:22 +08:00
kdletters
25a992468d
写入对象存储时下发对象级 ACL,修掉发行包可匿名直取
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m4s
Project CI / Native shell tests (push) Successful in 6m20s
Project CI / Frontend tests (push) Successful in 2m11s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m6s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
Project CI / Repository checks (push) Successful in 2m12s
- platform-oss 的内部 PUT 与分片追加显式下发 x-oss-object-acl(Private 为 private、Public 为 public-read),OssAppendInternalObjectRequest 增加 access 字段
- 直传 policy 增加 x-oss-object-acl 条件,表单字段与 shared-contracts 的 DirectUploadTicketFormFields 同步新增并透传到 ticket 响应
- 媒体链路 E2E 增加匿名直取直传封面与发行包两条探测:默认 WARN,E2E_REQUIRE_PRIVATE_BUCKET=1 时按失败处理
- 里程碑第 7 条、pitfalls 与 decision-log 记录根因、修复与复验(严格模式 65 项 PASS,两处匿名直取都 403)
2026-09-28 19:20:21 +08:00
kdletters
fb87e1d4ff
补齐游戏分发安全下架取证并记录发行包对象可匿名直取
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m6s
Project CI / Backend tests (push) Successful in 4m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m34s
Project CI / Frontend tests (push) Successful in 2m19s
Project CI / Native shell tests (push) Successful in 7m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m55s
Project CI / AI game creator shell web tests (push) Successful in 1m57s
Project CI / Repository checks (push) Successful in 2m28s
- 媒体链路脚本新增管理员安全下架与恢复段:suspend 后目录/详情/发行读取全部关闭、过期 revision 的 suspend 被 CAS 拒绝、restore 后重新公开且可玩
- 新增匿名直取发行包对象探测:本地 dev bucket 返回 200(同 bucket 不存在 key 为 404),默认只打 WARN,E2E_REQUIRE_PRIVATE_BUCKET=1 时按失败处理
- 游戏分发里程碑阶段 B 第 7 条补上「不能绕过网关直取 OSS 在当前环境不成立」的实测、根因与剩余缺口
- pitfalls 记录 platform-oss 的 put_internal_object_bytes 从不发送 x-oss-object-acl 的问题与上线前处理
2026-09-28 19:08:51 +08:00
kdletters
6cbc56dd98
补齐游戏分发审核 CAS 与下架可见性取证
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m19s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m39s
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 媒体链路脚本新增 publicationRevision CAS 段:过期审核与过期下架 409 PUBLICATION_CONFLICT、同 key 重放批准 replayed=true、并发激活只有一次成功、下架前的 revision 不能批准新版本
- 新增作者下架后的可见性段:公开目录不含、详情 404、发行网关 404,且目录与详情不返回对象存储地址
- 游戏分发里程碑阶段 B 第 3、4 条改为已勾选,脚本共 58 项 PASS
2026-09-28 19:04:23 +08:00
kdletters
253f99d921
补齐错误 envelope 的请求上下文并扩展游戏分发审核取证
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 5m26s
Project CI / Backend tests (push) Successful in 4m13s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- api-server 的错误响应改用 attach_request_context 建立的 CURRENT_REQUEST_CONTEXT(tokio task_local),错误 envelope 与成功 envelope 一样带 meta.requestId / meta.operation,脱离请求任务时退回原形状
- 越权隔离脚本新增成功/失败 envelope 断言:修复前错误响应 requestId 为空让断言变红,修复后 23 项 PASS
- 媒体链路脚本扩展审核治理段:普通作者不能提交审核动作、更新待审与被拒都不改变在线旧版 URL 与可玩内容、审核结论可在后台追溯,44 项 PASS
- 游戏分发里程碑阶段 A 第 6 条、阶段 B 第 1/2 条改为已勾选并写入取证,阶段 B 其余条目列出具体缺口
- decision-log 补记错误 envelope 同一份 meta 与「按可消费取证」两条口径
2026-09-28 18:58:38 +08:00
kdletters
23de78b476
补齐游戏分发分片续传与失败恢复用例并收口阶段 A 第 5 条
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m41s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m12s
Project CI / Backend tests (push) Successful in 5m14s
Project CI / Native shell tests (push) Successful in 6m19s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m41s
Project CI / Frontend tests (push) Successful in 2m13s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m41s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
Project CI / Repository checks (push) Successful in 2m12s
- 新增 scripts/check-game-distribution-upload-resume.mjs:prepare 段造 9,437,658 字节真实 ZIP 只传第一片 8,388,608 字节,杀掉 api-server(PID 53844 -> 7728)后 resume 段从对象存储读回权威偏移继续传完、确认 uploaded、送审 202 pending_review
- 上传安全检查脚本改名并扩展为 check-game-distribution-upload-safety:新增「结构合法但摘要与声明不符 -> 409 PACKAGE_MISMATCH -> upload_failed + recoveryAction=reupload -> reset 归零 -> 重传确认成功」失败恢复用例,共 24 项 PASS
- package.json 注册 check:game-distribution-upload-resume 并改名 check:game-distribution-upload-safety
- 游戏分发里程碑阶段 A 第 5 条改为已勾选,写入三段式取证
- decision-log 记录越权一律 404、并发落败给权威偏移两条错误码口径
2026-09-28 18:44:16 +08:00
kdletters
665f88b85f
补齐游戏分发并发上传与幂等重放用例并修掉并发落败的错误码
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 5m47s
Project CI / Native shell tests (push) Successful in 6m34s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m6s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m8s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
Project CI / Repository checks (push) Successful in 2m16s
- 新增 scripts/check-game-distribution-upload-concurrency.mjs:同 key 重放建游戏/建版本返回同一条记录、换请求体 409、同版本同偏移并发写片只成功一片、权威已收字节等于单份包长、确认校验通过落到 uploaded、换 key 重复送审 409 且版本数仍为 1
- 分片追加失败后回读权威已收字节:长度已前进时返回 409 PACKAGE_UPLOAD_OFFSET_MISMATCH 与 receivedBytes,不再把 OSS position 冲突报成 502 UPSTREAM_ERROR
- package.json 注册 check:game-distribution-upload-concurrency
- 游戏分发里程碑阶段 A 第 4 条改为已勾选,并把第 5 条的缺口收窄到「响应丢失与进程退出后的续传编排」
2026-09-28 18:31:39 +08:00
kdletters
0989f9f40e
补齐游戏分发跨账号越权用例并统一送审的 404 口径
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m40s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m9s
Project CI / Backend tests (push) Successful in 5m4s
Project CI / AI game creator shell Rust lane 1/2 (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
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增 scripts/check-game-distribution-owner-isolation.mjs:对本地真实栈注册两个账号,逐条验证私有版本读取、上传状态、分片写入、分包确认、送审、撤回与未认证访问的越权口径,并验证请求体伪造 owner 不生效
- api-server 的 submit_version 改用 load_owner_version_or_404:他人送审返回 404 而不是 403,不再用错误码泄露版本是否存在
- package.json 注册 check:game-distribution-owner-isolation
- 游戏分发里程碑阶段 A 第 1 条改为已勾选,写入 21 项 PASS 取证与修复前的 403 变异证据
2026-09-28 18:23:52 +08:00
kdletters
4c4e61255e
给游戏分发 DTO 门禁补上手拼响应构建器的逐键比对
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 5m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m39s
Project CI / Native shell tests (push) Successful in 7m7s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m42s
Project CI / Frontend tests (push) Successful in 2m20s
Project CI / Repository checks (push) Successful in 2m25s
Project CI / AI game creator shell web tests (push) Successful in 1m38s
- 新增 RESPONSE_BUILDERS:解析 api-server 里 game_payload / public_game_payload / private_version_payload / version_summary_payload 的 json! 顶层键与顶层 object.insert,逐键比对 TS 类型
- 发出的键必须都在 TS 类型里,TS 的必需字段必须都发出,公开投影还必须发出被标成可选的 currentVersion
- game_payload 的 author / deviceSupport 两个嵌套字面量同样逐键比对
- TS 类型解析同时记录必需字段,供这一层比对使用
- 同步游戏分发里程碑第 6 条的构建器取证与剩余缺口
2026-09-28 18:06:56 +08:00
kdletters
4c31f50007
Merge remote-tracking branch 'origin/master' into codex/agc-renderer-io-downshift
Project CI / AI game creator shell Rust crates (push) Successful in 1m38s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m16s
Project CI / Backend tests (push) Successful in 5m15s
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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
2026-09-28 17:58:15 +08:00
kdletters
46d8768529
对齐游戏分发响应 DTO 的 Rust 与 TypeScript 字段
...
- 给 GameDistributionGameSummary 补 coverObjectKey / screenshots / publicationRevision,给 GameDistributionPrivateVersion 补 publicationRevision,与 game_payload / private_version_payload 实际发出的键一致
- packages/shared 的 GameDistributionGame.currentVersion 改为可选,并写明作者侧响应自带同一份 game_payload 但不发这一项
- 删掉 DTO 一致性门禁里豁免这 4 个字段的 TS_ONLY_FIELDS 白名单,现在任一方向多出字段都会失败
- 同步游戏分发里程碑第 6 条的取证与剩余缺口
2026-09-28 17:58:00 +08:00
kdletters
1b2bfa4e74
新增游戏分发 Rust 与手写 TS DTO 的一致性门禁
...
- scripts/check-game-distribution-dto-parity.mjs:按显式映射表逐字段/逐变体比对 14 组 shared-contracts DTO 与 packages/shared/src/contracts/gameDistribution.ts,未分类的新类型或新字段直接失败
- 脚本登记 7 个服务端逐字段手拼 JSON 的 TS 类型,并记录 4 个已知响应侧附加字段(coverObjectKey/screenshots/publicationRevision)以便后续收口
- package.json 增加 check:game-distribution-dto-parity 并接进 npm run lint
- 变异验证:TS 改名与 Rust 加字段各自都让门禁失败并指出缺哪个字段;里程碑第 6 条写明剩余缺口(两个响应仍是 serde_json 手拼)
2026-09-28 17:52:11 +08:00
kdletters
39a7343079
补齐游戏分发阶段 A 的三条领域用例并勾选失败关闭条目
...
- module-game-distribution 新增 rejects_symlink_entries:用 ZipWriter::add_symlink 造真实 S_IFLNK 条目(unix_permissions 会掩掉类型位),去掉 is_symlink 守卫时该用例变红
- 新增 failed_validation_keeps_the_previous_publication_and_confirmed_package:第二版校验失败后已公开游戏快照与上一版已确认包身份逐字段不变,变异成顺带更新游戏记录时变红
- 新增 a_version_accepts_only_one_confirmed_package:不同摘要/字节数确认被拒为 PackageMismatch,重复确认同一份内容返回同一身份,去掉守卫时变红
- 里程碑勾选第 3 条并写明「额度超限」按包/文件/展开量/条目数/压缩比上限口径验收(该链路无按用户配额)、第 4 条只剩并发不混写待补
2026-09-28 17:48:06 +08:00
kdletters
9944136b0f
核对游戏分发阶段 A 的服务端验收:勾选一条并列出其余五条缺口
...
- 阶段 A 第 2 条勾选:真实 ZIP 字节与展开清单由 module-game-distribution 13 passed 覆盖,包上限/分片/422 由 api-server package_ 6 passed 覆盖
- 未勾选五条逐条写明缺口:跨账号读写撤销缺接口级用例、额度超限与失败后旧对象/公开状态不变缺断言、并发上传不混写缺用例、响应丢失与未知结果区分缺用例、gameDistribution.ts 手写 DTO 无 Rust↔TS 一致性检查
2026-09-28 17:43:09 +08:00
kdletters
133b506d35
整理 UI 编辑器实施计划的本轮核对段落
...
- 去掉重复的小节与误写入的制表符(上一轮 PowerShell here-string 里反引号被当成转义字符)
- 六条验收的证据与各自变异验证方式按条列在一个段落里
2026-09-28 17:40:44 +08:00
kdletters
3ea6c992bc
补齐 UI 编辑器整树渲染定位验收并收口六条验收
...
- tests/previewWorkspaceZoom.test.tsx 新增「树层按 root.offset.min 定位,原图与子节点随之一起移动」:断言树层 style.left/top 等于 root.offset.min 且根与子节点都挂在该层
- 变异验证:层偏移兜底改成 [0,0] 后只有该用例变红(1 failed / 9 passed)
- 里程碑第 2 条勾选,6 条验收全部有变异验证过的自动化证据(当前四套 77 passed);实施计划同步更新,剩余只有真机目视验收
2026-09-28 17:40:21 +08:00
kdletters
beaa6265da
补齐 UI 编辑器整树拖动的历史与保存落盘验收
...
- tests/uiEditorPage.test.ts 新增「整树拖动写回一个历史条目,保存后能原样读回」:断言 setTreeOffset 进历史、undo/redo 往返、save 落盘快照里的树偏移就是新值
- 变异验证:setTreeOffset 里 commit 换成 applyState(改状态不进历史)后只有该用例在 canUndo 处变红(1 failed / 37 passed)
- 里程碑记录第 2 条已覆盖的两句与仍缺的一句(渲染层随 root 平移的断言方式),并引用既有 pointerup/取消不写回的用例
2026-09-28 17:39:01 +08:00
kdletters
46cb3f1908
补齐 UI 编辑器 activeImageId 与联合适配两条验收断言
...
- tests/uiEditorPage.test.ts 新增「预览里选择节点不改变左侧选中的界面图」:断言 canvas.selectNode 只改节点选中、不改 hook 暴露的 activeImageId,Inspector 部件切换同理
- tests/previewWorkspaceZoom.test.tsx 新增「进入时按全部树的联合边界适配,选中节点不重新适配」:两棵树横跨 1600 单位时联合适配缩放必须小于单棵,选中态重渲染后缩放不变;夹具补齐第二棵树的界面图(否则不进联合边界)
- 变异验证:selectNode 里加 setActiveImageId 只红那条新用例(1 failed / 36 passed);allBounds 接 slice(0,1) 只红联合适配用例的第一处断言(1 failed / 8 passed)
- 里程碑勾选第 5、6 条验收,剩余未覆盖条目收敛到 1 条(拖动进 undo/redo 与保存恢复)
2026-09-28 17:36:50 +08:00
kdletters
e2964b5f31
补齐 UI 编辑器 root 无 resize 控制点的验收断言
...
- tests/uiEditorPreview.test.tsx 在同一条 handle 可见性用例里补 root 断言:选中 root 时不出现任何控制点,选中 child 时恰好 8 个
- 变异验证:去掉 handle 渲染条件里的 !isRoot && 后只有该断言变红(1 failed / 10 passed),改回后四套用例 73 passed
- 里程碑勾选第 3 条验收,剩余未覆盖条目从 4 条收敛到 3 条
2026-09-28 17:33:58 +08:00
kdletters
84e7aacf80
补齐 UI 编辑器三个独立开关的默认值与独立性验收
...
- tests/uiEditorPage.test.ts 新增「默认显示框线与原图、隐藏组件,且三个开关互相独立」:渲染真实页面后断言三个复选框初始值,并逐个切换确认互不影响
- 变异验证:把 view/ui-editor/index.tsx 的 showFrame 初值改为 false 后只有该用例变红,改回后四套用例 73 passed
- 里程碑勾选第 4 条验收;并把「预览选择不改 activeImageId」一条的执行方式改成走 hook 暴露的 activeImageId(左侧列表只有 CSS class 标记,无 aria)
2026-09-28 17:32:06 +08:00
kdletters
931250e99a
补齐 UI 编辑器多树排布验收项并列出其余五条缺口
...
- tests/uiEditorState.test.ts 新增「新树默认落在所有现有树右侧并与最小 top 对齐」:直接跑 createTree 入口,断言第一棵 [0,0]、第二棵按已有右边界加 UI_TREE_PADDING、把第二棵下移后第三棵仍按最小 top 对齐
- 变异验证:把 deriveTreeOffset 的 minY 改成取最后一棵树的 top 后只有该用例变红,改回后四套用例 72 passed
- 里程碑勾选第 1 条验收,并把其余 5 条各自缺什么断言逐条写清(root handle、三个开关默认值、activeImageId、首次联合 fit、拖动 undo/redo 与保存恢复)
2026-09-28 17:30:28 +08:00
kdletters
e92d5d5f92
记录 External 场景路由受理 smoke 的本机环境阻塞
...
- 里程碑与实施计划写明:deploy/env/api-server.env 不存在、无监听中的 dev 端口,npm run check:api-server-env 缺 TIANTOKEN_BASE_URL / TIANTOKEN_API_KEY,该 smoke 在本机不具备执行条件
2026-09-28 17:28:15 +08:00
kdletters
69d798e484
补齐 External v1 场景路由的客户端请求构造用例并勾选该验收项
...
- 新增 background_stage_posts_the_dedicated_scene_route_and_its_ledger_matches:用规范图夹具驱动真实生成链路,断言背景阶段只发一次 scenes 路由 POST、正文是结构化场景意图(sceneContent/stylePreset=custom/customStyle/referenceImageSrcs,且没有 assetKind/prompt),成功后不留在途账本
- 变异验证:把场景分支的路由改回通用图片路由后该用例变红,改回后恢复绿
- External v1 场景路由里程碑勾选「客户端定向测试」一项,逐条记录账本、恢复与 reuse/regenerate 的实跑证据;剩余仅本地真实栈受理 smoke
2026-09-28 17:25:55 +08:00
kdletters
cc01e304c0
External 场景路由里程碑:账本侧取证补全,客户端请求构造保持未勾选并写明原因
...
- 补记两条实跑通过的账本侧用例:retained_stage_recovery_accepts_the_same_reference_contract_as_submission 与 legacy_route_background_registration_still_counts_as_valid_base
- 写明客户端「背景阶段命中新路由且为结构化字段」缺用例的技术原因:场景分支是内联字面量,且 Scene 必须带规范图引用,单独立用例需要先补规范图上传夹具;不使用镜像断言凑验收
2026-09-28 17:07:33 +08:00
kdletters
6efe7334da
记录 AGC background_agent_runtime 家族的本机 Timeout 抖动与判据
...
- pitfalls 新增条目:宽过滤 background 一次匹配 138 条慢用例,本轮 47 passed / 91 failed;给出 A/B 判据与本轮实测(一条用例合并前后安静状态都 3/3 通过,两条在合并前的分支尖上同样失败)
- ExternalV1 场景路由里程碑与实施计划的本轮核对改为采信 external_generation_state 10 passed,并把「新路由结构化字段 / reuse-or-create 与 regenerate 端到端」保持未勾选
2026-09-28 17:00:21 +08:00
lhk229
2d22971477
简化策划agent工作流 ( #522 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m4s
Project CI / Frontend tests (push) Successful in 2m10s
Project CI / Native shell tests (push) Successful in 6m9s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m30s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m48s
Project CI / AI game creator shell web tests (push) Successful in 1m24s
Project CI / Repository checks (push) Successful in 1m51s
Reviewed-on: #522
2026-09-28 16:27:18 +08:00
kdletters
b95fd9e5a4
共享记忆补记 AGC 事件驱动与维护态两条长期约定
...
- team-conventions 增加一条:正式状态变化走 Rust 事件 + 一次受控快照读取、不轮询,Direct 活动回合唯一事实源是 Direct 线程管理器
- team-conventions 增加一条:维护态由 Rust 统一分类并广播单一事件,渲染层只订阅、不解析 HTTP
2026-09-28 16:10:30 +08:00
kdletters
52a3a59a41
收口游戏分发阶段C发布资料AI生成计划的实现状态
...
- 状态改为 implemented-awaiting-runtime-acceptance,记录服务端建议路由、面板定价与封面生成、截图链路三处实现位置
- 记录本轮实测:Vitest 19 passed(发布服务 + 发布面板),api-server publish_metadata 3 passed
- 记录 generationInputs 补写点随渲染层传输下沉移到 Rust 的同源修复(2026-09-28)
2026-09-28 16:04:56 +08:00
kdletters
c7df10b394
把渲染层下沉的现行口径同步回主规范与事件化里程碑
...
- 主规范新增「AGC 客户端现行分工:离线前端、事件驱动与维护态出口」一节,写明网络与凭据归 Rust、活动回合唯一事实源是 Direct 线程管理器、维护态由 Rust 分类并单一事件广播、失败文案只展示宿主脱敏摘要
- 事件化里程碑的范围与验收第 2 条改为按线程管理器的登记/进度内容变化/收口三处通知点表述,并补 2026-09-28 对齐说明
2026-09-28 15:59:11 +08:00
kdletters
f5424ce805
按合并后的真实状态收口六组计划的状态与取证
...
- 游戏分发阶段A领域合同:状态改为 implemented-awaiting-runtime-acceptance,记录 module-game-distribution 13 passed
- 游戏分发目录详情与在线游玩:里程碑状态与阶段 A 行按 A/B/C 已落地的事实更新,阶段门禁关系保持不变
- 项目客户端占用锁收敛:里程碑与实施计划状态收口,记录 write_lock 21 passed 与 gui_ 31 passed
- UI编辑器多树预览与独立显示开关:里程碑与实施计划状态收口,记录 4 个套件 59 passed
- AGC模型目录上游同步:里程碑与实施计划状态收口,记录上游提交 4234a21ee 与本地真实上游 smoke 出处
- ExternalV1游戏场景生成路由:里程碑与实施计划状态收口,勾选已由 scene 套件 18 passed 覆盖的验收项
2026-09-28 15:53:37 +08:00
kdletters
00537fe742
补记渲染层下沉与 master 对齐里程碑的本轮门禁结果
...
- 里程碑取证改为逐条列出本轮实际通过的门禁命令与结果,不再指向合并提交说明
- 记录 check:native-shells:agc-rust-crates 在本机 spawnSync npm.cmd EINVAL 的环境限制与对应替代命令
2026-09-28 15:24:45 +08:00
kdletters
1e62d8317a
合并 origin/master 到 AGC 渲染层下沉分支并完成三处对齐
...
- 活动回合事实源统一到 Direct 线程管理器:删除 direct_runtime 的第二份快照,接单、进度内容变化与收口各广播一次活动回合变更事件
- 平台维护态判定移入 Rust 并在渲染层只订阅单一事件:新增 platform_maintenance 模块与各平台 facade 错误分支的分类入口
- 封面生成请求补 generationInputs.source,保持队列回填后仍能拿到平台素材 ID
- 渲染层按 master 5398a53e6 退役诊断详情入口:删除 agentRuntimeErrorDetail 与「查看详情」交互及其专属用例
- 冲突收口:nginx SPA 白名单、.gitignore、mobile 检查脚本、capabilities 描述取上游,两个已退役计划随上游删除,文档保留双方条目
- 新增并回写本里程碑取证、decision-log 与 pitfalls 的 2026-09-28 记录
2026-09-28 15:07:30 +08:00
kdletters
74b83aa1a8
新增 AGC 渲染层下沉与最新 master 对齐的里程碑与实施计划
...
- 新增【里程碑】AGC渲染层下沉与最新master对齐-2026-09-28.md,明确活动回合事实源统一、封面队列回填、维护态出口三项验收
- 新增【实施计划】AGC渲染层下沉与最新master对齐-2026-09-28.md,列出五步任务与证据要求
2026-09-28 14:28:16 +08:00
kdletters
2b06394bcc
计划收口与共享记忆更正
...
- 63 份计划补「逐条勾选依据 / 本轮复验」并统一为 implemented-awaiting-runtime-acceptance,未勾选从 85 条降到 43 条;删除 4 份已收口临时计划,结论回写权威文档。
- 新增待办:主站 SPA allowlist 与前端路由源不一致、高风险审批 Rank 的 PRD 骨架、引用输入区后续收口、计划收口剩余项索引。
- 更正共享记忆:渲染层 HTTP 能力退役、Windows 门禁限制与可跑性、Provider 配置 Debug 脱敏规则、游戏分发本地证据与多轮变异验证记录。
2026-09-28 14:16:11 +08:00
kdletters
e1fe1837a2
后台模板上传弹窗表头层级修正与仓库卫生
...
- AdminAgcTemplatesPage 的上传弹窗把 TableHeader(thead)当列头使用,生成出 th > tr > thead 的非法层级;修正为 TableHeader > TableRow > TableHead,并补列头角色与层级回归。
- .gitignore 补 /server-rs/crates/*/server-rs/.data/:api-server 的相对 outbox 默认路径在嵌套 cwd 下会在仓库内生成内嵌数据目录,避免其被误提交。
2026-09-28 14:16:00 +08:00
kdletters
01394ed238
门禁加固与 Windows 可跑性
...
- 新增 scripts/check-generated-bindings.mjs 并接入 lint 与 ai-game-creator-shell:check:rust:crates:重跑 export_bindings 前后逐字节比对共享契约绑定。
- check:native-shells 的 AGC 边界改为负向门禁:渲染源码不得出现 fetch(/XHR/EventSource/sendBeacon/WebSocket/plugin-http,客户端 capability 不得授予 http:default。
- check-pingora-gateway-smoke 在 Windows 上找 pingora-gateway.exe,并修掉「API 并发保护」先关客户端连接再读响应的竞态。
- mobile-shell 三个 smoke 改成固定命令串启动 npm(绕开 npm.cmd EINVAL 与 DEP0190),desktop-shell 的 stage-release-binary 改用 fileURLToPath 修掉 F:\F:\… 路径拼接。
- vitest.config.ts 白名单补回现役根用例;三份 nginx 模板的 SPA allowlist 补回 /components 与 /design-system。
2026-09-28 14:15:50 +08:00
kdletters
e7309ad71b
server-rs 快照回收可测化与 Provider 配置脱敏
...
- project_snapshots 抽出 plan_project_snapshot_reclamation 纯函数并新增 3 条用例:只回收上一版登记过的对象、上一版清单读不到时一张都不删、单轮回收有硬上限。
- platform-llm / platform-oss / platform-wechat / platform-audio / platform-hyper3d / platform-image / platform-matting / platform-speech 的配置类型改为手写脱敏 Debug,只输出枚举、数值、有界标识与 <redacted> 占位。
2026-09-28 14:15:31 +08:00
kdletters
d6c939fa31
AGC 原生侧新增平台 facade,退役渲染层 HTTP 能力
...
- 新增 account_api、auth_session、platform_asset_upload、game_distribution_publish、llm_catalog、workspace_preferences 与 error_report::submit:凭据、origin、HTTP、队列等待、幂等键与导入队列全部由 Rust 持有。
- 删除 capabilities/main.json 的 http:default 授权与主窗口的 tauri-plugin-http 注册,Cargo.toml / Cargo.lock / AGC package.json 与根 package-lock.json 同步移除该依赖。
- 修复 workspace_preferences 重复 #[test] 造成的分片门禁「同一用例被分到两片」误判,并同步该模块的会话存储与偏好读写用例。
2026-09-28 14:15:16 +08:00
kdletters
8701f43f75
AGC 渲染层网络与状态下沉 Rust,并修复画布交互与失败文案
...
- 删除渲染层传输层:services/clientApi.ts、clientHttp 的 fetchClientHttp 与超时封装整体退场,账户、认证、素材直传、错误上报与游戏分发发布改走 Rust typed command。
- 新增宿主封装:accountHost、editorAssetHost、platformSessionRetry、agentRuntimeErrorDetail 与 features/app-shell/workspacePreferences;渲染层不再读写 access token / refresh cookie,localStorage 只剩测试态旧键迁移 shim。
- 修复 DirectProject 失败文案 v2 映射与「查看详情」按需读取,画布标签面板高度夹紧、框选每帧重算、文档预览入口与场景标题栏 key、资源筛选面板样式。
- 补齐与调整回归:accountHost、agentRuntimeErrorDetail、clientAuthHost、clientHttp、platformSession、platformSessionRetry、resourceFilterPanelStyle、directThreadChatSubscription 等定向用例,并清理测试 harness 中无调用方的残留。
2026-09-28 14:15:02 +08:00
suzmii
c22eb38962
按第五轮评审收尾 M3:跨平台用例、--no-bundle 与并发口径对齐
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Frontend tests (pull_request) Failing after 43s
Project CI / Backend tests (pull_request) Successful in 3m32s
Project CI / Repository checks (pull_request) Successful in 1m52s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m23s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m26s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m24s
Project CI / Native shell tests (pull_request) Has been cancelled
- package_layout 的 source_candidates 用例改用 Path 构造期望值(Windows 上 path.join 产出反斜杠,硬编码正斜杠会让该用例在 Windows 必红)
- 运维文档与技术方案改为「--no-bundle 也执行 staging、只跳过总号发布」;M1 验收行里已删除的 AGC_SKIP_RESOURCE_STAGING 表述同步
- 技术方案 §4.3 第 8 条与风险表的并发口径改为「不做并发支持:失败可读、保留已生成 staging,需要并发时外部串行化」,与实现一致
- 评审结论(Windows 真机):touch build.rs 后 resources 90 个文件 path/size/mtime 零变化;第二次 cargo build 1.13s fresh;三分支产物齐备;幂等、内容变更触发重建、fail-closed 均通过
2026-09-28 12:41:11 +08:00
suzmii
ceca4a7669
Merge branch 'fix/agc-rust-staging-idempotency' into feat/agc-bundled-resources-m3
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m24s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 53s
Project CI / Native shell tests (pull_request) Failing after 1m19s
Project CI / Frontend tests (pull_request) Failing after 57s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 5m15s
Project CI / Backend tests (pull_request) Successful in 3m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m28s
Project CI / Repository checks (pull_request) Successful in 1m55s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m50s
2026-09-28 12:19:31 +08:00
suzmii
55b881de49
Merge branch 'master' into fix/agc-rust-staging-idempotency
Project CI / AI game creator shell Rust crates (pull_request) Successful in 59s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m17s
Project CI / Backend tests (pull_request) Successful in 3m56s
Project CI / Frontend tests (pull_request) Successful in 2m8s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m31s
Project CI / Native shell tests (pull_request) Successful in 5m54s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m10s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m46s
Project CI / Repository checks (pull_request) Successful in 2m24s
2026-09-28 12:12:59 +08:00
suzmii
8f59c034f5
Merge pull request '修复 hook 隔离用例把探针自身写入当成被测行为' ( #523 ) from fix/git-hooks-index-snapshot into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m25s
Project CI / Backend tests (push) Successful in 4m13s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m44s
Project CI / Frontend tests (push) Successful in 2m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m13s
Project CI / Native shell tests (push) Successful in 6m19s
Project CI / AI game creator shell web tests (push) Successful in 1m59s
Project CI / Repository checks (push) Successful in 2m35s
Project CI / AI game creator shell Rust crates (push) Successful in 55s
Reviewed-on: #523
2026-09-28 12:03:55 +08:00
suzmii
053c57974e
Merge branch 'master' into fix/git-hooks-index-snapshot
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m3s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m30s
Project CI / Backend tests (pull_request) Successful in 3m58s
Project CI / Frontend tests (pull_request) Successful in 2m4s
Project CI / Native shell tests (pull_request) Successful in 6m2s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m29s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m23s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m57s
Project CI / Repository checks (pull_request) Successful in 2m35s
2026-09-28 11:45:09 +08:00
suzmii
acf021de2a
按评估结论落地:门禁交叉校验、CLI 缺值校验、编辑器分支覆盖与文档
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m19s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m51s
Project CI / Native shell tests (pull_request) Failing after 1m10s
Project CI / Frontend tests (pull_request) Failing after 43s
Project CI / Backend tests (pull_request) Successful in 3m26s
Project CI / Repository checks (pull_request) Successful in 1m51s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m29s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m33s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m34s
- 门禁新增交叉校验:plugin 必须指向真实插件目录、features 必须存在于 shell crate 的 [features]、所有声明路径必须是仓库内相对路径(拒绝绝对路径与 ..)
- 准备步骤 CLI:--target/--destination/--features 缺值直接失败(不再静默回退宿主目标),--features 空值也拒绝
- 用例:fixture 补齐 agc-unity-editor/agc-godot-editor/agc-cocos-editor,新增「编辑器分支产物按 prepared 与 library staging 交付」用例;godot_bundle 补 validate 负例单测
- 运维文档:dev 构建下客户端读 target/debug/plugins/**,改资源要重跑准备步骤
- 未做(已按评估结论记录):P2-2 运行时常量锁定需要先把 nativePayloads 也 emit 进 Rust 声明,留作后续
- 验证:准备步骤 14/14、发布入口 39/39、dev 入口 12/12、godot_bundle 19 通过、声明门禁一致、cargo check 通过
2026-09-28 11:36:34 +08:00
suzmii
3fba76fd6e
按审计结论收口 M3:CI 接线、并发口径、feature 单一推导与文档对齐
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Native shell tests (pull_request) Failing after 1m12s
Project CI / Frontend tests (pull_request) Failing after 44s
Project CI / Backend tests (pull_request) Successful in 3m28s
Project CI / Repository checks (pull_request) Successful in 1m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m20s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m31s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m14s
- CI:把 bundled-resources:test(13 条,跨平台、注入假执行器)接进 ai-game-creator-shell:check:web,Linux CI 即可覆盖准备步骤逻辑
- 并发:按「无实际场景不做并发支持」定论——不加锁,但替换失败改为可读错误并保留已生成的 staging;技术方案 §4.3 与风险表同步改写
- feature:新增 cargo-features.resolveEditorFeatures 作为唯一推导入口(env > 命令行 --features > 平台默认),dev 与发布入口的 cargo 参数、随包资源准备步骤共用同一集合;--no-bundle 也执行 staging(app 构建本身需要随包资源),只跳过总号发布
- 文档:pitfalls 的校验收口限定到 source 派生内容;里程碑验收清单按实况修正(命令 --、prepared 只查存在性、Windows 侧已复跑)
- 验证:准备步骤 13/13、发布入口 39/39、dev 入口 12/12、声明门禁一致
2026-09-28 10:54:29 +08:00
suzmii
3b4f9b2e10
按系统性审计修复 M3:指纹反判断、守卫死代码、fail-open 与卫生项
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Native shell tests (pull_request) Failing after 1m26s
Project CI / Frontend tests (pull_request) Successful in 1m36s
Project CI / Backend tests (pull_request) Successful in 3m37s
Project CI / AI game creator shell web tests (pull_request) Failing after 34s
Project CI / Repository checks (pull_request) Successful in 1m49s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m37s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m19s
- P1-1:pluginSourceFingerprint 的判断取反(prepared 内容与交付态真正进入指纹);pluginTreeMatches 的「当前目标/feature 下不该存在却存在 → 重建」从死代码修活
- P1-7:package_layout 的 `sha256_file(x).ok() != ...` 改为 map_err 传播,两侧读失败不再被判为「相等」
- P3-2:copyNativePayloads 的 'plugins' 字面量改由声明 sourceDirectory 派生
- P3-5:payload 交付内容一致时跳过写入(命中缓存保持零写入、时间戳稳定)
- P3-7:门禁提示里的脚本名改为 agc:bundled-resources:sync
- P3-8:删除已无写入方的 resources/cocos-editor-bridge 占位目录
- P2-4:root 包装脚本补结尾 `--`,文档里的 prepare 命令可直接复制执行
- 验证:工具用例全绿、声明门禁通过
2026-09-28 10:20:09 +08:00
suzmii
547fb0dbce
按第三轮复测修复 M3:dry-run 零写入、所有权先行、指纹与门禁补口
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Backend tests (pull_request) Successful in 3m46s
Project CI / Frontend tests (pull_request) Successful in 1m53s
Project CI / Native shell tests (pull_request) Successful in 5m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m51s
Project CI / Repository checks (pull_request) Successful in 1m57s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m26s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m39s
- P2:preparePlugins 重排——dry-run 只做只读判断即返回,预缓存交付不再排在 dry-run 之前;所有权断言提到任何写入之前
- P3:pluginSourceFingerprint 放开 origin=source 过滤(prepared 内容哈希分支可达),库文件与 payload 交付态纳入指纹,pluginTreeMatches 增加「不该存在却存在 → 需要重建」判定
- P3:门禁交叉校验 nativePayloads[].destinationSubdirectory 必须是同插件 origin=prepared 的子目录之一
- P2:里程碑验收清单注明 Cocos payload 只在 injection 构建交付并给出对应命令;dry-run 用例补 injection feature 覆盖
- 夹具补齐 agc-cocos-editor 插件(所有权检查要求目标插件真实存在)
- 验证:工具用例 13/13、声明门禁通过
- 已知缺口:injection 构建后切回默认 feature,随包目录里陈旧 payload 的清理尚未生效(已记在 PR)
2026-09-28 01:03:40 +08:00
suzmii
06ffa7b6ac
按复测修复 M3:payload 门槛与交付、缓存键、条件写反与门禁覆盖
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m41s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m8s
Project CI / Backend tests (pull_request) Successful in 3m50s
Project CI / Frontend tests (pull_request) Successful in 1m58s
Project CI / Native shell tests (pull_request) Successful in 5m55s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m12s
Project CI / Repository checks (pull_request) Successful in 1m51s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m24s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m51s
- P0:native/payload 补 features=["cocos-editor-injection"](与 nativePayloads 同门槛,保持迁移前语义),Windows 默认 feature 下不再无条件要求该目录
- P0:copyNativePayloads 真正改用 destinationFileName(此前声明了却仍写 sourceFileName,落盘成 cocos_editor_bridge.dll 而运行时找 cocos-editor-bridge.dll)
- P1:payload 交付移到插件缓存短路之前(先默认构建、之后开 injection 不再整条跳过),并把交付物(含缺失态)纳入 pluginSourceFingerprint,删掉它必须导致重建
- P2:修正 pluginTreeMatches 里被写反的条件(原为 || 短路,导致内容比对整体失效)
- P2:门禁新增 validateExtendedDeclarations,覆盖 prepareSteps/nativePayloads 的字段与引用完整性(含 destinationFileName)
- P2:删除 godot_bundle 的 stage/source_files 及其单测(构建脚本不再有调用方),清掉遗留的 PathBuf 导入
- P3:CLI 支持 --features=a,b 形式
- 验证:工具用例 13/13;声明门禁通过;cargo fmt/cargo check 通过
2026-09-28 00:50:48 +08:00
suzmii
e4634928c6
按评审修复 M3:校验按插件收敛、Cocos 链路与 Godot 指纹、门禁与文档收口
...
Project CI / AI game creator shell Rust crates (pull_request) Failing after 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m7s
Project CI / Backend tests (pull_request) Successful in 3m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 6m9s
Project CI / Frontend tests (pull_request) Successful in 1m52s
Project CI / Native shell tests (pull_request) Successful in 6m4s
Project CI / Repository checks (pull_request) Successful in 2m18s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m40s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 9m42s
- P0:validate_prepared_payloads 遍历所有插件 × 所有子目录 → 与 libraryStaging 分支对称地按插件收敛(声明新增 subdirectories[].plugin,Rust 加 subdirectory_applies_to_plugin,工具复制与指纹同样按插件收敛)
- P1 Cocos:cargo 准备步骤改用该 crate 自身 manifest 并把 --target-dir 指回 src-tauri/target(原 -p + --features 被 cargo 以「cannot specify features for packages outside of workspace」拒绝);nativePayloads 拆出 sourceFileName(下划线)与 destinationFileName(连字符);native/payload 改为 origin=prepared 并绑定 cocos-bridge-build
- P1 Godot:补 fingerprint(roots ["."],排除 bin/.build/native-build,戳文件 bin/win-x64/.agc-source.sha256),不再每次真跑 build.ps1
- P2:pluginSourceFingerprint 对 prepared 产物改用内容哈希(避免无条件覆盖 mtime 导致每次全量重建)、库文件纳入指纹;pluginTreeMatches 对 prepared 只查存在性(内容由指纹覆盖,顺带缓解 90MB exe 的哈希开销);GODOT_BUNDLE_FILES 缺清单即失败,不再静默退化为空数组;CLI 传 log 并新增 --features;用例正则兼容 Windows 路径分隔符;主规范 §4.8 残留的 AGC_SKIP_RESOURCE_STAGING 已清
- 安全:撤出误提交进 .env.local 的真实 token(还原模板并 force-push 分支尖端)
- 验证:npm run agc:bundled-resources:check 通过;cargo fmt + cargo check --no-default-features 通过(含新 plugin 字段与按插件收敛的校验);工具用例 12/13(余 1 条为夹具断言待修)
2026-09-28 00:23:26 +08:00
suzmii
faa510e999
AGC 编辑器分支产物归位:构建脚本彻底退出写入
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / Backend tests (pull_request) Successful in 3m52s
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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
- 声明扩展:subdirectories 新增 origin=prepared;libraryStaging 增加 prepare/files;新增 nativePayloads 与 plugins.prepareSteps(程序类型、工作目录、指纹、必需产物)
- Godot 随包文件清单改由声明提供,godot_bundle::BUNDLE_FILES 从生成的编译期常量取值,不再各写一份
- 准备步骤按声明运行 powershell.exe -File build.ps1(Unity/Godot,Godot 移除 PSModulePath)与 cargo build -p cocos-editor-bridge --target … --features windows-injection,内容指纹命中且必需产物齐全时零写入,命令执行器可注入以便在 macOS 上覆盖调度与失败关闭
- build.rs 删除 prepare_unity_editor_helper、prepare_godot_editor_extension、stage_cocos_editor_payload、stage_build_generated_plugin_payloads 及辅助函数(415 → 193 行),只留只读校验,并新增已准备产物存在性与 Godot 随包库深度校验;AGC_SKIP_RESOURCE_STAGING 开关随写入分支删除
- 删除两份只含 staging 条目的 .taurignore;发布入口传 profile=release 以定位 Cocos 产物
- 文档:技术方案 §4.9/§8、M3 里程碑(含 Windows 验收清单)、运维文档、决策日志与排障经验同步
- 验证:准备步骤 13 条用例通过(三类准备步骤调度、指纹跳过、缺产物失败关闭、幂等);npm run agc:bundled-resources:check 通过;cargo check --no-default-features 通过且第二次 0.62 秒 fresh
- 未验证:Windows 真机(powershell/cargo 路径、产物归位、包内容一致性与客户端加载),按 M3 里程碑验收清单在 Windows 上确认
2026-09-28 00:17:49 +08:00
suzmii
89a51cfd5b
修复 hook 隔离用例把探针自身的索引写入当成被测行为
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m9s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m7s
Project CI / Frontend tests (pull_request) Successful in 2m0s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m41s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m40s
Project CI / Native shell tests (pull_request) Successful in 5m26s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m45s
- git-hooks.test.mjs 的隔离用例改为先跑会写索引的探针(git status 会刷新并重写索引的 stat 缓存),再取索引快照,避免把自身副作用断言成 hook fixture 的污染
- 该用例在 macOS 与部分 git 版本上必然失败(干净 origin/master worktree 上同样复现),修后 scripts/git-hooks.test.mjs 4/4 通过、npm run check:repository-ci 全绿
2026-09-27 23:01:33 +08:00
suzmii
0b19df467e
补充 M3 的 Windows 侧验收清单
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m32s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m45s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / Frontend tests (pull_request) Successful in 2m10s
Project CI / Repository checks (pull_request) Failing after 19s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m27s
Project CI / Native shell tests (pull_request) Successful in 5m56s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m34s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m19s
- M3 里程碑规范新增「验证步骤(Windows 侧执行清单)」:准备步骤单跑与幂等、构建期不再写随包资源、构建新鲜度、打包一致性、客户端启动与三类边界负例
- 明确记录方式:命令与输出贴回里程碑或 PR,未通过项回到主规范 §9
2026-09-27 23:01:20 +08:00
lhk229
5c648ab9c7
为美术包增加图片自动转码
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m38s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m50s
Project CI / Backend tests (pull_request) Successful in 4m11s
Project CI / Frontend tests (pull_request) Successful in 2m2s
Project CI / Native shell tests (pull_request) Successful in 6m14s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m30s
Project CI / Repository checks (pull_request) Successful in 1m52s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m46s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m51s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m23s
Project CI / AI game creator shell Rust crates (push) Successful in 57s
Project CI / Backend tests (push) Successful in 3m52s
Project CI / Frontend tests (push) Successful in 2m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m52s
Project CI / Native shell tests (push) Successful in 6m0s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m4s
Project CI / AI game creator shell web tests (push) Successful in 1m20s
Project CI / Repository checks (push) Successful in 1m51s
美术包在本地提交前将 JPEG 和 WebP 转为 PNG,保留有效 PNG 原字节
统一最终图片的扩展名、媒体类型与恢复摘要,保留原有透明度和大小校验
覆盖损坏下载重试、账本保留和清理、重复恢复零生成请求,并同步规范与排障记录
验证通过 106 项定向测试及格式、编码、文档索引和差异检查
2026-09-27 12:52:10 +00:00
suzmii
96b44d8660
补充上游元数据漂移的拒绝用例
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m23s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m56s
Project CI / Frontend tests (pull_request) Successful in 2m11s
Project CI / Repository checks (pull_request) Failing after 17s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m28s
Project CI / Native shell tests (pull_request) Successful in 5m31s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m31s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m41s
- 准备步骤用例新增一条:上游 codex-package.json 的 version/layoutVersion/entrypoint/resourcesDir 任一与声明不一致时必须拒绝且不落产物(共 10 条)
- 同步决策日志与 M2 里程碑规范里的用例计数
2026-09-27 19:01:00 +08:00
suzmii
33308a93e8
校正 M2 交付后的文档口径
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m7s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
- 技术方案修正症状层补丁清单:prune_staging/STAGED_* 只存在于未合入的补丁,主线从未有过
- 技术方案 §5.2/§5.3 记录过渡期已完成、.taurignore staging 条目保留到 M3 的原因,§8 M2 行标注已交付与 Windows 待复验
- M2 里程碑规范按证据勾选 macOS 侧可达的验收项,未验证项保持未勾选
- M1 实施计划标注 codex_package_metadata.rs 已在 M2 退役
2026-09-27 18:57:54 +08:00
suzmii
f6dad1950f
AGC 随包资源准备步骤接入 dev 与发布入口,构建脚本退出写入
...
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
- start-tauri-dev.mjs 在前端与配套后端就绪后、spawn Tauri CLI 之前调用准备步骤,并保留依赖注入供入口测试断言顺序
- build-release.mjs 的 runTauriBuild 与既有 stageRuntime 并列调用 stageBundledResources,tauri build --no-bundle 仍不强制 staging
- 声明新增 origin 字段:source 由准备步骤写,build 由构建脚本在产物生成后写;构建脚本删除 codex 与插件白名单的写入分支及 stage_plugin_file/copy_plugin_tree/copy_plugin_file,改为 stage_build_generated_plugin_payloads
- 插件随包工作区改为与仓库源码逐文件比对(清单 + 逐文件 sha256 + 整树符号链接),实现移入 build_support/package_layout.rs 复用单测
- 上游原生包元数据改由准备步骤按声明校验,build_support/codex_package_metadata.rs 因失去调用方删除
- 准备步骤改为同步实现,dev 与发布入口可直接调用而无需子进程
- 测试:build-release 39 passed(新增 stage、bundled、build 顺序与 no-bundle 不 staging)、dev 入口 12 passed(新增准备步骤先于 CLI 启动)、准备步骤 9 passed、package_layout 36 passed
- 文档:技术方案 §4.9 记录构建期写入边界,M1 里程碑标记完成,运维文档补入口接线与 resources/plugins 所有权,决策日志与排障经验同步
2026-09-27 18:56:44 +08:00
lhk229
155f0d316a
新增 external v1 游戏场景生成路由并迁移 AGC 美术包背景阶段 ( #516 )
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m50s
Project CI / AI game creator shell Rust crates (push) Successful in 1m15s
Project CI / Backend tests (push) Successful in 4m29s
Project CI / Native shell tests (push) Successful in 6m27s
Project CI / Frontend tests (push) Successful in 1m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m12s
Project CI / AI game creator shell web tests (push) Successful in 1m33s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m3s
Project CI / Repository checks (push) Successful in 2m1s
- api-server 新增 POST /api/external/v1/editor/scenes/generations,复用 editor:image-generate scope、幂等键和站内场景生图队列
- editor_project.rs 抽取站内与外部共用的场景生图 payload 构造函数,站内 handler 改为调用共享函数
- 同步更新 external v1 OpenAPI 契约与 MCP 派生排除标记,登记 docs/README.md 索引
- AGC 客户端美术包背景阶段改走新场景路由,stylePreset 固定 custom + customStyle 保留现有风格文案
- external_generation_state 快照与 recovery_scan 账本白名单支持新场景路由
- direct_runtime 背景资源识别同时兼容新场景路由与旧通用路由,新增旧路由回放测试
- 更新 genarrative-external-editor-api skill 参考文档
- 新增主规范、里程碑规范与实施计划三份 SDD 文档
Reviewed-on: #516
2026-09-27 18:39:01 +08:00
suzmii
a4b103a1b0
补充 AGC 随包资源归位的 M1 决策与文档
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m54s
Project CI / Backend tests (pull_request) Successful in 3m56s
Project CI / Frontend tests (pull_request) Successful in 1m43s
Project CI / Native shell tests (pull_request) Successful in 6m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m8s
Project CI / Repository checks (pull_request) Successful in 2m6s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m39s
- 技术方案新增 §4.8 单一声明与实现形态(混合),§8 更新 M1 交付与停止条件,§9 未决问题 1 收口为已定
- M1 里程碑规范记录已定决策与校验收口边界;实施计划补充已定决策与实际验证命令
- M2 里程碑规范的依赖与前置条件补记 M1 已交付的准备步骤与声明门禁
- 开发运维文档补充声明、生成器、门禁、准备步骤与只读校验的用法;决策日志与排障经验同步本次口径
2026-09-27 18:36:09 +08:00
suzmii
05d455d4ef
构建脚本改为按声明生成并只读校验随包资源
...
- 平台布局、插件随包子目录与跳过规则、Codex 上游候选路径与第三方声明来源全部改由声明提供,删除脚本内的字面量
- 新增只读校验:Codex 目录校验清单 schema/平台/版本、文件集合、逐文件 sha256、第三方声明、可执行位与白名单外文件;插件目录校验必需组件与整树符号链接
- AGC_BUILD_TARGET 的 rustc-env 移到无条件路径(保留职责),新增 AGC_SKIP_RESOURCE_STAGING=1 以在既有产物上只跑校验
- 删除脚本内与 package_layout 重复的 sha256 实现,复用同一份
2026-09-27 18:36:04 +08:00
suzmii
d8b37e0da9
新增 AGC 随包资源准备步骤(Codex 与插件两条纯复制路径)
...
- 新增 scripts/prepare-bundled-resources.mjs:按声明解析目标与替换单位,用上游 package-lock 的 resolved/integrity 组成缓存 key,写临时目录后原子替换,命中缓存不重写任何文件,只替换本工具产物,失败即退出并给出可执行提示
- Codex 路径按声明复制组件、保留受版本控制的第三方声明、按现有字节格式生成 manifest.json;macOS 双架构整体 staging
- 插件路径按声明的子目录白名单与跳过规则复制,顶层出现非本工具条目即失败
- 新增 scripts/prepare-bundled-resources.test.mjs:9 条用例覆盖 staging 结果、幂等(内容与时间戳)、上游缺失、目标不支持、目录被非本工具占用、dry-run 不落盘与白名单过滤
- .gitignore 忽略准备步骤产生的 staging 临时目录
2026-09-27 18:36:03 +08:00
suzmii
21c3bd7a2b
引入 AGC 随包资源的单一声明与生成门禁
...
- 新增 build_support/package-layout.json:Codex 三元表与组件白名单、上游候选路径、第三方声明来源、插件随包子目录与跳过规则、平台与 feature 门槛的唯一人工声明
- 新增 scripts/check-package-layout.mjs:由声明生成 build_support/package-layout.generated.rs,并校验目标唯一、可执行组件属于白名单、每个目标恰有一条第三方声明来源、codex.version 与应用锁定的 @openai/codex 一致
- 新增 build_support/package_layout.rs:声明类型、插件与平台门槛判定、逐块 sha256、随包 Codex 目录只读校验及其单测
- codex_bundle.rs 的布局与版本常量改由声明提供,公开接口与取值不变;src/main.rs 在测试期引入该模块以复用既有单测
- package.json 新增 bundled-resources:check/sync 并接进 typecheck 链,根 package.json 提供 agc:* 别名
2026-09-27 18:35:57 +08:00
suzmii
756297d2df
补充 AGC 随包资源 staging 归位里程碑与首段实施计划
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m0s
Project CI / Backend tests (pull_request) Successful in 4m21s
Project CI / Frontend tests (pull_request) Successful in 1m59s
Project CI / Native shell tests (pull_request) Successful in 6m0s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m25s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m27s
Project CI / Repository checks (pull_request) Successful in 1m50s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m53s
- 新增三份里程碑规范:资源改由校验器读入、生成接入 dev 与发布入口、编辑器分支产物归位与症状层补丁清理
- 新增首个里程碑实施计划:修改边界、实现顺序、验证命令、风险与回滚点、待确认的实现形态
2026-09-27 16:59:42 +08:00
suzmii
e02811588c
补充 AGC 随包资源 staging 归位技术方案
...
- 新增 docs/technical/【技术方案】AGC随包资源staging归位-2026-09-26.md:记录根因证据(tauri-build 把随包资源登记成 build script 输入)、准备步骤合同、构建脚本退化边界、入口接线、验收判据、风险与里程碑拆分
- docs/README.md 挂入文档索引
2026-09-27 16:59:42 +08:00
suzmii
e1780b21b0
修复 AGC dev 客户端不再依赖本机 sccache 配置
...
- start-tauri-dev.mjs 启动 Tauri CLI 前复用 scripts/dev.mjs 的 buildLocalRustProcessEnv,本地 Rust wrapper 由脚本决定而不是本机 Cargo 配置
- 新增 buildTauriDevProcessEnv 组装 dev 端点环境并导出,供测试直接断言
- 补 3 条用例:配置为 sccache 时改用 /usr/bin/env 直连 rustc、未配置时清空两个 wrapper 变量、自定义 wrapper 保留且不改写调用方 env
- pitfalls 与开发运维文档补记 AGC dev 入口的 wrapper 口径
2026-09-27 16:59:40 +08:00
lhk229
6ed1fd26ed
修复 Linux 沙箱命令退出回收的偶发竞态
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m7s
Project CI / Backend tests (pull_request) Successful in 3m49s
Project CI / Frontend tests (pull_request) Successful in 1m53s
Project CI / Native shell tests (pull_request) Successful in 5m51s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m57s
Project CI / Repository checks (pull_request) Successful in 1m55s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m19s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m24s
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m9s
Project CI / Backend tests (push) Successful in 4m49s
Project CI / Frontend tests (push) Successful in 2m9s
Project CI / Native shell tests (push) Successful in 6m54s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m56s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m14s
Project CI / Repository checks (push) Successful in 2m2s
Project CI / AI game creator shell web tests (push) Successful in 1m30s
统一正常退出、取消和超时的有界进程组退出确认,保留归属校验
提前记录启动身份,修补终态协议错误的清理及输出任务回收
补充确定性竞态回归并同步运行时规范和排障记忆
保持现有 CI 并行、分片和重试策略不变
2026-09-24 16:45:07 +00:00
lhk229
4912aa4df0
删除创作首页登录送泥点营销文案
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m34s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m14s
Project CI / Backend tests (pull_request) Successful in 3m51s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m40s
Project CI / Frontend tests (pull_request) Successful in 2m0s
Project CI / Native shell tests (pull_request) Successful in 5m52s
Project CI / Repository checks (pull_request) Successful in 2m8s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m17s
删除 CreationLandingView hero 区“登录即送 100 泥点,可以免费制作 50 个素材”文案
删除 CreationLandingView.test.tsx 中对应的文案断言
清理 index.css 中已无调用方的 creation-landing__hero-benefit 样式
更正 decision-log 中已过期的“注册赠送固定为 100 泥点”决策记录,注明金额由线上钱包配置决定
2026-09-24 16:08:42 +00:00
k88936
132f96581a
DirectProject 命令入队化:放行接线、队列移除命令与词表切换
...
- 命令改名 enqueue_direct_codex_turn:跑完入队检查后只入队,返回结构化的入队失败载荷
- direct_turn_accept.rs 改为 direct_turn_dispatch.rs:放行占用对象改为接管 Thread Manager 认领好的那一轮
- 新增 kick_direct_queue_dispatch:入队、占用释放与中止路径共用同一个幂等放行点
- 放行之后取调用身份、落盘用户条目、下发条目、跑整轮,失败一律收口成回合失败
- 新增 remove_direct_project_pending_turn 命令,取消一条还没放行的待发消息
- 队列条目补 analytics_attempt_id:埋点身份跟着入队走,放行不重算
- DirectTurnRejection 改名 DirectTurnEnqueueFailure,新增 QueueFull 变体
- 退役 accept_turn / accept_direct_thread_turn,测试改用 accept_for_test 建占用
- 前端与生成绑定同步改名,DirectTurnRejection.ts 换成 DirectTurnEnqueueFailure.ts
2026-09-24 21:36:22 +08:00
k88936
b43a663fe2
修复移动端顶栏折行与头像裁剪弹窗被底部主菜单遮挡
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m5s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m26s
Project CI / Backend tests (pull_request) Successful in 4m5s
Project CI / Frontend tests (pull_request) Successful in 2m9s
Project CI / Native shell tests (pull_request) Successful in 6m3s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m46s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m42s
Project CI / Repository checks (pull_request) Failing after 2m3s
- 主站顶栏在所有断点保持单行:去掉顶栏与动作区的 flex-wrap,品牌和下载、泥点、账户入口不再折成两行
- 窄屏(<640px)下载入口收起为 44×44 图标按钮,保留 aria-label/title,≥640px 恢复「下载客户端」完整文案
- 窄屏(<480px)顶栏品牌只保留 IP 标识,让出空间给下载、泥点与账户入口,并收紧窄屏动作区间距
- 头像裁剪弹窗去掉 portal={false},改由 UnifiedModal 默认 portal 渲染到 document.body
- 个人中心两级弹窗壳层同步去掉 portal={false},昵称等个人中心弹窗一并回到页面级层级
- 弹窗不再受 .platform-desktop-layout 的 z-index:1 stacking context 限制,层级高于固定底部主菜单(z-index:60)
- 共享记忆补记单行顶栏口径与「内联弹窗被固定底栏压住」的排障经验
2026-09-24 21:22:15 +08:00
k88936
053e0bd932
Thread Manager:待发消息队列的入队 / 取消 / 放行认领
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m31s
Project CI / Backend tests (pull_request) Successful in 4m1s
Project CI / Frontend tests (pull_request) Successful in 2m5s
Project CI / Native shell tests (pull_request) Successful in 6m7s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m0s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m3s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m52s
Project CI / Repository checks (pull_request) Successful in 2m17s
- `StoredEvent` 增加非序列化的 `pending` 产物字段:它的有无就是队列成员身份,队列的先后就是事件先后,不另建队列表
- 新增 `enqueue_pending_turn`:按 `clientTurnId` 幂等(判重范围「在队 ∪ 正在跑的那一轮」),容量用 `queue_has_room` 挡在队条目
- 新增 `remove_pending_turn`:typed 结果 `Removed | AlreadyDispatched | NotFound`,在临界区里取走产物并追加 `queue.removed{cancelled}`
- 新增 `claim_pending_turn`:同一临界区取队首 → 登记占用 → 追加 `turn.started` 与 `queue.removed{dispatched}`,已有未收口回合或队列为空时返回 `None`
- `mark_queue_events_cleanable` 跳过仍挂着产物的条目,保证在队条目永远不会被回收
- 新增薄包装 `enqueue_direct_pending_turn` / `remove_direct_pending_turn` / `claim_direct_pending_turn`,并补 5 条单测覆盖 bootstrap 可见、幂等、容量、放行原子性与三种取消结果
2026-09-24 21:11:15 +08:00
k88936
faf85837bd
运行态事件:待发消息队列的入队/移除事件与队列条目规则
...
- 新增 `DirectThreadEvent::QueueEnqueued`(`queue.enqueued`,带 canonical 用户条目与可选 `creationType`,不带 prompt)与 `QueueRemoved`(`queue.removed`,`reason` 为 typed 枚举 `cancelled | dispatched`)
- 新增 typed 枚举 `DirectQueueRemovalReason` 与 `DirectQueueRemovalOutcome`,并重跑 ts-rs 绑定
- 新增 `agent/direct_thread_queue.rs`:`PendingDirectTurn`(入队时冻结 canonical 形状与 prompt)、上限 `MAX_PENDING_DIRECT_TURNS = 5`、`EnqueueOutcome` / `EnqueueRejection`
- Thread Manager 的 `observe_event` 认队列事件:在队期间的 `queue.enqueued` 不可回收,`queue.removed` 把它转成可回收,新订阅者的 bootstrap 因此天然看得见当前队列
- `DirectCodexUserItem` 及其子类型补 `PartialEq`,`DirectThreadEvent` 不再需要 `Eq`
2026-09-24 20:58:08 +08:00
k88936
1e7ea51368
文档:DirectProject 命令入队化与待发消息队列归宿主设计定稿
...
- 新增 ADR:命令=入队、放行归 Thread Manager、待发消息队列作为运行态事件归宿主
- 新增实施计划:五步落地顺序、标识符映射表、每步不变式与验收证据
- CONTEXT.md:接单/拒单词条替换为入队/入队失败/放行,新增待发消息队列与待发消息词条
- docs/README.md 补两条索引;decision-log.md 追加同日决策记录
2026-09-24 20:46:53 +08:00
k88936
34eee8ec6a
Merge pull request 'ui editor 页面优化' ( #337 ) from feat/ui-editor-v3 into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m13s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 4m42s
Project CI / Native shell tests (push) Successful in 6m4s
Project CI / Frontend tests (push) Successful in 2m7s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m39s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m6s
Project CI / AI game creator shell web tests (push) Successful in 1m28s
Project CI / Repository checks (push) Successful in 1m53s
Reviewed-on: #337
2026-09-24 19:45:46 +08:00
k88936
fecb8fe76f
Merge remote-tracking branch 'origin/master' into feat/ui-editor-v3
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Successful in 4m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m40s
Project CI / Native shell tests (pull_request) Successful in 6m11s
Project CI / Frontend tests (pull_request) Successful in 2m27s
Project CI / Repository checks (pull_request) Successful in 2m50s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m44s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m38s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-24 19:43:20 +08:00
k88936
bdab414d32
Merge pull request '重构/对话错误类型化, 避免string-typed' ( #474 ) from feat/fail-as-event into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Reviewed-on: #474
2026-09-24 19:42:49 +08:00
k88936
2fa89006c4
Merge remote-tracking branch 'origin/master' into feat/fail-as-event
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m39s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m53s
Project CI / Backend tests (pull_request) Successful in 5m10s
Project CI / Native shell tests (pull_request) Successful in 6m36s
Project CI / Frontend tests (pull_request) Successful in 2m6s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m8s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m2s
Project CI / Repository checks (pull_request) Successful in 1m53s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m24s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-24 19:17:48 +08:00
suzmii
96b0fada3a
Merge pull request 'AGC ACL 提权修复按目标做 single-flight,避免并发重复弹 UAC(#498)' ( #502 ) from fix/acl-elevation-single-flight into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m7s
Project CI / Backend tests (push) Successful in 5m6s
Project CI / Native shell tests (push) Successful in 6m39s
Project CI / Frontend tests (push) Successful in 2m14s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m0s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m12s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
Project CI / Repository checks (push) Has been cancelled
Reviewed-on: #502
2026-09-24 19:15:34 +08:00
suzmii
a9f57c98ce
Merge pull request 'AGC 模型目录改为启动期从上游同步,退役写死的 gpt-6-astra/luna 与别名(#506)' ( #507 ) from enhance/default-model into master
...
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell Rust crates (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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Reviewed-on: #507
2026-09-24 19:15:22 +08:00
k88936
7cb7bd9581
合并:把 origin/master 的对外 MCP 语义工具与状态条、Markdown 修复并进接单化分支
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 冲突(`chat-composer.suite.ts` 接单窗口用例)按双方意图合并:保留上游「窗口期就要显示处理中卡片」,同时保留本分支「卡片要等宿主 `turn.started.at` 才开始读秒」;用例改为窗口期断言卡片在、无「已耗时」,再补发 `turn.started` 与开口用户条目后才断言气泡与读秒出现。
- 补上运行中回合的起点链路(合入前只有收口条目带起点,运行中卡片读不到秒):`useDirectThreadChatSubscription` 暴露 `turnStartedAt`,控制器透传 `directTurnStartedAt`,`DirectProjectChatView` 交给 `buildDirectChatTurns`。
- 同步 ADR、实施计划、`decision-log`、`pitfalls` 的口径与注释(两态投影;接单窗口只有卡片且不读秒)。
- 其余上游变更直接并入:对外 OpenAPI / MCP 语义工具方案与实现、状态条读秒粒度与几何、对话 Markdown 容错。
2026-09-24 19:13:53 +08:00
k88936
065b4ea330
给 UI 设计文档三个工具补上可读的回执明细与入参摘要
...
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (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 lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
- 三个工具的持久回执补白名单分支:只放身份、相对路径、计数与回填说明,不再整块变成明细不可用
- 身份字段禁控制字符并限长,相对路径必须归一化后落在 ui/ 下,含宿主路径或 file URI 即失败关闭
- 回填说明按既有口径把绝对路径脱敏成占位符,超长或带控制字符的整条明细失败关闭
- 明细总长仍守 500 字符上限:清单能放多少放多少,放不下的部分用总数表达
- 入参摘要给出设计图逐张身份或目标文档 id,并把三个工具加进可读名单,不再只报哈希
- 补四条用例覆盖可读明细、脱敏、越界路径失败关闭与入参摘要
2026-09-24 19:08:18 +08:00
k88936
74609e2a5e
把 UI 设计文档三个工具算进项目变更门禁
...
- 项目变更判定与项目版本号推进判定补上 UI 设计文档的三个工具:成功返回即算改过项目
- 只重写派生产物的代码生成工具不推进项目版本号,避免虚报推进量、把"项目被别处改动"的误报再造出来
- 新建文档与跑工作流这两个工具在观察明细里报出真实推进格数,失败路径也报,避免切图素材已登记却漏计
- 非法人写的读明细逻辑收敛成一个helper,三处调用共用
- 补六条门禁用例覆盖成功即算、只出代码不算推进、真实推进量优先、失败但已推进才算
- 同步共享记忆的项目概览与决策记录
2026-09-24 18:58:12 +08:00
k88936
1ff1a9965b
前端:删掉 Direct 的本地乐观用户气泡,用户气泡只来自宿主条目
...
- controller 删 `pendingUserItemId` / `beginTurnCommand` / `endTurnCommand`:忙态改由 `beginTurnBusy` / `endTurnBusy` 持有,宿主认领判据 = `turnRunning` 或收口计数变过(一轮在同一次 consume 里开始并结束)
- controller 删 `startTurn` 的乐观追加与 `messageAppended` 重跑参数、`DirectProjectTurnInput.messageText` 与首轮的 `directInitialTurnText`;controller 不再需要 `assets`
- 投影删 `awaiting-start` 展示态(只剩 `running` / `finished`)、`localSentTimes` / `sameIdentitySentAt`、本地用户气泡与它开回合的路径;带身份的拒单提示在会话末尾自成一组,不挂进上一轮,也不开运行态标记
- 时间口径:起点只认 `turn.started.at`、终点只认 `turn.completed.at`,用户气泡时钟取宿主落盘 / 观测时间;两边都空的回合整条「本轮结束于 … 」隐藏,不再出现 0.0 秒
- 用例:改造 `directTurnPresentation`(本地用户消息不进回合、拒单提示自成一组、两态判据、失败说明按身份归位)、`directProjectTurn` / `directProjectTurnStatus` / appSurface 窗口期用例,`directProjectTurn` 补 `afterEach(cleanup)`
- 注释与文档:ADR「命令接单化」后续更新、实施计划新增「删掉本地乐观用户气泡」、decision-log 与 pitfalls 同日条目、Codex 原始历史方案的口径句、`codex_app_server` 用户条目时间注释
2026-09-24 18:20:24 +08:00
k88936
565c2277d5
恢复工作流时只读快照,不再重放已完成步骤的改动
...
- 检查点每步除记录结果外,再落一份「该步应用完之后」的状态快照,切分那步另带回填出错说明,旧日志无快照仍可解析
- 主流程只应用本次新完成那一步的改动,已完成步骤整步跳过,不再重复登记切图或重复累加回填说明
- 崩溃恢复改为只读检查点里的状态快照并逐级取回,删掉按记录结果重算目标状态的旧实现
- 只有结果、没有状态快照的旧检查点行按未完成处理,由主流程重跑该步
- 漂移与写回幂等判据改为对照快照:状态既不是本轮起点、也不是切分后那份才算漂移;文档已等于切分后快照即视为写回完成
- 同步 ADR、技术方案、代码地图与共享记忆里的检查点口径
2026-09-24 18:16:34 +08:00
suzmii
29c5409ac4
Merge remote-tracking branch 'origin/master' into fix/acl-elevation-single-flight
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m4s
Project CI / Backend tests (pull_request) Successful in 3m49s
Project CI / Frontend tests (pull_request) Successful in 1m57s
Project CI / Native shell tests (pull_request) Successful in 5m48s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m59s
Project CI / Repository checks (pull_request) Successful in 1m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m21s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m36s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
2026-09-24 18:16:15 +08:00
k88936
d6f2ae157a
文档:回合顺序修复写进 ADR、实施计划与共享记忆
...
- ADR:补「开口用户条目先于整轮里的一切失败」这条顺序不变式(发点在接单 + 落盘之后、起 codex 之前),以及界面「回合归属只认身份」的口径
- 实施计划:新增「回合顺序修复(2026-09-24)」一节,写清现场、根因、两条改动与回归用例
- decision-log:新增同日决策(宿主发点提前 + 前端按身份归位、收口早退不吞说明)
- pitfalls:新增同日条目,并记下排查提示——先分清逻辑回合的 turn.started / turn.completed 与 app-server 协议的 turn/start 请求
2026-09-24 18:02:50 +08:00
k88936
4a75de1c31
前端:失败说明按回合身份归位,不再落进上一轮、气泡也不再自成假回合
...
- 回合归属改成按身份(开口用户条目的 canonical itemId):失败说明条目带 turnUserItemId(reducer 写,缺身份时保持原顺序语义),buildDirectChatTurns 按身份分组,同一身份的条目永远同一轮
- 本轮开口条目还没到(回合在宿主下发条目之前就失败、或历史切片还没读回)时,本地乐观气泡按身份挂回自己那一轮,不再另开一轮:界面不再出现「错误显示在用户消息上面」+「气泡底下 0.0 秒」+「上一轮借走本轮终点(15.6 秒)」这一组现象
- 收口早退不再吞掉还没写进界面的失败说明(订阅重建后的 bootstrap 只回放生命周期锚点):只补说明、终点时间与「回合完成」计数,不重开回合、不动本轮起点 / 终点 / 身份
- 用例:directTurnPresentation 复现现场(两个回合、说明与气泡同段、耗时不再借上一轮的终点);directThreadChat 补身份字段与早退不吞说明两条
2026-09-24 18:02:43 +08:00
k88936
2487a2c8e6
宿主:开口用户条目的发点提前到接单之后,失败说明才能挂回自己那一轮
...
- 本轮开口用户条目(item_completed,direct-codex:{clientTurnId}:user)原来在 app-server turn/start 应答之后才下发;接单到 turn/start 之间的失败(连不上 app-server、执行器未通过验收、历史注入失败)走不到那一步,事件流里只有逻辑回合的一对事件,没有开口条目
- 把那段内联下发抽成 emit_direct_thread_user_item,发点提前到「接单成立、用户条目落盘成功、起 codex 之前」(direct_runtime/user_input.rs 的命令主体),并删掉 turn/start 之后那一处:线上仍只有一处下发,不变式变成「接单 → 开口用户条目 → 整轮里其余一切」
- 新增回归用例 the_opening_user_item_is_emitted_before_anything_that_can_fail_in_the_turn:断言行首两条事件是带身份的 turn.started 与开口用户条目,终态只能在它们之后
- 回显过滤用例补上同一发点的模拟步骤(生产入口的两个动作:落盘 + 下发)
2026-09-24 18:02:26 +08:00
suzmii
997eba2b7b
Merge branch 'master' into enhance/default-model
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m35s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m5s
Project CI / Backend tests (pull_request) Successful in 4m40s
Project CI / Native shell tests (pull_request) Successful in 6m13s
Project CI / Frontend tests (pull_request) Successful in 2m7s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m13s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m55s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m34s
Project CI / Repository checks (pull_request) Successful in 1m58s
2026-09-24 18:02:01 +08:00
k88936
62b0f103de
把 ui-design-doc 的阻塞 IO 挪出 async 执行器
...
src-tauri/src/agent/runtime_tools/ui_design_doc.rs 的 from-images 与 into-js 观察函数改为 async,核心逻辑用 tokio::task::spawn_blocking 执行:from-images 要逐张 image::open 解码设计图再写 manifest,into-js 要读整份文档、算 SHA-256 再落盘 JS,原先都在 async 执行器线程上同步跑,会和其它已派发的动作抢执行器
阻塞任务未完成(join 失败)时返回 status=error 的观察,沿用仓库既有的 spawn_blocking 失败兜底写法
src-tauri/src/agent/runtime_actions/action_execution.rs 两个分发分支改为 await;ui_design_doc.rs 的两个用例改成 #[tokio::test] 并 await
2026-09-24 17:47:58 +08:00
k88936
4046318118
先整批校验设计图再登记,避免留下孤儿资源
...
src-tauri/src/ui_editor/agent_tools/creation.rs 把 prepare_design_image 拆成只读的 resolve_design_image 与登记两步:旧实现边校验边 register_local_asset_at,批次里后面某张设计图格式/尺寸不合法或路径缺失时,前面已登记的图片会留在 manifest.json 里且没有任何文档引用,而 rollback_created_document 只覆盖更晚的初始化失败
同批次查重改为按解析出的身份(已登记图片用 assetId、待登记图片用归一化路径)在登记前判定,重复引用不再先写一次 manifest
同文件新增 ResolvedDesignImage 承载「已登记 / 本次待登记」两种解析结果,待登记项在第二阶段登记后才拿到 assetId
src-tauri/src/tests/project.rs 新增 create_ui_design_doc_from_images_leaves_no_orphan_assets_when_a_later_image_fails,覆盖「第二张缺图时第一张不得进 manifest」(已用回退实现的失败结果反证过)
2026-09-24 17:44:19 +08:00
k88936
cd196cf61c
宿主:开发构建跳过 Codex 执行器版本门禁
...
- codex_app_server 逐次审批门禁与 direct_execution 补丁执行器门禁改为按 profile 分流:发行构建仍要求严格等于捆绑侧车固定版本,开发构建(debug_assertions)直接通过
- 修正开发态必然被拒的问题:开发构建从宿主 PATH 解析到的 Codex(本机 codex-cli 0.156.0)与固定版本 codex-cli 0.155.1 不等,且 Linux 与未 stage 侧车时没有可选固定版本,导致 Direct 回合在建连前就被拒
- 发行构建的拒单文案补上期望版本与实际版本,便于排障
- 同步调整受影响的单测:开发构建断言跳过门禁,发行构建断言仍拒绝版本漂移
2026-09-24 17:42:25 +08:00
suzmii
c07c10c0c7
Merge pull request '修复 DirectProject 对话状态条时机与被挤扁、Markdown 代码块换行与围栏解析' ( #511 ) from fix/recover-100ms into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m20s
Project CI / AI game creator shell Rust crates (push) Successful in 1m3s
Project CI / Backend tests (push) Successful in 3m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m35s
Project CI / Frontend tests (push) Successful in 2m19s
Project CI / Native shell tests (push) Successful in 6m5s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m50s
Project CI / Repository checks (push) Successful in 1m54s
Project CI / AI game creator shell web tests (push) Successful in 1m21s
Reviewed-on: #511
2026-09-24 17:36:38 +08:00
suzmii
2e45608f68
闸门补 leader 失效接管,避免卡死目标永久失败关闭
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m25s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m6s
Project CI / Frontend tests (pull_request) Successful in 2m10s
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m28s
Project CI / Native shell tests (pull_request) Successful in 5m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m9s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m38s
- acl_repair_gate:策略新增 leader_deadline(默认 5 分钟),超过后新调用接管仍是 running 的 key;Entry 记 started_at + leader_id,被接管后旧 leader 迟到的结果按令牌丢弃,不覆盖接管者写下的结果
- acl_repair_gate:complete()/Drop 改为按令牌就地更新(不再无条件 insert),panic 兜底与接管语义保持一致
- acl_repair_gate:running 状态的 entry 不再写 recorded_at(那时还没有结果),冷却基准只在真正落库时记录
- tests/acl_repair_gate:新增 stale_leader_is_taken_over_and_its_late_result_is_discarded;临时关掉接管分支即红(逆向确认:Reused(Failed(...)) 而非 Executed(Repaired))
- docs:decision-log 记 leader 失效接管决策,pitfalls 把「已知残余边界」改成已兜底说明,验证清单补该用例
2026-09-24 17:28:38 +08:00
k88936
56760a7397
让 Node 类型绑定回到 ts-rs 生成结果
...
src/features/ui-editor/types/Node.ts 补回末位逗号:该目录在 .prettierignore 内,文件内容就是 ts-rs 直出,46f859237 手工补 offset 字段时漏掉这个逗号,导致每次 cargo test 跑导出后这个文件都会以「已修改」状态留在工作区
2026-09-24 17:25:28 +08:00
k88936
ec9a4fcbac
给节点 offset 补上有限数值校验
...
src-tauri/src/ui_editor/persistence.rs 的 validate_node 现在校验 node.offset.min/max 必须是有限数值,与相邻的 Transform/custom_minimum_size 校验一致;此前只有 Transform 的 anchor/offset 被校验,NaN 或 Infinity 的树级偏移可以存盘,预览按 offset.min 定位时整棵树的渲染会一起失效
同文件新增 rejects_non_finite_node_offset,覆盖「offset 全有限可保存、min 变成 Infinity 后校验失败」
2026-09-24 17:25:03 +08:00
lhk229
a07bff85ec
升级mcp,增加按语义分类的工具。旧工具不变 ( #493 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 3m45s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 6m30s
Project CI / Frontend tests (push) Successful in 1m53s
Project CI / Native shell tests (push) Successful in 5m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m15s
Project CI / Repository checks (push) Successful in 1m58s
Project CI / AI game creator shell web tests (push) Successful in 1m27s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/493
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-24 17:19:45 +08:00
suzmii
26eb32ea22
按 review 收口状态条与对话 Markdown 的容错
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m7s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m26s
Project CI / Backend tests (pull_request) Successful in 3m51s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m10s
Project CI / Native shell tests (pull_request) Successful in 6m3s
Project CI / Frontend tests (pull_request) Successful in 2m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m37s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m26s
Project CI / Repository checks (pull_request) Successful in 1m52s
- apps/ai-game-creator-shell/src/components/ChatMarkdownMessage/index.tsx 围栏归一化补「同一行出现第二段围栏串就跳过」判据:行内代码 `文本 ```x``` ` 的末尾那截曾被当成收场围栏拆开,凭空造出一个开场围栏、把后面的正文全变成代码
- apps/ai-game-creator-shell/src/components/ChatMarkdownMessage/index.tsx 注释补归一化顺序与行内代码判据
- apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectTurnStatus.ts 修正 displayBusy 的说明:原注释仍写着卡片只读 nativeRunning,与现状相反
- apps/ai-game-creator-shell/tests/ChatMarkdownMessage.test.tsx 新增行内代码用例(去掉新判据即红)
- docs/project-memory/shared-memory/decision-log.md 新增 2026-09-24 条:记录卡片口径翻转(更正 2026-09-22「卡片口径取保守」那条)并处置其「running 在渲染层就没有消费者」的预言,同时记录状态条几何约束与对话 Markdown 容错口径
- docs/project-memory/shared-memory/pitfalls.md 围栏归一化条补行内代码判据
2026-09-24 16:56:49 +08:00
k88936
8ff155e14f
文档:接单化 review 收口第二轮的剩余两条写进 ADR、实施计划与共享记忆
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m4s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m25s
Project CI / Backend tests (pull_request) Successful in 4m0s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m1s
Project CI / Frontend tests (pull_request) Successful in 2m7s
Project CI / Native shell tests (pull_request) Successful in 6m3s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m47s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m45s
Project CI / Repository checks (pull_request) Successful in 2m12s
- ADR §1 补"接单之后的一切失败都回 `Ok(())`"、§2 补"失败事实先于看门狗可见",并说明落盘失败不继续起整轮
- 实施计划第二轮小节补命令返回值口径与连接死亡的记录顺序,点名看门狗回归用例
- 共享记忆同日条目的"两条待决策"转成决策,验证计数更新为 902 passed / 5 ignored
2026-09-24 16:53:47 +08:00
k88936
cd5feac5fe
宿主:接单之后的落盘失败不再从命令返回 Err
...
- `chat_with_game_creator_direct_codex_typed` 在接单后的历史追加写失败时仍写失败终态,但返回 `Ok(())`:命令的 `Err` 只表示拒单,同一个失败不该从事件与横幅两条通道下发,前端也不该把已经开始的回合读成没开始
- 不继续起整轮:`project.jsonl` 是这条对话的单一事实源,用户消息没落盘时继续跑只会得到一条没有开口用户消息的助手回复
- 补 Rust 用例 `a_history_write_failure_after_accept_closes_the_turn_instead_of_rejecting`:借历史追加写的测试注入钉住恰好一条失败终态、不带拒单收口文案、占用已释放
- 补前端用例:落盘失败的说明只来自事件且恰好一条,忙态放掉,下一条能直接发出去
2026-09-24 16:51:44 +08:00
k88936
ab970b9fdb
宿主:连接死亡的失败事实先于看门狗落地
...
- `CodexAppServerInner` 新增私有去重标志 `connection_end_claimed`,与 `closed` 分开:认领只保证死亡收口只跑一次,"看门狗可以开始收束"必须等失败事实写进执行适配器
- `fail_game_creator_codex_app_server_connection` 改用新标志去重,不再顺带置 `closed`;`closed` 交给 `shutdown_game_creator_codex_app_server_inner` 在 `record_execution_turn_failure` 之后置位,看门狗在事实落地前没有可观测信号
- 补一条把看门狗真正跑起来的回归用例 `connection_death_records_the_failure_fact_before_the_watchdog_seals_the_turn`:卡住 stderr 摘要锁把窗口拉成确定性,断言终态仍带 `transport-failed` 载荷(顺序反了就红)
- 失败事实是在模型终态那一刻被快照进终态上下文的,晚补记无用,所以只修"事实先于可见性"这一条落点
2026-09-24 16:51:36 +08:00
suzmii
20a0d08772
记录聊天 Markdown 围栏归一化的排障经验
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m0s
Project CI / Backend tests (pull_request) Successful in 4m2s
Project CI / Native shell tests (pull_request) Successful in 5m54s
Project CI / Frontend tests (pull_request) Successful in 2m7s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m36s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m5s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m49s
Project CI / Repository checks (pull_request) Successful in 2m31s
- docs/project-memory/shared-memory/pitfalls.md 新增一条:模型输出会把 ``` 粘在正文行末尾,CommonMark 只认整行围栏,故必须先归一化再解析;同时记录块级 pre 与 code 都要给换行类名
2026-09-24 16:40:22 +08:00
suzmii
0daf8cdaad
修复 DirectProject 对话状态条时机与 Markdown 代码块渲染
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- apps/ai-game-creator-shell/src/view/project-development/chat/DirectProjectChatView.tsx 状态条改为读 DirectProjectTurnStatus.displayBusy(本地命令在飞 ∪ 原生在跑),计时起点放宽到最新一个未结束回合:原先只认原生 turnRunning,而 turn.started 要等宿主应答返回才发出,模型首 token 之前那约十秒界面完全没有「正在处理」的交代
- apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectConversation/DirectProjectConversation.tsx 入参 nativeRunning 更名 turnInFlight 并同步注释
- apps/ai-game-creator-shell/src/components/ChatMarkdownMessage/index.tsx 块级 pre 与 code 补 whitespace-pre-wrap + break-words:窄面板里长行不再把消息拉宽、不再顶出横向滚动条
- apps/ai-game-creator-shell/src/components/ChatMarkdownMessage/index.tsx 新增 normalizeMarkdownFences:把粘在正文行里的 ``` 拆到独立行(模型常写成「…实现细节(game.js):```js」「… }```」),CommonMark 只认整行围栏,粘着的围栏会让正文被当成代码、或代码块不闭合把后续内容一起吞掉;整行/缩进围栏、行内代码、代码里的 ``` 与引用块 / 列表项开头的合法围栏都不受影响
- apps/ai-game-creator-shell/tests/ChatMarkdownMessage.test.tsx 新增粘住围栏三种场景与代码块换行契约用例
- apps/ai-game-creator-shell/tests/appSurface/chat-composer.suite.ts 补「turn.started 未到时卡片已出现且已计时」断言
- apps/ai-game-creator-shell/tests/directProjectProcessStatus.test.tsx 同步入参更名
2026-09-24 16:38:44 +08:00
k88936
246059af4c
让工作流步骤标签用例跟随步骤目录
...
tests/workflowCompletionNotice.test.ts 改为遍历 UI_EDITOR_STEPS 逐一比对 workflowStepLabel(step.id) 与 step.label,断言里写死的 reference-analysis 步骤已在「前端移除分析参考图步骤与界面图元编辑」中退役,导致用例在 HEAD 上必然失败
2026-09-24 16:25:21 +08:00
k88936
2f5e0b0ede
文档:接单化 review 收口第二轮写进 ADR、实施计划与共享记忆
...
- ADR 的后续更新补第二轮:§4 的拒单载荷 `kind` 收成 typed 枚举与并发拒单身份改成回合身份、§5 的回合身份口径覆盖拒单载荷、§6 的可留痕判据收掉 `ProjectRootUnanchored`、§7 的"同级提示"补上认不出的拒单
- 实施计划加「review 收口第二轮(2026-09-24)」一节,记下拒单表与界面提示口径的现状
- 决策记录追加同日第二条:五条决策、明确不做、两条待决策(连接收束时序、接单后落盘失败的双通道)与影响范围 / 验证证据
2026-09-24 16:24:38 +08:00
k88936
85d69a29a9
前端:认不出的拒单也在聊天里补一条同级提示
...
- 新增 `directTurnUnrecognizedRejectionNoticeText`:宿主 / 环境事实的拒单在聊天里的文案取宿主收口文案的脱敏摘要与建议(`projectRuntimeVisibleRejectionError`),不是收口形状时只给一句通用兜底,机器字段不进聊天
- 控制器在「认不出的拒单」分支补写一条与用户消息同级的提示(沿用 `directTurnRejectionNoticeMessageId` 身份):拒单不产生 `turn.completed`,这条乐观用户气泡后面不会再有事件来解释它;上报与横幅照旧保留
- 修正该处注释「聊天里的失败说明不由这里写」——那条只对回合失败成立,拒单没有终态出口;同时把非结构化错误继续只走横幅的理由写清楚
- 用例:`chat-composer.suite.ts` 补一条结构化拒单的界面用例(同级提示可见、`direct-codex-failure` / `stage=` 不进聊天、忙碌态放掉);`project-conversation.suite.ts` 补该文案函数的单元断言
2026-09-24 16:21:35 +08:00
suzmii
7cdbc61ffb
修复窗口变矮时对话状态条被挤扁
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m37s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m9s
Project CI / Backend tests (pull_request) Successful in 3m48s
Project CI / Frontend tests (pull_request) Successful in 2m1s
Project CI / Native shell tests (pull_request) Successful in 5m48s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m4s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m34s
Project CI / Repository checks (pull_request) Successful in 2m5s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m48s
- apps/ai-game-creator-shell/src/styles.css 给 .project-chat-conversation > .project-chat-process-card 补 flex: 0 0 auto:卡片带 overflow: hidden,按 flex 规范该项自动最小尺寸归零,窗口压矮时会先被压缩(实测 300px 高挤到 33px、240px 高 24px,文字被裁),而这一列里只有消息列表该被压缩
- apps/ai-game-creator-shell/src/styles.css 把这条卡片的会话列几何规则从文件末尾移到「面板纵向布局兜底」的 flex 链旁边,内缩与不可压缩合并在同一条规则里,注释说明为什么必须是 0 0 auto
- apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts 卡片契约补 flex: 0 0 auto 断言
2026-09-24 16:21:24 +08:00
k88936
b42966eb9e
前端:Direct 失败说明补上宿主事实句的文案模式
...
- `projectRuntimeVisibleError` 增加宿主 `Display` 事实句模式:`执行通道已断开`(TransportClosed)、`等待模型回合结束达到硬上限`(TimedOut 的硬上限那档)、`宿主任务提前结束`(host-dropped),并给落盘那档补上 `收尾历史失败` / `未确认历史完整落盘` / `写入本项目对话历史失败`——改动前这几种都掉进「执行失败,请稍后重试」
- 只认宿主写死的短语、不回落原文:原文带 `exitStatus=` / `stderrClass=` 这类内部字段,`TransportClosed` 就是这种
- 修掉宿主收口文案的版本口径:解析只认 `v1`,而宿主发的是多一段 `code=` 的 `v2`,于是脱敏摘要永远命中不了;现在两版都认,并把解析结果拆成 parts,供拒单文案复用(`projectRuntimeVisibleRejectionError`,不带阶段标签——拒单这一轮没有开始)
- `directTurnFailureNoticeText` 的文档注释写明「不加模式就只会看到通用文案」是有意取舍,加模式时补 `agentRuntimeModel.test.ts` 用例
- 用例:`agentRuntimeModel.test.ts` 补 v2 收口文案、拒单文案与三句宿主事实句;`directThreadChat.test.ts` 的「收尾历史失败」期望改成映射后的句子
2026-09-24 16:19:37 +08:00
suzmii
8514f1094c
忽略嵌套的 server-rs/.data 运行期产物
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 53s
Project CI / Backend tests (pull_request) Successful in 4m24s
Project CI / Frontend tests (pull_request) Successful in 2m12s
Project CI / Native shell tests (pull_request) Successful in 6m2s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m52s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m1s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m55s
Project CI / Repository checks (pull_request) Successful in 2m34s
- 以 crates/api-server 为 cwd 启动时会生成 server-rs/crates/api-server/server-rs/.data,补充 **/server-rs/.data/ 忽略规则
2026-09-24 16:18:09 +08:00
suzmii
f04d9ae3f5
AGC 模型弹层去掉滚动条并按最长模型名自动拓宽
...
- .conversation-model-menu 宽度改为 max-content(保留 min-width 150px 与视口宽度上限),不再用固定 150–190px 截断
- 去掉 max-height/overflow 滚动,菜单按目录项展开
2026-09-24 16:18:08 +08:00
suzmii
398564a9f8
AGC 客户端不再写死 gpt-6-astra 默认模型
...
- main.rs:DEFAULT_GAME_CREATOR_LLM_MODEL 改用官方占位标识 platform-default
- game-creator.config.json:首启模板 llm.model 同步为 platform-default
- check-config.mjs 与客户端测试同步该口径,去掉已退役模型名的断言
2026-09-24 16:18:07 +08:00
suzmii
4234a21eed
服务端:AGC 模型目录缺配置时改为启动期从上游同步,保留原目录格式
...
- module-runtime:删除写死的初始目录(高质量→gpt-6-astra、快速→gpt-5.6-luna),新增 from_upstream_models:id 用模型名 slug、alias/modelId 用上游原名、默认项取排序后第一项;字段与校验规则不变
- spacetime-module:read_agc_model_catalog 缺行返回 AGC_MODEL_CATALOG_NOT_INITIALIZED,不再返回内置目录
- api-server:新增启动期 ensure_agc_model_catalog_initialized,未初始化时从分组定价列表 GET /api/pricing?group=taonier 生成目录并按存量 revision 写回;拉不到只记录 error、不写替代目录,下次启动重试
- api-server:目录未初始化时 AGC 目录/对话接口与后台目录接口返回 503,不回落任何内置模型名;后台 PUT 同样要求已初始化
- api-server:上游请求 10s 超时、1 MiB 流式上限、禁止重定向、不带凭据;目标校验只校验地址,不再绑定已下线的固定模型哨兵;写回冲突后重读校验既有目录
2026-09-24 16:18:06 +08:00
k88936
5a0f3b8037
宿主:目录锚不定的拒单不再写诊断
...
- `ProjectRootUnanchored` 从 `is_reportable()` 拿掉,与 `ProjectRootUnusable` 同类:符号链接 / 权限 / 目录被删都是用户自己就能修的文件系统事实,留痕只会变成噪声
- 它不再被 `direct_turn_rejection` 覆写成 `direct-codex-failure:v2 …` 诊断文案,界面按 `Display` 显示「无法锚定 Direct 调用项目目录:{cause}」,两侧对同一变体的分类不再自相矛盾
- 同步 `only_host_and_environment_rejections_are_reportable` 用例与 `is_reportable` 的文档注释
2026-09-24 16:16:06 +08:00
suzmii
6c92e5d673
文档:AGC 模型目录初始值改为上游同步的规范与运维口径
...
- 主规范补充目录初始化来源、失败关闭与重试口径,并记录本变更不改变目录格式与客户端契约
- 后端数据契约补充缺行语义与启动期同步
- 运维文档新增「AGC 模型目录上游同步」小节(来源、恢复路径、同批发布约束)
- decision-log 记录本次决策、真实上游实测结论与残留项
- 新增里程碑《AGC 模型目录初始值改为上游同步》与对应实施计划
2026-09-24 16:14:19 +08:00
k88936
0f9e2f1737
把设计图引用建模成 assetId 与 path 二选一的联合类型
...
src/features/ui-editor/uiDesignResourceBridge.ts 的 UiDesignDocImageReference 改为判别联合:原先两个字段都可选,`{}` 或两个都给要等到 Rust 运行时才被判错
2026-09-24 16:10:50 +08:00
k88936
c8852ac2af
把只赋值一次的 overview 改成 const 三元
...
src/view/ui-editor/index.tsx 用三元表达式声明 overview,去掉 let + if/else 两处赋值,表达不可变意图
2026-09-24 16:10:27 +08:00
k88936
95fec72ef0
删掉会话投影里无人使用的 generateCode 包装
...
src/view/ui-editor/useUiEditorPage.ts 移除 save.generateCode 及其实现:全仓只有 saveAndGenerateCode 与 stateStore.generateCode 有消费者,这个包装失败时静默返回 null,留着容易让后续调用方拿到没有原因的 null
2026-09-24 16:09:53 +08:00
k88936
bd78a91e55
宿主:并发拒单的两个身份改成回合身份
...
- Thread Manager 的 `accept_turn` 在并发冲突时回**已有的 `turn_id`**(调用方的 `clientTurnId`),不再回进程内的占用 token
- `DirectTurnReservation::accept` 的拒单载荷改成 `existing`=已在跑那一轮的 `clientTurnId`、`incoming`=本次请求的 `clientTurnId`;同一轮重发时两者相等,"同一轮消息仍在处理中"那条文案才走得到
- 补 `accept_conflict_reports_client_turn_ids_not_reservation_tokens`(同一轮 / 另一轮两条分支都钉住)与 `accept_conflict_returns_the_existing_turn_id`(manager 侧只回回合身份)
- 占用对象自己的 token 保持 UUID 不变(`complete_direct_thread_turn_if_reserved` 靠它配对),改的只有错误载荷
2026-09-24 16:08:39 +08:00
k88936
d7f3790fce
让节点拖动与缩放用同一套树/尺寸判据
...
useNodeTransformInteraction.ts 的 onNodePointerDown 补上 !tree || !logicalSize 守卫,与 onNodeResizePointerDown 一致:命中不到树或逻辑尺寸时不再启动手势并占用指针捕获
2026-09-24 16:08:05 +08:00
k88936
76dfd74dea
窗口失焦时丢弃未提交的树拖拽
...
PreviewWorkspace.tsx 的 onWindowBlur 一并清掉 treeDragRef 与树拖拽预览偏移:失焦时浏览器不一定补 pointercancel,陈旧手势会被后续 pointerup 复用并把意外偏移写进文档
tests/previewRightPanDrag.test.tsx 补失焦后抬起不提交偏移的用例
2026-09-24 16:07:56 +08:00
k88936
134046f806
树根拖拽的指针取消不再提交偏移
...
PreviewWorkspace.tsx 拆出 handleTreePointerCancel:pointercancel 只清拖拽状态与指针捕获,不再按抬手坐标算最终偏移,避免浏览器取消手势时把意外偏移写进文档
tests/previewRightPanDrag.test.tsx 补「抬起提交、取消不提交」用例,并给画布夹具补上 setTreeOffset 桩
2026-09-24 16:06:48 +08:00
k88936
9ecb084b68
宿主:失败载荷的 kind 改成 typed 枚举
...
- 新增 `DirectTurnFailureKind`,成为 `DirectTurnFailure.kind` 的唯一取值表:`timeout / model-failed / transport-failed / request-rejected / environment-not-ready / turn-interrupted / host-dropped`(补齐原先两份注释都漏掉的 `turn-interrupted`)
- `DirectModelCallKind::wire_kind` 与 `DirectTurnError::wire_kind` 改成返回该枚举,`DirectTurnFailure::new` / `DirectTurnTerminal::host_dropped` 同步改签名;线上取值仍是原来的 kebab-case 字符串
- 补 `failure_kind_wire_values_are_stable` 用例:7 个变体的序列化 / 反序列化取值逐条钉住,改名即改协议会先在这里失败
- 前端生成绑定重新导出:`chat/generated/DirectTurnFailureKind.ts` 新增,`DirectTurnFailure.ts` 的 `kind` 由 `string` 收窄成 union
- 受影响断言(`direct_thread_manager` / `direct_turn_accept` / `direct_thread_wire` / `codex_app_server`)改成比较枚举变体
2026-09-24 16:05:34 +08:00
k88936
064c26d7c9
按右键按下时的命中目标决定是否弹节点菜单
...
PreviewWorkspace.tsx 在右键按下时记住命中元素,抬起时改成按它解析节点与树:指针被视口捕获后 pointerup 的 target 是捕获元素,原先按抬起目标找不到 [data-node-id],节点菜单永远打不开
指针取消时同步清掉记录的目标
tests/previewRightPanDrag.test.tsx 补「抬起被重定向到捕获元素仍弹菜单」用例
2026-09-24 16:05:16 +08:00
k88936
ef4601c555
让节点删除默认落到选中节点所在的树
...
src/view/ui-editor/useUiEditorPage.ts 的 deleteNode 默认 treeId 改为 treeForSelectedNode?.src_ui_design ?? activeImageId:选中节点可以来自非激活界面图,Inspector 删除按钮不给 treeId 时会静默删不掉
src/view/ui-editor/uiEditorKeyboardShortcuts.ts 与 view/ui-editor/index.tsx 去掉键盘删除强制传 activeImageId 的接线,treeId 改为可选,同时删掉已无消费者的 activeImageId 入参
tests/uiEditorPage.test.ts 补「非激活树里的节点默认也能删除」用例,uiEditorKeyboardShortcuts.test.ts 断言改为只传节点 id
2026-09-24 16:04:29 +08:00
k88936
12e8287f92
避免超大缩放让网格步长计算死循环
...
previewGrid.ts 的 resolvePreviewGridStep 在 screenSpacing 溢出成 Infinity 时直接回基础步长:原先第二个 while 里 Infinity/2 仍是 Infinity,画布会卡死
previewWorkspaceZoom.test.tsx 补 Number.MAX_VALUE 缩放的回退用例
2026-09-24 16:02:10 +08:00
k88936
9e49db419f
让状态不变量校验先判字段类型再取值
...
src/features/ui-editor/stateInvariants.ts 在取 path.trim 与 pixel_size.every 前先判 string / Array.isArray,残缺持久化文档此前会在 firstUiDesignInvariantMessage 里抛 TypeError,被保存流程吞成通用失败文案
tests/uiEditorState.test.ts 补三组残缺界面图都回落到 invalid-image 的用例
2026-09-24 16:01:14 +08:00
k88936
e2e9243415
拒绝不是二元组的树偏移输入
...
src/features/ui-editor/stateTransition.ts 的 set-tree-offset 分支增加 min.length !== 2 判据:空数组会让 every 空真通过,缺坐标时 max 会算出 NaN 污染渲染消费的偏移
tests/uiEditorState.test.ts 补「[12] 与 [] 都判 invalid」用例
2026-09-24 16:00:13 +08:00
k88936
a871684bd7
改掉检查点漂移文案把时间戳说成轮次的说法
...
ui_editor/agent_tools/steps/write_back.rs 的 checkpoint_drift_message 原先输出「检查点第 1759... 轮基线 revision」,round.at 其实是秒级 Unix 时间戳;改为先给基线 revision,再标注时间戳含义
2026-09-24 15:58:45 +08:00
k88936
0e15d76046
让 ui-design-doc 的参数说明真正进入工具 schema
...
agent_native_tools.rs 给 from-images 的 images 属性挂上 texts/ui-design-doc.json 里已写好的说明,run-workflow 与 into-js 改用带 description 的单字符串 schema 生成器 one_string_input_schema_with_description,原先这三条文案没有任何引用点,模型看不到
2026-09-24 15:58:35 +08:00
k88936
ac870fd41a
文档登记失败时回滚本次顺带登记的设计图
...
ui_editor/agent_tools/creation.rs 登记文档资源失败时先摘掉 prepare_design_images 登记进来的图片条目,避免 manifest 留下没有文档引用的孤儿设计图
把「按 id 摘条目」抽成 drop_manifest_assets,rollback_created_document 复用同一实现
2026-09-24 15:58:24 +08:00
k88936
588768bff0
给 ui-design-doc 三个观察的 rejected 摘要统一脱敏
...
agent/runtime_tools/ui_design_doc.rs 让 rejected 接收项目根并复用 redact_agent_runtime_project_paths:项目上下文缺失时的报错会带上宿主路径,原先把 rejected 当成「只含模型参数」直接透出,摘要会泄露绝对路径
2026-09-24 15:58:08 +08:00
k88936
940d7b5793
修正 run-workflow 观察里误用文档 revision 判断清单失效
...
agent/runtime_tools/ui_design_doc.rs 改为在工作流结束后重读项目 revision,与开始前的项目 revision 比较;原先比较的 result.revision 是随文档重置的文档 revision,项目 revision 一超过它就永远判不出清单变化,前端会一直看到旧清单
2026-09-24 15:57:52 +08:00
k88936
1c7d90a950
把 ui-design-doc.run-workflow 认成可推进 revision 的验收证据
...
agent/runtime_protocol/acceptance_graph.rs 在 acceptance_evidence_tool_may_advance_project_revision 里补回被退役工具腾出的位置,写回文档会让 before 与 after 不同,不再被误判为 revision 不匹配
同一文件补 ui_design_doc_workflow_evidence_may_advance_project_revision 用例,锁住「证据工具」与「可推进 revision」两处识别一致
2026-09-24 15:57:27 +08:00
k88936
c844f857ef
交接阶段补上 ui-design-doc.from-images 设计图路径校验
...
tool_plan_handoff/content_validation.rs 为 from-images 的 images[].path 逐项做绝对路径与逃逸判据,恢复退役工作流工具留出的早检位
2026-09-24 15:48:53 +08:00
k88936
d082c5ab15
删除无人调用的 required_tool_arguments 组合封装
...
ui_editor/commands/utils.rs 去掉只做「找工具调用 + 解析参数」拼接的封装,识别与切分调用点都自带日志与错误映射,没有消费方
2026-09-24 15:46:57 +08:00
k88936
9694faa620
让节点 offset 在反序列化时缺省成零偏移
...
ui_editor/layout/node.rs 给 Node.offset 加 #[serde(default)],历史设计文档缺该字段时按零偏移解析
ui_editor/persistence.rs 补 legacy_nodes_without_offset_field_fall_back_to_zero_offset 锁定该回退口径
2026-09-24 15:45:25 +08:00
k88936
2331f62f1a
测试:登录态用例的会话刷新 spy 补 mock 实现
...
- `chat-composer` 的"登录态失效不重跑整轮"用例给 `requestPlatformSessionRefresh` 的 spy 补 `mockResolvedValue`,真回归时以 mock 结果干净失败,不再在测试里发起真实刷新
- 桩值用现役的 `stale`(`PlatformSessionRefreshResult` 只有 `refreshed / stale / failed` 三种)
2026-09-24 14:48:37 +08:00
k88936
7941aaa660
前端:埋点句柄只在结构化拒单时清掉
...
- `runTurn` 的 catch 先读结构化拒单,只有"这一轮没接单"的拒单才清 `pendingRunAnalyticsRef`;非结构化错误(IPC 失败、命令 panic)可能发生在接单之后,句柄留着等 `turn.completed` 结算,不再让宿主侧这一轮的候选永远没人结算
- chat-composer 用例的注释同步:这一轮没接单,就没有回合终态事件来驱动结算
2026-09-24 14:48:32 +08:00
k88936
6cee61b973
前端:Direct 回合失败分支去掉嵌套三元
...
- `runTurn` 的 catch 先把非结构化错误折成文本,再让结构化拒单文案覆盖,替掉原先"拒单 / Error / 其它"三层嵌套的三元表达式
2026-09-24 14:48:21 +08:00
k88936
2ce96a73f0
前端:拒单提示的空文案不再返回空串
...
- `directTurnRejectionNotice` 认得的拒单在宿主文案为空白时返回 `null`,不再返回空串:`''` 显示不出任何提示,却会被按 `!== null` 判据的调用方当成"有提示"
- 补注释把"有提示"的判据说清:要么给一条能显示的话,要么给 `null`
2026-09-24 14:48:10 +08:00
k88936
8d635c2ff7
合并:把 master 的告警清理与首页对话退役并进接单化分支
...
- 冲突 codex_app_server/mod.rs:保留类型化回合失败 DirectTurnRunFailure 与 EnvironmentNotReady 分类,接受删除 audit/metrics 参数
- 冲突 direct_runtime/mod.rs:保留类型化错误反馈循环与"交付报告只读一次",保留 check_direct_turn_preconditions,接受 master 的 turn_kind 贯穿与首页无项目对话退役
- 冲突 direct_runtime/user_input.rs:保留接单后发射器与 canonical 用户条目的新调用签名
- 删除:随 master 移除 direct_codex_audit、direct_turn_metrics 两个账本模块及其全部引用
- 删除:direct_codex_error_should_feedback 字符串判据与首页对话函数及其测试
- 调整:direct_codex_error_feedback_prompt 收成单参数,与已落地的提示词模板一致
- 修复:master 新插入的用户条目冻结块改用 DirectTurnError::turn_failed
2026-09-24 14:30:02 +08:00
k88936
dc5a5a4a62
修复合并后 CI 失败:退役命令的残留清单与用例
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Successful in 4m0s
Project CI / Frontend tests (pull_request) Successful in 1m53s
Project CI / Native shell tests (pull_request) Successful in 5m51s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m13s
Project CI / Repository checks (pull_request) Successful in 2m1s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m20s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m40s
- scripts/check-config.mjs 的 native-only 白名单删除已退役的 bind_components 与 create_ui_design_resource,两端原生能力检查重新自洽
- appSurface 的 UI 原型入口用例改断言 create_ui_design_doc_from_images,并按新契约补齐 relativePath / imageIds 返回形状
- 验证:npm run typecheck(含 skill-pack 与 check-config)、npx vitest run tests/appSurface.test.ts(211 passed / 9 skipped)
2026-09-24 14:21:14 +08:00
k88936
2873bed732
合并 origin/master 到 feat/ui-editor-v3
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m5s
Project CI / Native shell tests (pull_request) Failing after 1m47s
Project CI / Backend tests (pull_request) Successful in 3m53s
Project CI / Frontend tests (pull_request) Successful in 1m38s
Project CI / AI game creator shell web tests (pull_request) Failing after 38s
Project CI / Repository checks (pull_request) Failing after 1m33s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m0s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m2s
- 合入 master 179 个提交(后台管理页、游戏发行入口、AGC 运行页签、编译 warning 清理等)
- policy.rs 采用 master 版本:删除无调用方的 autonomous_design_foundation_command_is_allowed 重复名单,design-foundation 权限以 tool_policy_snapshot.rs 为准
- native-tools.json 保留双方结果:master 的描述文本 + 分支删除已退役的 ui.workflow.run.description
- useUiEditorPage.ts 保留分支的 save / saveAndGenerateCode 状态返回契约,并接上 master 的 beginUiSaveAnalytics 与 saveSource: 'auto' 埋点
- 验证:cargo check --bin genarrative-ai-game-creator-shell、npm run check:rustfmt、tsc --noEmit、vitest tests/uiEditorPage.test.ts + tests/clientAnalytics.test.tsx(47 passed)
2026-09-24 13:53:34 +08:00
k88936
c8478f07ef
文档:接单化 review 收口的不变式写进 ADR 与共享记忆
...
- ADR §2 补两条不变式:终态的写点在整轮结束之后、封口返修要求不是回合失败
- 技术方案同步改写"终态由事实判定"一段,并补"终态写点在整轮结束之后"的判据
- ADR 末尾补 2026-09-24 后续更新索引,指向技术方案与决策记录
- 决策记录追加 2026-09-24 条目:终态写点、返修控制流、终止判据、登录态重试与失败载荷健壮性
2026-09-24 13:51:10 +08:00
k88936
f19bd8de8c
宿主:终态写点挪到整轮结束之后,解析失败也能落进终态
...
- Direct 回合的终态判定事实改成先固定上下文,写点留到解析与线程释放之后
- structured output 解析折进同一个收尾结果:解析失败不再"终态写完才失败",改走失败载荷
- 收尾结果拆成 `DirectTurnReport`(报告正文 + 解析结果),终态兜底文案仍取被解析的那份文本
- 新增 `DirectTurnTerminalContext::write` 作为唯一终态出口,占用解除与 `turn.completed` 一起走
- `direct_turn_terminal_write` 改成"报告 / 失败"两个入参,便于单测覆盖三种投影
- 补单测:解析失败投影成 `model-failed` 载荷,正常收尾不带失败载荷
2026-09-24 13:49:38 +08:00
k88936
64e3eba55a
宿主:封口返修要求改成 typed 控制流,不再写成失败
...
- 新增 `HostOutcomeText`:封口复核的"继续返修批次"用独立变体表达,不再伪装成 `LlmError::InvalidRequest`
- 新增 `DirectTurnRunFailure`:app-server 回合结果区分"真失败"与"返修控制流",`RepairRequired` 不写终态
- `direct_turn_terminal_write` 收口终态写出:返修要求跳过,真失败从 typed 错误投影 `kind` / `message`
- 早退取得宿主收尾事实的分支只认真失败,返修控制流不再被中断成一次收束
- `DirectTurnError` 新增 `RepairRequired` 变体并重新生成前端绑定
- 返修循环同时消费 `ReviewRequired` / `RepairRequired`,次数上限仍留在产生侧
- 补单测:返修要求不写终态、真失败投影成 transport-failed、正常收尾不带载荷
2026-09-24 13:40:36 +08:00
k88936
a39b322af6
将 UI 编辑器 Agent 工具模块由 design_doc 重命名为 agent_tools
...
- 重命名 src-tauri/src/ui_editor/design_doc/{checkpoint,creation,mod,run_workflow,test_support}.rs 与 steps/** 到 ui_editor/agent_tools/
- 更新 main.rs、ui_editor/mod.rs、agent/runtime_tools/ui_design_doc.rs 中的模块路径引用
- 更新 steps/recognize.rs 与 steps/separate/mod.rs 内部对 agent_tools 夹具的引用
- 更新 tests/project.rs 注释中的 creation.rs 与 next_ui_design_path 模块路径
- 更新 agent_tools/test_support.rs 模块注释为 agent_tools 单测共用夹具
- 更新技术方案《UI编辑器代码地图与模块职责》《UI编辑器Agent工具化重写》的模块树与落地顺序路径
- 更新 shared-memory decision-log 中该次重写的测试过滤器为 agent_tools
2026-09-24 13:34:14 +08:00
k88936
0da63721df
宿主:用户按下的终止不再被记成通道失败
...
execution.rs:`fail_turn` 的判据从"只看 is_closed"改成"`is_closed` 或 `host_stop_requested` 都不算失败"。用户点「终止」时 `cancel_from_host` 先同步置位 `host_stop_requested`、再异步中断会话,`closed` 与阶段要等那个任务跑到才变;这段窗口里到达的 `TransportClosed` / `interrupted` 都是宿主自己收尾的结果,以前会被记成 `transport-failed`。判据收在 `fail_turn` 里,调用点不必各写一遍,将来新增收口路径也不会漏。不记失败事实照旧收束,原因仍写进报告。
mod.rs:`interrupted` 分支去掉现在重复的 `!host_stop_requested()` 检查(同一个事实只留一处判据)。
execution.rs 单测:新增"用户请求过终止 + 未 closed 时 fail_turn 不写失败事实、原因仍进报告";变异验证:撤掉新判据该用例变红。codex_app_server 过滤 101 passed。
2026-09-24 13:21:26 +08:00
k88936
080ef53b68
宿主:登录态失效的两条分类路径统一成可重试
...
direct_turn_error.rs:DirectCodexNativeKind::is_retryable 把 Unauthorized 归进 false 组,而同一份事实走 DirectDomainFact::AuthenticationRejected 时是 true,于是 retryable 取决于哪一层先认出它;旧口径对 401 / authentication-required 一律返回 true,这里对齐成可重试,并写明与 recovery_hint 同口径的理由。
direct_runtime/mod.rs:补一条断言(原生 codex-app-server-error:unauthorized 与深层 authentication-required: HTTP 401 同为可重试、都不可反馈给模型);agent:: 过滤 950 passed。
2026-09-24 13:17:21 +08:00
k88936
0262e82572
把 write-back 步骤拆成独立模块
...
新增 steps/write_back.rs,承载保存 State、追加 write-back / outdated 行与漂移文案
把 rebuild_target_state 从 run_workflow.rs 移到 steps/mod.rs,作为已记录 DTO 的重放入口
run_workflow.rs 只保留输入输出类型、三步编排与检查点恢复判定
把 DRIFT_REASON 与两条漂移文案收敛到 write_back 模块,避免编排层和写回层各写一套
同步两份 UI 编辑器技术方案的模块布局与代码地图
2026-09-24 13:09:57 +08:00
k88936
d287061c61
宿主:交付报告兜底只读一次 terminal_report
...
direct_runtime/mod.rs:两处 `Err(_) if terminal_report(...).is_some()` 的 guard 与取值各调了一次 terminal_report,两次之间状态变化就会拿到不一致的结果——流式分支第二次拿到 None 时会把空串当回复返回(界面显示"未返回可展示的回复"),非流式分支则绕过"未返回结果"的兜底错误。改成一次读取后落变量,判据与取值同源;两个分支的优先级(有报告 > 可反馈修复 > 原样抛出)不变。direct_ 过滤 474 passed。
2026-09-24 13:08:48 +08:00
k88936
1c03736d6b
宿主:删掉恒为 false 的 invites_repair 判据
...
direct_turn_error.rs:DirectDomainFact::invites_repair 每个分支都返回 false,is_model_repairable 里的 is_none_or(invites_repair) 实际等价于 is_none(),第一个分支还误导性地暗示"有些事实值得反馈"。删掉该方法,调用点直接写 is_none(),并把"认出是哪一类就拦"的理由写进注释;行为逐条不变(direct_ 过滤 474 passed)。
2026-09-24 13:06:21 +08:00
k88936
6ef64c3bcf
将 design_doc 的切分模块提升为目录模块
...
把 steps/separate.rs 提升为 steps/separate/mod.rs,只保留纯 State 变换
把 design_doc/cut_images.rs 移到 steps/separate/cut_images.rs,与它服务的切分步骤同层
把 normalize_cut_image_path 从 steps/mod.rs 下沉到 steps/separate/mod.rs,紧邻两个使用点
run_workflow.rs 改从 steps::separate 统一导入切分入口与登记入口
同步两份 UI 编辑器技术方案的模块布局与代码地图
2026-09-24 13:05:44 +08:00
k88936
db11bae2d8
注释:说明失败说明身份在无身份无时间时会撞成一条
...
directTurnFailure.ts:原来那句"身份不可证明时退化成与事件时间绑定的固定形状……不会让两轮失败互相覆盖"漏了 `at` 也拿不到的那一档——常量 direct-thread-turn-failure 会让两条这样的失败按同一个 itemId 合并。补上这一档的真实行为与取舍(唯一性与重放不变不可兼得,这里选重放不变),代码不动。
2026-09-24 13:04:11 +08:00
k88936
b0e870e7e2
前端:失败终态载荷的 message 缺字段不再打断 reducer
...
directThreadChat.ts:`turn.completed.failure.message` 在生成类型里是必填 string,但跨 IPC 的载荷没有运行时校验,缺字段 / null 时 `.trim()` 会在 reducer 里抛错,把这条订阅之后的所有事件一起打断;改成与兄弟函数 directTurnFailureNoticeText 一致的 typeof 判据,取不到非空字符串就按"没有原因"收口。
directThreadChat.test.ts:补一条回归用例(message 为 undefined / null 时不抛错、不补空气泡、终态照样收口);变异验证:撤掉 typeof 判据后该用例变红。
2026-09-24 13:03:53 +08:00
k88936
286d919129
测试:失败终态用例断言映射后的文案不落会话列表
...
断言原来查的是命令 Err 的原始文本,而这条文本永远不会被渲染(前端先用 projectRuntimeVisibleError 映射成通用可见文案,再走头部状态行的横幅),因此断言空过、盖不住"命令通道又写一条聊天文案"这个回归。
改成在 `陶泥儿消息` 列表里查映射后的文案(横幅不在这个列表里),并用一次变异验证:在 catch 里补一条 appendLocalMessage 后该用例变红,撤掉即绿。
2026-09-24 13:02:41 +08:00
lhk229
ec3a187dd7
处理编译大量warning问题 ( #503 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m11s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m34s
Project CI / Backend tests (push) Successful in 4m46s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m31s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m41s
Project CI / Frontend tests (push) Successful in 2m19s
Project CI / Native shell tests (push) Successful in 7m5s
Project CI / AI game creator shell web tests (push) Successful in 1m54s
Project CI / Repository checks (push) Successful in 2m36s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/503
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-24 13:01:31 +08:00
suzmii
1931852e9e
补齐打开/选择目录入口的提权拒绝记忆清除
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m45s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Frontend tests (pull_request) Successful in 2m5s
Project CI / Native shell tests (pull_request) Successful in 6m0s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m24s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m38s
Project CI / Repository checks (pull_request) Successful in 2m10s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m1s
- aclElevation:新增唯一入口 clearAclElevationDenials()(Tauri 环境判断 + 命令失败只吞掉,旁路动作不影响本次操作)
- useRecentProjects:rememberRecentWorkspace / refreshRecentWorkspace 改用该共享入口,删掉本地同名实现
- useHomeProjectCreation:openProject 入口先清除拒绝记忆再 inspect,覆盖行内打开、运行中项目入口与文件选择器选择目录;此前只挂在「打开/新建成功之后」,用户点了打开会撞上 120s 冷却直接失败且不弹 UAC
- appSurface/home.suite:新增断言「用户动作先 clear 再 inspect」,并做逆向确认(去掉该调用即红)
- docs:decision-log 写清前端唯一入口与必须挂的四个入口,pitfalls 记录 leader 失效接管这条残余边界
2026-09-24 12:56:47 +08:00
suzmii
9034b8a2d3
合并 master 到 fix/acl-elevation-single-flight
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m8s
Project CI / Backend tests (pull_request) Successful in 4m8s
Project CI / Frontend tests (pull_request) Successful in 2m10s
Project CI / Native shell tests (pull_request) Successful in 6m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m48s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m39s
Project CI / Repository checks (pull_request) Successful in 2m14s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
- 合入 origin/master(dcb4f2a1c):DirectProject 过程卡读秒粒度与样式修复(#508)
- pitfalls.md 冲突按「两边都保留」解决:ACL 单飞条目置顶,其后保留上游 2026-09-24 读秒条目
- 本次合并未改动 ACL 单飞实现(含刚收口的 key 归一化与冷却基准改动)
2026-09-24 12:08:58 +08:00
suzmii
3480a2f331
评审收口:闸门 key 归一化路径写法 + 冷却改从结果落库时刻算起(#498)
...
- acl_repair_gate:冷却基准从 leader 起跑时刻改为结果落库时刻;UAC 被挂着几十秒到两分钟时,120s 拒绝冷却不再提前过期,避免紧跟的自动整表重查立刻再弹一次
- config:新增 windows_acl_repair_gate_key,闸门 key 的路径半边先去掉 \\?\ / \\?\UNC\ 前缀再统一小写;最近项目列表里同一项目实测同时存在 \\?\C:\... 与 C:\... 两种写法,按原始字符串做 key 会让同一个目录弹两次 UAC
- tests/acl_repair_gate:补「冷却从结果落库时刻算起」与「路径写法归一成一个 key」两条用例;两条都做过逆向确认(改回修复前语义即失败)
- docs:decision-log 与 pitfalls 补记 key 归一化、冷却基准,以及真机复现的三个坑(DENY 要加在祖先的父目录、夹具路径必须落在 Managed 放行范围内、提权子进程会按 repair target 再校验 scope)
2026-09-24 12:05:42 +08:00
suzmii
dcb4f2a1c1
Merge pull request '修复 AGC DirectProject 运行中过程卡的读秒粒度与样式' ( #508 ) from fix/recover-100ms into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m48s
Project CI / AI game creator shell Rust crates (push) Successful in 1m0s
Project CI / Backend tests (push) Successful in 4m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m33s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m30s
Project CI / Native shell tests (push) Successful in 6m29s
Project CI / Frontend tests (push) Successful in 2m46s
Project CI / AI game creator shell web tests (push) Successful in 1m59s
Project CI / Repository checks (push) Successful in 2m48s
Reviewed-on: #508
2026-09-24 11:57:11 +08:00
suzmii
67d5ad6026
合并 master 到 fix/acl-elevation-single-flight
...
- 合入 origin/master(87e52860a):后台游戏审核弹窗、客户端维护态错误弹窗、发行入口同源路径等上游变更
- decision-log.md 冲突按「两边都保留」解决:单飞决策条目置顶,其后保留上游同日条目
- 本次合并未改动 ACL 单飞实现本身(acl_repair_gate.rs / config.rs / useRecentProjects.ts 无冲突)
2026-09-24 11:47:33 +08:00
suzmii
e80279c174
修复 AGC DirectProject 运行中过程卡的读秒粒度与样式
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m8s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 53s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m21s
Project CI / Backend tests (pull_request) Successful in 4m12s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m2s
Project CI / Frontend tests (pull_request) Successful in 2m11s
Project CI / Repository checks (pull_request) Successful in 2m33s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m1s
Project CI / Native shell tests (pull_request) Successful in 6m27s
- apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectConversation/DirectProjectConversation.tsx 的 DirectTurnElapsed 改用对话侧共享时钟 useLiveNow(100ms),删掉组件自带的 1000ms setInterval 与 now state:耗时文案不足一分钟保留一位小数,秒级 tick 会让小数位一秒才动一格
- apps/ai-game-creator-shell/src/styles.css 重写 .project-chat-process-card:去掉旧面板遗留的 78px 最小高度与 9px 行距,收敛为单行状态条(padding 8px 12px)
- apps/ai-game-creator-shell/src/styles.css 状态点与扫光改走 --platform-accent(原先写死绿色),标题提到 --platform-text-strong,耗时改 --platform-text-base 并加 tabular-nums
- apps/ai-game-creator-shell/src/styles.css 删除两条永不命中的选择器(卡片渲染在消息列表外,规则却写着 …message-list > .project-chat-process-card)与已无 <p> 渲染的多行摘要样式
- apps/ai-game-creator-shell/src/styles.css 过程卡与最后一条消息之间补 12px 上间距,原先 margin 简写把它清零
- apps/ai-game-creator-shell/tests/directProjectProcessStatus.test.tsx 新增读秒粒度回归用例与「无运行中回合不订阅时钟」用例
- apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts 与 tests/AgentMessageContent.test.tsx 的选择器契约同步到现行 DOM 结构
- docs/project-memory/shared-memory/pitfalls.md 记录「刷新粒度必须与显示精度同格」这条复发坑
2026-09-24 11:47:32 +08:00
kdletters
87e52860a7
游戏发行入口改为平台同源路径
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m11s
Project CI / Backend tests (push) Successful in 5m12s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m26s
Project CI / Native shell tests (push) Successful in 6m31s
Project CI / Frontend tests (push) Successful in 2m20s
Project CI / Repository checks (push) Successful in 2m25s
Project CI / AI game creator shell web tests (push) Successful in 1m21s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- 审核通过时由 api-server 按 gameId 派生 /games/{gameId}/ 相对路径写入公开投影,删除 AppConfig 的发行入口模板字段与读取逻辑
- 删除 deploy/env 两份示例中的 GENARRATIVE_GAME_DISTRIBUTION_RELEASE_ENTRY_TEMPLATE
- 三份 nginx 模板内联同源发行入口 location,把 /games/<gameId>/ 与子资源转发到发行网关并在边缘清空 Cookie
- SPA allowlist 补齐 components、design-system、games、games/detail、games/mine、games/play、games/publish
- 前端 normalizeGameEntryUrl 支持相对路径与同源发行路径,按当前 origin 解析并补尾斜杠,继续兼容历史绝对 URL
- 删除退役的独立来源模板 deploy/nginx/genarrative-release-origin.conf、门禁脚本 scripts/check-release-origin-config.mjs 与其 npm 脚本
- 游戏分发 e2e 脚本改为在公开投影上断言 entryUrl 等于 /games/{gameId}/
- 同步平台主规范、运维主规范、nginx README 与共享决策记录
2026-09-24 00:21:27 +08:00
kdletters
efbdf7031e
统一客户端维护态错误弹窗
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 3m54s
Project CI / Frontend tests (push) Successful in 2m5s
Project CI / Native shell tests (push) Successful in 6m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m19s
Project CI / AI game creator shell web tests (push) Successful in 1m23s
Project CI / Repository checks (push) Successful in 1m55s
客户端维护响应统一识别并广播维护事件
AGC 与网页端根部展示维护大弹窗,收口发布、上传、资源换签和登录错误
补充维护态弹窗测试、类型检查与实施计划说明
2026-09-23 23:16:23 +08:00
kdletters
093f832ef9
优化后台游戏审核操作弹窗
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m29s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m2s
Project CI / Backend tests (push) Successful in 3m48s
Project CI / Frontend tests (push) Successful in 2m4s
Project CI / Native shell tests (push) Successful in 5m57s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m15s
Project CI / Repository checks (push) Successful in 2m10s
Project CI / AI game creator shell web tests (push) Successful in 1m35s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m38s
移除游戏审核页的发行地址提示
将拒绝理由与下架原因改为点击按钮后输入
补充审核与安全下架交互测试
2026-09-23 22:50:36 +08:00
k88936
cf79ac31f7
文档:给"早退"补一句定义
...
docs/adr/【ADR】DirectProject命令接单化-2026-09-23.md:§2 写明"早退"= 回合内任何没走到正常终态的收口点(turn/start 被拒、注入失败、panic)。
docs/technical/【实施计划】DirectProject命令接单化-2026-09-23.md:第 2 步同一处补定义。
docs/technical/【技术方案】DirectProject Codex原始历史与异常恢复-2026-09-04.md:宿主异常收场段补同一句定义。
2026-09-23 22:09:15 +08:00
k88936
ce668bbff3
文档:接单化落地收尾,ADR 转已接受并同步下游口径
...
docs/adr/【ADR】DirectProject命令接单化-2026-09-23.md:状态改成已接受并指向实施计划;"落地时要同步的文档与注释"改成已同步清单。
docs/adr/【ADR】DirectProject对话历史单一事实源-2026-09-16.md:顶部取代注扩到"事件不带回合身份"与"宿主侧 Drop 守卫兜底"两条决策形状,影响一节的两条已知边界逐条写明新口径。
docs/technical/【实施计划】DirectProject命令接单化-2026-09-23.md:四步标记落地并补每步落地结果、验收证据(rust agent:: 949 / 前端 4473)与已知坑。
docs/technical/【技术方案】DirectProject Codex原始历史与异常恢复-2026-09-04.md:正常回合改成接单后先落盘再注入;异常回合收尾写明唯一终态出口是占用对象。
docs/project-memory/shared-memory/decision-log.md:host-dropped 两条口径加取代注(含 kind 追加 environment-not-ready),并追加 2026-09-23 接单化决策一条。
docs/README.md:索引行去掉"未实施",改成四步均已落地。
2026-09-23 22:05:11 +08:00
k88936
2772081791
注释:收尾接单化后两个入口的分工与待办
...
direct_runtime/user_input.rs:补 CLI 与 GUI 的分工——CLI 入口保持 await(它要回复文本,没有事件订阅),两个入口共用同一份接单前检查、同一个命令主体与同一份 Display 文案;DirectTaonierActiveInvocationGuard 的注释改成只挡并发、不再是首页快照来源。
direct_runtime/mod.rs:TODO(Direct 命令接单化) 改成 TODO(失败条目进历史),指向备选方案第 3 条;失败说明本轮不落历史的口径不变。
cli.rs:删掉"带上诊断与 详情: 引用"的过期注释,改成与 GUI 同一份 Display 文案、不另加引用,差别只在 CLI 自己 await 整轮。
2026-09-23 22:04:48 +08:00
k88936
93202f2f91
前端:发送队列放行与埋点结算改听回合终态
...
- reducer 新增 `completedTurnCount`(单调计数):一轮可能在同一次 consume 里开始并结束,
下降沿不可靠,收口是**状态**不是转移
- 队列放行只在"回合终态或拒绝接单"发生;命令返回不再驱动出队
(接单被拒仍当场出队,权限被拒等从未发出的路径保持原样)
- 埋点结算挂到回合终态:接单返回时成绩还没入账,句柄因此活过命令返回;
拒单只丢句柄、不发一次注定被丢弃的结算
- 本地在途标签活到宿主认领这一轮(身份命中 / 出现开始事件 / 收口计数变化),
"命令返回"不再等于"这一轮结束",命令与开始事件之间不再有可发送的空窗
- 删掉 `markTurnStopped()`:终止成功的回合边界由宿主写的兜底终态收口
- 删掉 `turn.started` 的"重复起点保留第一次"兼容分支(接单只发一次开始事件)
- 同步注释:发送时序、待认领窗口、`commandInFlight` 的真实含义
- 测试:队列用例改用终态事件驱动,认证失败用例断言拒单不结算,reducer 补收口计数用例
2026-09-23 21:54:53 +08:00
k88936
fbb161b33e
技术方案标注三个工具的落地顺序已完成
2026-09-23 21:51:52 +08:00
k88936
e8a33591c1
修正 run-workflow 的工具描述口径
...
- 明确本工具会把切分素材回填到 Image 组件、清组件状态、写 NeedReview 后写回并推进 revision
- 明确不做页面发现、多树合并与独立组件绑定,漂移时本轮作废需重新调用
2026-09-23 21:48:51 +08:00
k88936
7f4012697f
run-workflow 的项目权限判据与工具命令映射对齐
...
- 内部 enforce_project_permission_policy 改用与并行账本一致的 asset.register,避免引入无法在项目策略里配置的私有命令 ID
2026-09-23 21:48:12 +08:00
kdletters
cc958f3678
后台新增游戏管理页与全量游戏列表接口
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 5m45s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m51s
Project CI / Native shell tests (push) Successful in 7m25s
Project CI / Frontend tests (push) Successful in 2m33s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m6s
Project CI / Repository checks (push) Successful in 2m1s
Project CI / AI game creator shell web tests (push) Successful in 1m32s
- SpacetimeDB 新增 list_admin_game_distribution_games_and_return:一个事务内返回全量游戏、版本数与最近 20 个版本,作者名/头像读时联 user_account
- SpacetimeDB 新增 restore_game_distribution_game_and_return:恢复管理员暂停的游戏时重新激活最近一次由管理员暂停撤回的公开版本,作者自行下架的版本不会被恢复
- 后台新增 GET /admin/api/game-distribution/games 与 POST /admin/api/game-distribution/games/{gameId}/restore,并新增 game-management Tab 权限,待审队列仍只属于 editor-showcase
- admin-web 新增 #game-management「游戏管理」页:标题/作者/gameId/状态/版本数/游玩数表格,行内下架、恢复与版本历史弹层,复用现有后台表格与二次确认
- 同步生成 spacetime 绑定并更新后端架构数据契约文档
2026-09-23 21:46:40 +08:00
k88936
784f6f0e32
收敛 design_doc 未使用接口并补齐切分 sidecar 收尾
...
- run-workflow 干净跑完后调用 finalize_separation 清理 sidecar,有回填问题时保留给编辑器恢复,与前端切分链路一致
- 检查点恢复校验轮次归属文档,漂移与写回冲突说明带上基线 revision
- WorkflowLog 删除仅供测试的 path 访问器,测试直接用 workflow_log_path
- mod.rs 不再导出仅内部使用的 next_ui_design_path,消除未使用告警
- 技术方案同步 sidecar 收尾口径
2026-09-23 21:44:45 +08:00
k88936
af5fdf8a0e
宿主:首页「运行中的项目」改由 Thread Manager 的逻辑回合导出
...
活动回合表的唯一事实源从"调用身份守卫"搬进逻辑回合占用,任务侧不再另建一张表。
- `ActiveDirectTurn` 带上快照字段(回合身份 / 项目名 / 起点 / 状态 / 活动 / 序号),
接单时初始化,收口时随占用一起消失
- 新增 `update_direct_thread_active_turn`(进度回填,只认身份一致且序号不倒退)与
`list_direct_active_turns`(只导出仍有未收口回合的 thread)
- `DirectActiveTurnSnapshot` 移进 `direct_thread_manager`,`projectPath` 用线程身份,
与事件流里的项目身份是同一个字符串
- `DirectTaonierActiveInvocation` 退回纯单飞锁:只留调用身份与登记时刻
- 回合更新发射器不再按项目路径 canonicalize 找表,改为持线程身份回填
- `DirectTurnReservation::accept` 多带一个 `clientTurnId`(快照与进度匹配用),
与占用 token 是两个身份
- 上下文身份的两个测试补上"逻辑回合也接单"这一步:身份来自接单,不是调用守卫
2026-09-23 21:39:01 +08:00
k88936
544f9ac040
重写 UI 设计文档桥接单测到当前入口
...
- 退役 ensureUiDesignResourceForPrototype / findLinkedUiDesignResource 的 6 条旧用例已随实现删除而无对应导出,测试文件整体失败
- 改为覆盖 createUiDesignDocFromImages:空图片列表拒绝且不调用命令,正常调用透传项目身份与设计图引用
2026-09-23 21:35:57 +08:00
kdletters
cf19241544
游戏发行入口改为服务端按模板派生
...
- 后台审核页删除「发行入口」输入框与前端 HTTPS 校验,审核请求只提交结论与公开修订号
- api-server 新增 GENARRATIVE_GAME_DISTRIBUTION_RELEASE_ENTRY_TEMPLATE 模板配置,审核通过时读版本取 gameId 并派生该游戏独立来源地址
- 模板缺 {gameId}、生产未配置模板、gameId 非主机安全字符或派生结果非法时审核通过失败关闭,非生产未配置时回落本地回环发行网关
- 同步更新发行来源 nginx 模板与说明、两份 api-server 环境变量样例、平台与运维主规范、发行里程碑实施计划和决策记录
- 真实栈 e2e 脚本不再传 entryUrl,并断言审核结果里的入口为服务端派生值
2026-09-23 21:33:42 +08:00
k88936
e360d12ccb
同步 UI 设计文档工具化重写的文档口径
...
- 代码地图补 design_doc 各模块与三个 Agent 工具,并标注旧工具已退役
- project-overview 用三个新工具替换 ui.workflow.run 的旧口径
- App 实施计划追加 2026-09-23 节,记录工具拆分、检查点恢复与退役范围
- decision-log 新增本次决策、取舍与验证方式
- UI 工作流资源桥接旧方案标记 historical,从 docs/README 移入历史集合
2026-09-23 21:33:23 +08:00
k88936
b8d218f741
注册 UI 设计文档三个 Agent 工具
...
- 新增 agent/runtime_tools/ui_design_doc.rs:三个工具的参数解析、项目 ID 与 provider 身份注入、manifest 失效广播
- agent_native_tools 增加三个工具的描述与入参 schema,函数名归一同时处理 '.' 与 '-'
- Runtime 可执行工具目录、并行账本命令映射、design-foundation 自主白名单同步登记
- 新增工具描述可用性与入参校验单测
2026-09-23 21:30:50 +08:00
kdletters
e0c324c0ac
修复游戏封面生成素材 ID 回传
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m33s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m2s
Project CI / Backend tests (push) Successful in 4m7s
Project CI / Frontend tests (push) Successful in 2m10s
Project CI / Native shell tests (push) Successful in 6m12s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m17s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m37s
Project CI / AI game creator shell web tests (push) Successful in 1m34s
Project CI / Repository checks (push) Successful in 2m1s
生成游戏封面请求补充 AGC 客户端来源标记,确保队列 worker 返回 result。
补充封面生成请求断言,锁定平台素材 ID 回填链路。
同步记录缺陷根因与修复约定。
2026-09-23 21:29:18 +08:00
k88936
116d9d5940
新增 run-workflow 编排、切图素材登记与检查点工具函数
...
- 新增 design_doc/run_workflow.rs:recognize → separate → write-back 编排,按检查点行恢复,文档漂移追加 outdated 并报错
- 新增 design_doc/cut_images.rs:按切分路径登记图片并构造 SpriteAsset,按路径复用 manifest 条目、失败不回滚
- persistence 新增 load_ui_design_document_snapshot_at 并让 load_ui_design_state_at 复用它
- checkpoint 新增 checkpoint_timestamp 秒级时间戳
- 切分路径归一下沉到 steps/mod.rs,separate 步骤改用共享实现
- 技术方案同步 design_doc 模块布局与 into-js 复用 persistence 的说明
2026-09-23 21:08:52 +08:00
kdletters
985df53a4e
Router API Key 分组改为与账号同组的 taonier
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / Backend tests (push) Successful in 5m40s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m43s
Project CI / Native shell tests (push) Successful in 7m21s
Project CI / Frontend tests (push) Successful in 2m40s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m45s
Project CI / Repository checks (push) Successful in 1m55s
Project CI / AI game creator shell web tests (push) Successful in 1m25s
- LLM_ROUTER_TOKEN_GROUP 由 default 改为 taonier,Router 用户与它名下固定 Token / API Key 现在同属 taonier 分组
- 保留固定契约归一:创建后无条件 PUT 完整契约(group / unlimited_quota / expired_time),复用与登录恢复路径同样 PUT,存量 default 分组 Token 会在下次 provisioning、登录恢复或显式准备 Key 时纠正
- 同步创建路径与复用路径的注释,保留“分组缺模型会失败为 model_not_found”的排查提示
- 用例同步:2 个用例重命名为 taonier 语义,6 处 group 断言改为 taonier
- 文档同步:外部 OpenAPI 与 APIKey 接入方案写明 Token 与用户同组 taonier 及其前提;决策记录追加 2026-09-23 调整说明
- 验证:cargo test -p api-server --manifest-path server-rs/Cargo.toml --bin api-server external_api_keys(22 passed)、同命令 router 过滤(27 passed)、cargo fmt --all --check、npm run check:encoding、npm run check:doc-index、git diff --check
2026-09-23 20:52:01 +08:00
kdletters
1e0aeb95b0
后台表查询枚举列按 schema 展示变体名,不再只看数值
...
- 新增按 SpacetimeDB schema 解析枚举展示名的实现:读取 typespace.types 与表的 product_type_ref,为每个「Sum 且变体全为单元变体」的列建立按变体索引排列的展示名,变体名归一到 snake_case
- 支持 Option<枚举> 列:标记 optional,[0, [索引, []]] 出变体名、[1, []] 仍是空值;Option<普通值> 与带载荷的 Sum 继续走通用解码,单变体枚举同样出名字
- 删除只覆盖 profile_recharge_order.kind / status 的硬编码映射 normalize_admin_database_known_enum
- 枚举展示名同时作用于行的 cells 与 raw,关键词搜索、结构化筛选和稳定排序都按展示名生效
- 表查询行解析与行构建改为接收枚举映射,schema 夹具用例覆盖直接枚举、Option 枚举、单变体枚举与未知表
- 同步开发运维文档的表查询口径段、后台 skill 的 SATS 展示参考与决策记录
- 验证:cargo test -p api-server --manifest-path server-rs/Cargo.toml --bin api-server admin(139 passed / 0 failed / 1 ignored);cargo check -p api-server;cargo fmt --all --check;npm run check:encoding;npm run check:doc-index;git diff --check;本地 dev schema 回放同一算法,85 张表 32 个直接枚举列 + 2 个 Option 枚举列全部解析出展示名、0 残留
2026-09-23 20:52:00 +08:00
suzmii
5b1fc59d63
Merge pull request '运行页签补齐全屏预览与可收起的信息栏' ( #497 ) from feat/run-view-chrome-cleanup into master
...
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell Rust crates (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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Reviewed-on: #497
2026-09-23 20:50:42 +08:00
suzmii
f056c8a325
Merge remote-tracking branch 'origin/master' into fix/acl-elevation-single-flight
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m50s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m9s
Project CI / Backend tests (pull_request) Successful in 4m43s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m14s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m4s
Project CI / Frontend tests (pull_request) Successful in 2m27s
Project CI / Native shell tests (pull_request) Successful in 6m16s
Project CI / Repository checks (pull_request) Successful in 2m4s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m45s
2026-09-23 20:13:56 +08:00
suzmii
d94ee96836
补一条用例:Rust 侧取消 UAC 的稳定标记同样不触发重试
...
Project CI / AI game creator shell Rust lane 1/2 (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 lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
- tests/recentProjectsHook:AGC_ACL_ELEVATION_DENIED 这类失败只检查一次,钉住 Rust 错误标记与前端「不可重试」判定之间的契约
2026-09-23 20:11:34 +08:00
kdletters
1b05a1d05e
后台充值订单实付口径、发放泥点列、用户累计充值与兑换码单位
...
Project CI / AI game creator shell Rust smoke (push) Successful in 2m17s
Project CI / Backend tests (push) Successful in 4m59s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m29s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m40s
Project CI / Frontend tests (push) Successful in 1m59s
Project CI / AI game creator shell Rust crates (push) Successful in 9m16s
Project CI / AI game creator shell web tests (push) Successful in 1m41s
Project CI / Repository checks (push) Successful in 4m4s
Project CI / Native shell tests (push) Successful in 7m1s
- 新增 AdminRechargeOrderEntryPayload.paidAmountCents:只有 paid_at 存在的订单才有实付,未支付 / 已关闭 / 已过期固定为 0
- 充值管理列表把「金额 / 泥点」拆成「实付」「发放泥点」两列,未支付行实付显示「未支付」并附订单金额小字;退款面板「订单实付」改读同一字段
- 用户详情充值订单表新增「发放泥点」列,商品列只保留商品名,实付同样按 paidAmountCents 展示
- 用户详情新增 cumulativeRechargedCents:api-server 按 user_id 读取 profile_recharge_order,只累加 paid_at 存在的订单金额(退款不回减),单次上限 500 行,读取失败或命中上限返回 null
- 用户详情身份区新增「累计充值」,读不到时显示「未知」,不用用户详情最多 20 条订单在 BFF 或前端近似重算
- 兑换码奖励单位收口为泥点:输入标签与列表列头改「奖励泥点」,单元格带「泥点」单位,避免被当成元
- 新增后端 2 条累计充值口径单测与前端 2 条用例(未支付不显示实付且发放泥点独立成列、累计充值未知态)
- 同步后端架构数据契约(实付口径 / 累计充值来源与上限 / 兑换码奖励单位)与决策记录
- 验证:cargo check -p api-server;cargo test -p api-server --bin api-server admin(138 passed / 0 failed / 1 ignored);npm run admin-web:typecheck;npx vitest run apps/admin-web/src(220 passed);cargo fmt --all --check、check:encoding、check:doc-index、git diff --check 通过
2026-09-23 20:10:20 +08:00
suzmii
c079003719
Merge remote-tracking branch 'origin/master' into fix/acl-elevation-single-flight
...
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (pull_request) Has been cancelled
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
2026-09-23 19:59:41 +08:00
k88936
d31a758c9c
宿主与前端:接单被拒返回 typed 错误,界面按变体分流
...
宿主侧把拒单收成结构化载荷,界面不再解析任何文案前缀。
- `DirectTurnError` 及其嵌套枚举补 `Serialize + TS`,导出到 `chat/generated/`
- 新增 `DirectTurnRejection`(结构化变体 + `Display` 生成的唯一一份文案),命令返回类型改为它
- `EnvironmentNotReady` 补 `environment-not-ready` 失败分类,避免回合失败被写成 `model-failed`
- `TurnAlreadyRunning` 去掉机器前缀,两条文案按身份是否相同分岔
- 删掉「按文案前缀判定」的协议约定与 `is_turn_failure`,通道改由**发生位置**决定
- 兜底终止路径改走 `complete_direct_thread_turn`:写终态的同时解除占用,不再只裸追加事件
前端按 `error.type` 分流,删掉三个按文案判断的旧函数。
- 新增 `readDirectTurnRejection` / `directTurnRejectionNotice` / `directTurnRejectionNoticeMessageId`
- 认得的参数 / 前置条件类(空内容、并发、参数非法、工程根等)写成与用户消息同级的提示,
不占状态行、不写运行错误、不上报
- 认不得的宿主 / 环境事实与其它非结构化错误原样抛出,走既有捕获链路(上报 + 横幅)
- `chat_with_game_creator_direct_codex` 的 catch 从此只剩「拒单」一种输入
测试与绑定同步更新:appSurface 两条用例按新语义重写,`userItemId` / 终态时刻的注释跟着改。
2026-09-23 19:56:26 +08:00
kdletters
0dbd279dfc
后台 Dashboard 消耗泥点改为对冲退还后的净消耗
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m1s
Project CI / Backend tests (push) Successful in 5m16s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 6m42s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m21s
Project CI / Native shell tests (push) Successful in 6m43s
Project CI / Frontend tests (push) Successful in 2m22s
Project CI / Repository checks (push) Successful in 2m45s
Project CI / AI game creator shell web tests (push) Successful in 2m7s
- consumedMudPoints 改为净额:按北京时间业务日先抵当日消耗,不足再回溯抵扣最近仍有净额的业务日,抵扣不完的丢弃,每日净额非负且区间合计严格等于「消耗 − 退还」
- 退还口径并入 asset_operation_refund 正向流水(生成失败退还、精选审核返还)与 llm_router_consume 正向冲正流水;充值退款追回、余额重置、赠送和 hold 仍不计入
- 契约新增 refundedMudPoints,后端新增「退还泥点」趋势图,后台时段数据并列「退还泥点数」卡,毛消耗可由「消耗 + 退还」核出
- 新增 4 条净额单测(同日对冲 / 回溯抵扣 / 超额归零 / 无退还保原值)与 Dashboard 用例断言
- 同步 Dashboard 运营看板方案指标口径与决策记录
- 验证:cargo test -p api-server --bin api-server admin(136 passed / 0 failed / 1 ignored)、npm run admin-web:typecheck、npx vitest run apps/admin-web/src(218 passed)、cargo fmt --all --check、npm run check:encoding、npm run check:doc-index、git diff --check 全部通过
2026-09-23 19:56:24 +08:00
kdletters
eb192eb161
修复渠道配置替换窗口契约导致的系统标题栏回归与登录请求被拒
...
- 渠道 --config 改为从基线 tauri.conf.json 读取完整 client 窗口对象后展开、只覆盖 title,避免 Tauri JSON Merge Patch 整体替换 app.windows 丢掉 label / decorations / 尺寸
- build-release.test.mjs 新增合并守卫用例:按同一 merge patch 语义复现 Tauri 合并,断言 label=client、decorations=false、1280x800、min 1280x720,且承载 http:default 的 capability 必须包含该 label
- check-config.mjs 增补基线 client 窗口 decorations 必须为 false 的门禁
- 更新 AGC 客户端更新检查与下载技术方案,写明渠道配置必须下发完整窗口对象的约定
- pitfalls.md 记录本次回归的现象、根因、现行口径与验证证据
2026-09-23 19:54:11 +08:00
k88936
3c4c546ed5
新增自动切分结果落 State 的镜像步骤
...
- Node 新增 find_mut,深度优先可变定位节点,镜像前端 findUiNodeLocation
- 新增 design_doc/steps/separate.rs:素材合并去重与资源校验、按 bound_nodes 回填 target_graphic、统一写 problematic_nodes 的 NeedReview
- 覆盖重复素材、缺失素材、节点缺失、非 Image 组件、已绑定其他素材与问题文案回退的单测
2026-09-23 19:51:16 +08:00
suzmii
af099abbfa
AGC ACL 提权修复按目标做 single-flight,避免并发重复弹 UAC
...
- 新增 acl_repair_gate:以 (规范化 repair target, scope) 为 key 的进程级 single-flight 与结果冷却(成功 30s / 失败 15s / 用户取消 120s),等待窗口 60s 超时按失败关闭
- acl_repair_gate:leader 异常退出由 RAII 兜底记为失败并唤醒全部等待者,避免等待者被永久挂住
- config:提权修复改经闸门执行;用户取消 UAC 统一返回稳定标记 AGC_ACL_ELEVATION_DENIED,不再依赖中文文案判定
- commands/main:新增 clear_game_creator_acl_elevation_denials,供用户主动操作时解除拒绝记忆
- useRecentProjects:识别新的稳定标记;打开/新建项目与重命名刷新时清除提权拒绝记忆
- tests/acl_repair_gate:并发只执行一次、冷却复用、清除后可重试、follower 超时、leader panic 唤醒等待者
- docs:decision-log 与 pitfalls 记录 single-flight 取舍与未做项
2026-09-23 19:44:06 +08:00
k88936
b1a356aa0d
新增自动切分素材构造器与 design_doc 共用夹具
...
- SpriteAsset 新增 path 访问器与 from_registered_image,镜像前端 prepareSpriteAssetBatch 的空名称、无边框、像素比 1 口径
- 新增 design_doc/test_support.rs,集中 State、节点、素材的最小构造夹具
- recognize 单测改用共用夹具,删除本地重复的 image/state_with/root 构造
2026-09-23 19:41:01 +08:00
suzmii
c723e0b1bf
合并 master:标题栏弹层契约、发行包上限与策划回复修复等上游变更
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m51s
Project CI / Backend tests (pull_request) Successful in 4m57s
Project CI / Native shell tests (pull_request) Successful in 6m8s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m12s
Project CI / Frontend tests (pull_request) Successful in 2m3s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m14s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m21s
Project CI / Repository checks (pull_request) Successful in 1m45s
- 合并 origin/master(自绘标题栏作为窗口边框的弹层契约、游戏发行包上限提升到 200 MiB、策划回复重复播放修复 #501、标题栏品牌标签用例修正 f0ef06891 等)到本分支,保持 PR #497 可合并。
- 冲突仍只在 `docs/project-memory/shared-memory/decision-log.md` 顶部新增条目:按「新条目在上」保留双方内容,本分支的运行视窗条目在前。
- 上一轮合并记录的「`WindowChrome` 用例断言渠道产品名 stale」已由上游 f0ef06891 自行修复,本轮合并后该用例恢复通过。
- 上游改动未触及本分支的运行页 chrome 与预览适配文件;合并后重跑 `ai-game-creator-shell:check:web`、编码检查与 `git diff --check`。
2026-09-23 19:37:07 +08:00
k88936
b34f1c9b3a
新增结构识别结果落 State 的镜像步骤
...
- design_doc/steps/recognize.rs:apply_recognition 整树替换,并按 DTO 顺序逐棵重推横向偏移
- 镜像 deriveTreeOffset / treeSize 与 UI_TREE_PADDING=48,先落位的树把后面的树推到右边
- 设计图缺失或像素比非法时按前端同口径报「界面图 X 缺少合法尺寸」
- 三个单测覆盖左右排布、整树替换与缺失设计图失败
2026-09-23 19:32:13 +08:00
k88936
f9a2cbe26e
新增工作流检查点日志模块
...
- design_doc/checkpoint.rs:run / recognize / separate / write-back / outdated 五种行
- 路径推导 ui/.<文档名>-workflow.jsonl,与文档同级且不进 manifest
- 追加时先截断崩溃留下的半行再一次性写入并 sync,避免半行夹在日志中间
- 扫描只保留最后一轮,写回或 outdated 视为轮次结束;坏行失败关闭
- 载荷一律按 serde_json::Value 存回,模块不认识业务 DTO 与 State 类型
- 六个单测覆盖路径推导、轮次遮蔽、两种结束行、半行丢弃与坏行失败
2026-09-23 19:24:07 +08:00
suzmii
5e5407e4cf
合并 master:引用粘贴解析与渠道产品名等上游变更
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m21s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 45s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Successful in 1m58s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (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 lane 2/2 (pull_request) Has been cancelled
- 合并 origin/master(引用名归一化与粘贴解析 #473 系列、客户端渠道产品名统一 ebb288a6a、#500 等)到本分支,保持 PR #497 可合并。
- 冲突仍只在 `docs/project-memory/shared-memory/decision-log.md` 顶部新增条目:按「新条目在上」保留双方内容,本分支的运行视窗条目在前。
- 上游改动落在 `features/project-workspace` 的引用链路与渠道命名脚本上,未触及本分支的运行页 chrome 与预览适配文件。
- 合并后 `apps/ai-game-creator-shell:check:web` 有 1 条红:`tests/WindowChrome.test.tsx` 仍断言标题栏品牌名为 `陶泥儿 GameAgent`,而 ebb288a6a 把该处改成读取 `APP_NAME`(未注入 `VITE_AGC_PRODUCT_NAME` 时回退 `陶泥儿开发版`),测试未同步。已验证与本分支无关:把这两个文件的合并前版本换回来 5/5 通过,换回合入版本即 1 条红。等上游修,本分支不动。
2026-09-23 19:21:33 +08:00
lhk229
9bd4a1734c
修复策划回复重复播放并保留伪流式 ( #501 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
Project CI / Backend tests (push) Successful in 5m7s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m8s
Project CI / Native shell tests (push) Successful in 6m15s
Project CI / Frontend tests (push) Successful in 2m12s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m27s
Project CI / AI game creator shell web tests (push) Successful in 1m39s
Project CI / Repository checks (push) Successful in 2m20s
按消息 ID 统一策划回复呈现,隔离旧回合收尾并补全忙碌态清理;同步回归测试与文档。已合并 origin/master 并通过定向验证。
2026-09-23 19:19:26 +08:00
lhk229
248003a445
合并主线更新并保留双方排障记录
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
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 / Native shell tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
合并 origin/master 的上传续传、标题栏弹窗及测试更新。
解决排障文档冲突,保留策划回复与标题栏问题记录。
2026-09-23 11:18:46 +00:00
k88936
8ac8f2ff5d
补充 run-workflow 的轮次、漂移与写回幂等口径
...
- 检查点行补充 outdated 与起始 revision,明确 write-back / outdated 都是轮次结束行
- 追加前截断半行,避免崩溃留下的半行夹在日志中间
- 文档中途漂移时追加 outdated 并返回错误,由下一次调用显式开新一轮,不在同一次调用内自动重启
- 写回按「目标 State 与文档当前 State 相等」判幂等,并记录该判据成立的前提
- 切图资源失败不回滚,NeedReview 由 separation DTO 的 problematic_nodes 在编排阶段统一回写
2026-09-23 19:12:19 +08:00
kdletters
f0ef068910
修正标题栏品牌标签用例对渠道产品名的断言
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m37s
Project CI / AI game creator shell Rust crates (push) Successful in 1m18s
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- WindowChrome 用例改用 appMetadata 的 APP_NAME(dev 渠道为陶泥儿开发版),不再硬编码旧产品名
2026-09-23 19:07:37 +08:00
kdletters
c2c5e1ced5
发行包上限提升到 200 MiB 并支持 AGC 分片续传上传
...
- 发行包上限 100→200 MiB、展开总量 250→500 MiB,整包路由请求体上限继续从包上限派生;发行静态资源进程内缓存预算提到 256 MiB
- 反代放行量同步放宽到 210 MiB:Nginx 三份模板的 client_max_body_size、Pingora 网关默认值与 env 样例、路由对照矩阵
- platform-oss 新增内部对象追加写 append_internal_object(_with_retry),以 OSS 返回的 next-append-position 作为权威已收字节
- api-server 新增 upload-state / chunk / complete / reset 四条分片路由,抽出共享收口 confirm_validated_package;偏移不符返回 409 与权威偏移,校验失败删除半包并落 upload_failed
- AGC 新增原生上传器 game_package_upload.rs(内容寻址暂存、分片续传、受控重试、进度事件)与 prepare / upload 两条命令,退役整包回传命令
- 渲染进程改为 prepare → 创建游戏 → 创建版本 → 原生分片上传 → 送审,LocalProjectExportPackagePayload 整包类型退役
- 同时修正 live 用例无法指向本地栈的两处基础设施问题:平台基址按传入 URL 选择,桥接层把 jsdom realm 的 Headers / Blob / FormData 降级成 Node 原生值
- 测试:platform-oss 74、api-server game_distribution 23、AGC 原生 4、发布相关前端 20;live 用例补真实栈「中断 → 续传 → 确认」断言(分片偏移序列 [0, 8388608])
- 文档:玩法创作主规范的上传合同、运维与 Pingora 文档、决策记录、发行里程碑口径,以及新增的续传里程碑与实施计划
2026-09-23 19:06:02 +08:00
kdletters
c38d07044a
修复 AGC 弹窗打开时自绘标题栏窗口按钮失效
...
- ThemedModal 的焦点陷阱只放行落在 [data-window-chrome-bar] 内的点击,标题栏拖拽与最小化/最大化/关闭恢复可用,工作区内容点击仍被拦住
- WindowChrome 标题栏加 data-window-chrome-bar 标记,作为这条约定的唯一契约点
- styles.css 明确「全屏弹层一律从标题栏下方开始」,.app-update-overlay 从 inset:0 改为标题栏下方,.game-publish-progress-overlay 显式声明 top
- 新增 tests/windowChromeOverlayContract.test.ts 覆盖 7 个全屏弹层;themedModal / WindowChrome 用例补「标题栏点击放行 + 工作区点击仍被拦」回归;gamePublishFeedback 用例按新口径断言
- pitfalls 记录该静默失效的机制与现行口径
2026-09-23 19:05:33 +08:00
lhk229
efbfc8085d
Merge branch 'master' into fix/design-agent-fe
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m19s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 57s
Project CI / Backend tests (pull_request) Successful in 5m11s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m33s
Project CI / Native shell tests (pull_request) Successful in 6m43s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m7s
Project CI / Frontend tests (pull_request) Successful in 3m1s
Project CI / Repository checks (pull_request) Successful in 3m23s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m37s
2026-09-23 19:04:31 +08:00
lhk229
2c778fb027
补全聊天作用域重置时的忙碌态清理
...
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (pull_request) Has been cancelled
重置聊天状态时同步清空 chatAgentBusy,保留旧请求的回合归属检查。
同步更新策划会话的作用域清理约定。
2026-09-23 11:03:03 +00:00
k88936
ea4fbc66ff
宿主:DirectProject 命令只接单,整轮改由后台任务跑
...
- 命令顺序固定为 clientTurnId 校验 → 占用调用身份 → 工作流恢复 → 用户条目校验 → 前置条件 → 工程准备 → 接单 → 落盘用户条目 → spawn
- 命令返回值收窄成"拒单":接单成立后不再有 Err,整轮结果只由事件流回答
- 新增 check_direct_turn_preconditions,前置检查从 run_..._and_emitter 上移,GUI 与 CLI 共用
- 作废"调用级拒绝直通"分支:判据改成位置,接单后一律按回合失败处理
- 删除 DirectTurnError::is_turn_failure,EnvironmentNotReady 补 wire_kind = environment-not-ready
- run_turn 不再重复落盘用户条目,只把它的身份作为第一条运行态条目下发
- 新增用例:接单之后才发现的失败也必须补出 turn.completed
2026-09-23 18:57:27 +08:00
kdletters
ebb288a6a4
统一客户端渠道产品名称
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m28s
Project CI / AI game creator shell Rust crates (push) Successful in 59s
Project CI / Backend tests (push) Successful in 4m50s
Project CI / Native shell tests (push) Successful in 5m43s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m23s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m55s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / AI game creator shell web tests (push) Failing after 1m52s
Project CI / Repository checks (push) Successful in 2m29s
dev 渠道显示为陶泥儿开发版并保持既有 identifier 与升级链。
将产品名注入 Tauri、原生窗口、前端标题栏和关于页面,统一快捷方式与注册表展示来源。
补充渠道配置门禁、发布脚本测试和渠道身份文档。
2026-09-23 18:53:23 +08:00
k88936
661867c307
Merge pull request '功能:引用输入区支持粘贴解析 @显示名 / $名称' ( #473 ) from feat/smart-paste into master
...
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Reviewed-on: #473
Reviewed-by: 孔令弘 <ink29535@proton.me >
2026-09-23 18:51:23 +08:00
k88936
c0e233fe6c
Merge remote-tracking branch 'origin/master' into feat/smart-paste
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
2026-09-23 18:50:15 +08:00
k88936
136e1ebceb
Remove redundant fuzzy_lookup methods from test ReferenceProviders for cleanup
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
2026-09-23 18:49:07 +08:00
k88936
c650c0297c
宿主:逻辑回合的边界交给 Thread Manager,接单即成对
...
- direct_thread_manager 新增逻辑回合占用:接单在同一个临界区里拒并发 + 登记占用 + 追加 turn.started,返回已占用的 token
- direct_thread_manager 拆出深层终态出口与占用兜底出口,notify 从 append 里抽出来复用
- 新增 direct_turn_accept:接单对象持有这一轮的终态出口,Drop 兜底补 host-dropped
- direct_turn_failure 删除 DirectTurnFailureGuard,终态改成显式构造的 DirectTurnTerminal
- codex_app_server 不再镜像 Codex 原生回合:删掉 run_turn 内的 turn.started 与守卫武装,终态改走 complete_direct_thread_turn
- 用户条目事件仍由 run_turn 下发,顺序固定为逻辑回合开始 → 用户消息 → 起 codex
2026-09-23 18:42:27 +08:00
suzmii
16361bfbe1
修复退出全屏后运行画面不回缩,并收口信息栏开合与文档口径
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 59s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m26s
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Successful in 2m5s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m31s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m40s
Project CI / Native shell tests (pull_request) Successful in 5m55s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 8m24s
- `resolveLocalGamePreviewFitLayout` 增加回退:上报的内容尺寸等于它被接受时的容器尺寸(自适应页面把视口原样报回)时不算内容高水位,直接按容器取画布——修复「全屏预览退出后画布仍保持全屏比例、永久带黑边」;真比容器高的页面(内容 ≠ 视口)仍按原生尺寸缩放显示。
- 该回退的已知残余(固定尺寸页面恰好等于接受时的容器且之后不上报新尺寸会被裁)与「内容尺寸没变就改认新容器」这条更差尝试一起写进代码注释与 decision-log;根治方向记在桥/协议侧。
- `tests/localGamePreviewFrame.test.ts` 抽出 `renderFittedFrame` 夹具,补「退出全屏回到容器尺寸」(改前必红)与「容器缩小后按新内容尺寸重新适配」两条用例。
- 信息栏手动态改为按资源 id 在渲染期派生(去掉 effect 回写),修掉「刚有内容那一帧先画收起态」的抖动,并让 `onClick` 写入的字段与派生读的字段一致。
- AGC 子集删掉恒真的「数值微调面板不存在」断言,保留「卡片不渲染」与「开合行不渲染」两条独立事实。
- 文档同步:PRD §3.4、技术方案与 decision-log 的信息栏判据口径改为「资源选中态」,并记录全屏回归的根因、修法、残余边界与桥协议根治方向;2026-08-23 适配条目补一条指向本次收口。
2026-09-23 18:38:47 +08:00
lhk229
688cf7a971
修复策划回复重复播放并保留伪流式
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m59s
Project CI / Backend tests (pull_request) Successful in 5m1s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m7s
Project CI / Native shell tests (pull_request) Successful in 6m17s
Project CI / Frontend tests (pull_request) Successful in 2m9s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m29s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m42s
Project CI / Repository checks (pull_request) Successful in 2m18s
按消息 ID 合并实时正文与正式消息,保留逐步显示进度
分离请求收尾与动画结束,隔离旧回合事件及异步返回
独立展示工具状态,保留 Provider 重试的正文重置语义
补充重复终态、整块回复、多消息及回合隔离回归测试
同步更新策划展示规范与排障记录
2026-09-23 10:38:01 +00:00
lhk229
c2ec978199
修复宿主继续请求重复发送原始用户输入 ( #500 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 4m51s
Project CI / Native shell tests (push) Successful in 5m57s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m2s
Project CI / Frontend tests (push) Successful in 2m1s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m7s
Project CI / AI game creator shell web tests (push) Successful in 1m20s
Project CI / Repository checks (push) Successful in 1m43s
区分首次用户请求与宿主反馈,继续时发送实际验收或错误信息
固定 GUI 和 CLI 的原始用户条目,保留历史与回合身份关联
补充结构化输入、反馈发送、图片输入和历史去重的定向回归测试
同步更新实施计划与排障记录,保持交付验收条件和预算不变
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/500
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-23 18:20:42 +08:00
k88936
648ead2150
新增 UI 设计文档创建入口 create_ui_design_doc_from_images
...
- 新增 ui_editor/design_doc/creation.rs:由一至四张设计图新建文档,未登记路径顺带登记成 ui-design 图片资源,文档内设计图身份取图片 assetId
- persistence.rs 把单图初始化泛化为 initialize_ui_design_state_with_images_at,支持多张设计图并拒绝重复
- 删除 resource_bridge.rs 与 create_ui_design_resource、ensure_ui_design_resource_for_prototype 两个命令,取消「原型 → 已存在文档」的幂等查找
- main.rs 注册 create_ui_design_doc_from_images 并移除两个旧命令注册项
- 前端 uiDesignResourceBridge 改为调用新命令,project-development 去掉 ui-workflow.completed 的自动打开与阶段跳转分支
- 代码地图同步 design_doc 模块与关键命令列表,测试改为覆盖新入口的编号避让
2026-09-23 18:14:15 +08:00
k88936
f672a04ebb
文档:DirectProject 命令接单化实施计划
...
- 新增实施计划:四步落地顺序(Thread Manager 逻辑回合 → 命令接单 + 后台整轮 → typed 拒单 → 队列/埋点/快照/reducer),每步给改动点、不变式与验收
- 记录已落地三项(重试删除、详情引用删除、失败进池与不落历史)与三条已知坑
- docs/README.md 索引补上该计划
2026-09-23 17:59:34 +08:00
k88936
5398a53e6e
宿主与前端:用户可见文案不再带诊断引用,失败也进错误上报池
...
- `record_direct_codex_failure` 的收口文案去掉 `;详情:<path>`,诊断 sidecar 与应用日志照写
- 同一出口把最终文案送进错误上报池:命令接单化后前端 catch 只剩"接单被拒",池不能只靠前端填
- 删除 `persist_direct_codex_failure_context`:失败说明本轮不写进项目历史,留 TODO 记录以后"进历史但不喂模型"的通道
- 删除只服务详情展开的 IPC `read_agent_runtime_error_detail` 及其注册
- 前端去掉 `详情:` 正则与第二次读取,横幅只显示一句话
- 同步命令边界与相关测试注释
2026-09-23 17:57:36 +08:00
k88936
58c59b750e
Merge remote-tracking branch 'origin/master' into feat/smart-paste
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m14s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 56s
Project CI / Backend tests (pull_request) Successful in 4m42s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m4s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m15s
Project CI / Native shell tests (pull_request) Successful in 6m1s
Project CI / Frontend tests (pull_request) Successful in 2m26s
Project CI / Repository checks (pull_request) Successful in 2m33s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m31s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-23 17:52:49 +08:00
k88936
665788760e
新增 UI 设计文档工具的提示词目录模块
...
- 新增 prompts/runtime/texts/ui-design-doc.json,承载 from-images、run-workflow、into-js 三个工具的描述与参数文案
- manifest.json 的 textCatalogs 登记 uiDesignDoc 目录
2026-09-23 17:51:40 +08:00
k88936
e776aa1084
前端:删掉由 invoke 拒绝驱动的认证重试
...
- `directCodexSession.ts` 改名 `directCodexSessionKeepalive.ts`,只保留会话保活常量,删除 `withDirectCodexSessionRefresh` 的"刷新 + 重跑整轮"及其登录失效识别
- 发送回合与终止回合两处调用点直接 invoke,不再包一层重试
- controller 的 catch TODO 更新为新形状:命令只接单、拒单返回 typed 错误、整轮结果只由事件载荷回答
2026-09-23 17:50:58 +08:00
suzmii
d7440473af
合并 master:最近项目重试与发布资料交互等 12 个提交
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m1s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m20s
Project CI / Backend tests (pull_request) Successful in 4m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m17s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m24s
Project CI / Native shell tests (pull_request) Successful in 5m38s
Project CI / Frontend tests (pull_request) Successful in 1m59s
Project CI / Repository checks (pull_request) Successful in 1m55s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m22s
- 合并 origin/master(`297d7bf1e` 及之前 12 个提交:最近项目检查失败重试、AGC 发布资料与截图交互、模板库筛选表现等)到本分支,保持 PR #497 可合并。
- 冲突仍只在 `docs/project-memory/shared-memory/decision-log.md`:双方都在顶部新增 2026-09-23 条目,按「新条目在上」保留双方内容,本分支条目在前。
- `apps/ai-game-creator-shell/src/styles.css` 为自动合并;逐条核对本分支运行页改动(全屏钮、信息栏开合、数值微调隐藏)的五处选择器仍在,其余为上游更新弹窗与主题调整。
2026-09-23 17:49:44 +08:00
k88936
02e29ba555
新增 UI 编辑器 Agent 工具化重写技术方案
...
- 新增技术方案:三个工具契约、两步工作流、JSONL 检查点、Rust 与提示词目录模块布局、落地顺序
- 代码地图同步退役 merge/binding/workflow.rs、关键命令列表与类型文件数量
- docs/README.md 收录该方案
2026-09-23 17:49:27 +08:00
k88936
e0d88fe8e4
文档:DirectProject 命令接单化定稿
...
- 重写 ADR:逻辑回合归 Thread Manager、接单/拒单判据改成发生位置、拒单载荷复用 typed 错误、userItemId 由 clientTurnId 推导、提示与用户消息同级并删除详情、队列与埋点改挂回合完成、失败原因本轮不落历史
- CONTEXT.md 新增「逻辑回合」「接单」「拒单」「在途回合」四个术语
- 对话历史单一事实源 ADR 加注:两条已知边界已由新 ADR 重新决策
- Codex 原始历史技术方案加注:三句结论待实施时按新 ADR 修订
- docs/README.md 索引补上该 ADR
2026-09-23 17:47:59 +08:00
k88936
3a35127b3b
记录 UI 设计文档与检查点日志术语及 ADR
...
- CONTEXT.md 新增 UI 设计文档、设计图、UI 工作流步骤、工作流检查点日志四个词条
- 新增 ADR 说明检查点采用追加式 JSONL 日志并记录两种被否方案
- docs/README.md 收录该 ADR
2026-09-23 17:47:00 +08:00
k88936
fb49b5fc5d
前端移除 UI 编辑器合并与绑定调用
...
- 删除 features/ui-editor/merge.ts 与 MergeDTO、BindingDTO、BindingChange 类型文件
- useUiEditorPage 去掉 mergeUi 操作、合并运行态、合并状态与投影字段
- isAiRunning 不再把合并运行态计入编辑器忙状态
2026-09-23 17:46:06 +08:00
k88936
31a1660e41
退役 UI 编辑器多树合并与组件绑定链路
...
- 删除 ui_editor/commands/merge.rs 与 binding.rs 两个实现及其 MergeDTO、BindingDTO
- commands/mod.rs 去掉两个模块声明、DTO 导出与 impl 再导出
- main.rs 去掉 merge_ui、bind_components 两个 Tauri 命令及注册项
2026-09-23 17:44:48 +08:00
k88936
006d278e9f
退役 Agent 侧 ui.workflow.run 工作流工具
...
- 删除 ui_editor/workflow.rs 与 agent/runtime_tools/ui_workflow.rs 两个工作流实现模块
- agent_native_tools 去掉 ui.workflow.run 的工具描述与 schema 分支
- prompts/runtime/texts/native-tools.json 删除 ui.workflow.run.description 文案
- runtime_tools/policy、tool_policy_snapshot、parallel_ledger、project_gates 移除该工具的白名单与门禁引用
- action_execution 去掉 ui.workflow.run 分发分支,action_audit 删除整块工作流审计与枚举项
- runtime_protocol 的 verification 与 acceptance_graph 去掉工作流校验项
- tool_plan_handoff/content_validation 去掉 ui-design pages 校验分支
- ui_editor/mod.rs 去掉 workflow 模块声明
2026-09-23 17:43:48 +08:00
suzmii
8d487685f3
合并 master:上游 18 个提交并保留运行页签 chrome 改动
...
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
- 合并 origin/master(斜杠命令退役、筛选控件选中态、埋点后台排序、发版脚本等)到本分支,解决 PR #497 的冲突。
- 冲突只在 `docs/project-memory/shared-memory/decision-log.md`:双方都在文件顶部新增条目,按「新条目在上」保留双方内容,本分支的 2026-09-23 条目在前。
- `apps/ai-game-creator-shell/src/styles.css`、`tests/appSurface/project-development.suite.ts` 与实施计划技术方案为自动合并,逐块核对本分支的运行页改动(全屏钮、信息栏开合、数值微调隐藏)仍完整保留。
2026-09-23 17:41:00 +08:00
kdletters
297d7bf1e7
优化 AGC 发布资料与截图交互
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / Backend tests (push) Successful in 4m39s
Project CI / Native shell tests (push) Successful in 5m49s
Project CI / Frontend tests (push) Successful in 2m1s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m29s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m31s
Project CI / AI game creator shell web tests (push) Successful in 1m53s
Project CI / Repository checks (push) Successful in 2m25s
发布门禁阻断提示改为独立弹窗且不写入聊天记录
移除发布面板发行包技术摘要
新增免费发布简介与分类建议接口和前端回填
接入封面泥点定价、确认与生成流程
截图改为并行上传,单张失败隔离且不阻断发布
截图操作改为图标,失败项内嵌错误与删除
同步发布合同、实施计划和决策记录
2026-09-23 17:40:08 +08:00
suzmii
64018f9661
Merge pull request '修复 AGC 最近项目「检查失败」被钉死:失败退避重试 + 按轮重查(#490)' ( #492 ) from fix/agc-recent-project-status-retry into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m50s
Project CI / Backend tests (push) Successful in 3m52s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 5m48s
Project CI / Frontend tests (push) Successful in 2m24s
Project CI / Native shell tests (push) Successful in 6m22s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m14s
Project CI / Repository checks (push) Successful in 2m32s
Project CI / AI game creator shell web tests (push) Successful in 2m7s
Reviewed-on: #492
Reviewed-by: 孔令弘 <ink29535@proton.me >
2026-09-23 17:30:59 +08:00
suzmii
09fb8bc076
运行页签补齐全屏预览与可收起的信息栏
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m5s
Project CI / AI game creator shell Rust lane 2/2 (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 / Frontend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
- 运行画面右下角新增「全屏预览」:新增 `useElementFullscreen`,只把画面那一格(`.game-run-preview`)送进全屏,按钮态只认 `fullscreenchange`,宿主没有 Fullscreen API 时整枚入口不渲染。
- 底部信息栏改为「有内容才存在」:运行页选中资源时自动展开,可手动收起到只剩一行开合按钮,清空选中后整栏不渲染;只有一栏内容时卡片铺满整行。
- 「数值微调」在没有登记表前不渲染区域标题与卡片,随这一栏删除其 label / input 样式声明。
- 新增 `tests/runPreviewFullscreen.test.tsx`;AGC 子集补信息栏开合用例,并把「没有内容仍渲染两张空卡片」的旧断言改成整栏不渲染。
- 同步 PRD §3.4、技术方案运行表现层条目与 project-memory 决策记录。
2026-09-23 17:26:53 +08:00
suzmii
b48953f87c
Merge remote-tracking branch 'origin/fix/agc-recent-project-status-retry' into fix/agc-recent-project-status-retry
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m30s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m9s
Project CI / Backend tests (pull_request) Successful in 5m2s
Project CI / Native shell tests (pull_request) Successful in 6m57s
Project CI / Frontend tests (pull_request) Successful in 2m35s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m19s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m23s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m23s
Project CI / Repository checks (pull_request) Successful in 1m48s
2026-09-23 17:13:23 +08:00
suzmii
924d5d3fd0
Merge remote-tracking branch 'origin/master' into fix/agc-recent-project-status-retry
...
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-23 17:10:38 +08:00
lhk229
5bc5328c06
客户端埋点复用已有下载渠道配置 ( #496 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m18s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Backend tests (push) Successful in 3m42s
Project CI / Frontend tests (push) Successful in 1m44s
Project CI / Native shell tests (push) Successful in 5m37s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m24s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m30s
Project CI / Repository checks (push) Successful in 2m0s
Project CI / AI game creator shell web tests (push) Successful in 1m31s
删除独立埋点 origin 环境变量及配置字段,按 dev/release 渠道校验官方站点。
本地开发、测试及容器的 dev 渠道允许规范回环地址,兼容可变端口。
同步环境变量示例、技术方案和运维说明,补充渠道隔离与身份校验测试。
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/496
2026-09-23 17:03:17 +08:00
suzmii
e6ed3cae2c
Merge remote-tracking branch 'origin/master' into fix/agc-recent-project-status-retry
...
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-23 16:54:56 +08:00
kdletters
e072c66ce9
修复 AGC 模板库筛选与卡片状态的表现缺陷
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 Rust crates (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
- 模板库筛选区改用共享筛选条与标签 chip:选中为实心品牌填充 + 反白文字,未选为浅底描边
- 未选中悬停不再借用品牌色(品牌色专属已选中),状态阶梯固定为静止 / 悬停 / 按下 / 选中
- 新增 getPlatformCategoryChipClassName 收敛筛选 chip 类名口径,模板库、资源画布、参考图弹窗与平台 Web 端共用
- PlatformSegmentedTabs 增加 accent 选中口径,与筛选 chip 共用 --platform-chip-* 语义色
- 修复卡片文字区按 grid auto 行排版导致的标题 / 简介 / 标签被裁:行高契约拆为分项常量,文字区固定 174
- 修复忙状态下动作行塞入第三个元素导致的按钮文案换行顶出卡片:忙状态写在触发它的按钮上
- 修复经典滚动条占宽导致的卡片区横向滚动条:按竖滚动条预留列宽后再算列宽行高
- 焦点环由 15% 透明度改为实心色并用 outline 绘制,选中项聚焦不再被状态投影盖掉
- 封面加载失败改为隐藏图片留中性底色,不再出现浏览器裂图图标
- 补充状态对比度、行高契约、滚动条预留、封面兜底与忙状态文案的回归测试
- 同步技术方案、踩坑记录与决策记录的口径
2026-09-23 16:51:15 +08:00
suzmii
5bdf25cfd7
评审收口:提权类失败不再重试、重命名路径复用重试、退避预算绑定失败集合
...
- useRecentProjects:区分可重试失败与提权/权限类失败,后者不再就地重试、也不驱动整表重查,避免自己驱动 UAC 反复弹窗
- useRecentProjects:提权类失败的项目在用户主动打开/新建项目或重命名刷新前跳过检查
- useRecentProjects:退避重查预算绑定到失败集合,集合变化或整轮无失败即重置,长期坏目录不再吃满额度
- useRecentProjects:重命名后的单条刷新复用同一套就地重试与有界重查
- app/tauri:删除重复的 TauriInvoke 类型,统一引用 app/types 的既有定义
- tests/recentProjectsHook:失败不跨轮保留改为断言在途「检查中」,新增提权类失败不重试用例
- docs:decision-log、pitfalls、生命周期方案与异步闭环方案同步失败自愈口径与提权边界
2026-09-23 16:41:10 +08:00
k88936
e8d987c207
Merge pull request 'refactor/收口退役AGC项目对话斜杠命令与终端swarm chat入口' ( #488 ) from fix/clean-history-cmd into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m43s
Project CI / Backend tests (push) Successful in 3m47s
Project CI / Frontend tests (push) Successful in 2m23s
Project CI / Native shell tests (push) Successful in 6m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m13s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m19s
Project CI / Repository checks (push) Successful in 2m9s
Project CI / AI game creator shell web tests (push) Successful in 1m45s
Reviewed-on: #488
2026-09-23 16:34:03 +08:00
suzmii
cfd41b5a0d
Merge remote-tracking branch 'origin/master' into fix/agc-recent-project-status-retry
2026-09-23 16:24:13 +08:00
kdletters
f426944701
调整 AGC 更新弹窗并停止自动生成更新日志
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m18s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m46s
Project CI / Backend tests (push) Successful in 3m36s
Project CI / Frontend tests (push) Successful in 1m43s
Project CI / Native shell tests (push) Successful in 5m40s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m35s
Project CI / Repository checks (push) Successful in 1m50s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m31s
Project CI / AI game creator shell web tests (push) Successful in 1m16s
- 更新弹窗改为窗口居中纵向排版
- 停止自动生成渠道清单更新摘要
- 仅保留 AGC_UPDATE_RELEASE_NOTES 手动更新说明
- 清理 Jenkins 摘要锚点与 macOS 额外拉取 master 逻辑
- 同步开发运维、技术方案和回归测试
2026-09-23 16:18:04 +08:00
k88936
07bac0377e
修复:调用级拒绝里属于宿主与环境事实的错补回运行错误诊断
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m23s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m51s
Project CI / Frontend tests (pull_request) Successful in 2m8s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m22s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m45s
Project CI / Native shell tests (pull_request) Successful in 6m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m29s
- `DirectTurnError::is_reportable`:按变体判定哪几条调用级拒绝值得进 `.agent/runtime/errors` 与应用日志(环境未就绪、宿主状态取不到、项目目录锚不定),回合级失败恒 false(上游已写过诊断)
- `record_direct_codex_turn_failure` 改名 `record_direct_codex_failure` 并开放到 crate 内:它同时服务回合失败与可留痕的调用级拒绝,摘要 / 可重试 / 建议仍全部由 typed 分类判定
- 新增 `direct_turn_error_boundary_text`:命令边界唯一的文本投影——可留痕的拒绝补一份诊断并在返回串里带 `详情:` 引用,其余只输出 `Display`
- GUI 命令与 CLI 边界共用这一份投影:字符串只在边界生成一次,前端横幅的 `详情:` 展开与诊断留痕恢复分层改 typed 之前的行为
- 新增 4 项测试:可留痕拒绝写出诊断、用户侧拒绝不留痕、回合失败不在边界二次留痕、`is_reportable` 的变体集合
2026-09-23 15:59:32 +08:00
k88936
46b86527f9
注释:记录 Direct 命令接单化的 TODO 与实现要点
...
- `direct_runtime/user_input.rs` 命令入口加 TODO:目标形状(接单 + spawn、`turn.started` 与终态守卫下沉、接单后早退必须补终态、环境类失败升为回合级、宿主侧承担留痕与上报)与两条已决策的作废项
- `useDirectProjectChatController.ts` 的 catch 加同一份 TODO,说明它现在兼职"接单被拒"与"回合失败"、将来只剩前者
- 两处都指向草案 `docs/adr/【ADR】DirectProject命令接单化-2026-09-23.md`,本次不实施、不提交该草案
2026-09-23 15:36:03 +08:00
k88936
ede6efbe73
Merge remote-tracking branch 'origin/master' into fix/clean-history-cmd
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m51s
Project CI / Backend tests (pull_request) Successful in 3m38s
Project CI / Frontend tests (pull_request) Successful in 1m55s
Project CI / Native shell tests (pull_request) Successful in 5m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m28s
Project CI / Repository checks (pull_request) Successful in 1m47s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m17s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md
2026-09-23 15:32:47 +08:00
lhk229
a1dd382489
Merge branch 'master' into fix/agc-recent-project-status-retry
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m15s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m22s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 4m35s
Project CI / Backend tests (pull_request) Successful in 3m56s
Project CI / Frontend tests (pull_request) Successful in 1m41s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m40s
Project CI / Native shell tests (pull_request) Successful in 6m17s
Project CI / Repository checks (pull_request) Successful in 2m28s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m57s
2026-09-23 15:22:32 +08:00
kdletters
016356e509
合并 AGC 发布前原型门禁与进度弹窗
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / Backend tests (push) Successful in 3m54s
Project CI / Frontend tests (push) Successful in 1m54s
Project CI / Native shell tests (push) Successful in 5m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m56s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m58s
Project CI / Repository checks (push) Successful in 1m53s
Project CI / AI game creator shell web tests (push) Successful in 1m18s
合并 codex/agc-publish-prototype-gate
2026-09-23 14:55:45 +08:00
kdletters
8dc0da4608
完善 AGC 发布前原型门禁与进度弹窗
...
发布前校验可运行原型,未完成时禁止触发用户项目构建
缺失发布说明时自动生成 exports/README.md
移除发布流程的聊天确认卡,新增全屏发布进度弹窗
补充前后端回归测试与项目决策文档
2026-09-23 14:47:43 +08:00
suzmii
7157a90d31
合并 master(含 #494):AGC 提示词断言同步改采 master 版本
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Backend tests (pull_request) Successful in 3m54s
Project CI / Frontend tests (pull_request) Successful in 1m55s
Project CI / Native shell tests (pull_request) Successful in 5m58s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m13s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m47s
Project CI / Repository checks (pull_request) Successful in 2m1s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m26s
- 合并 origin/master(6b4c6b8a6 修复策划 Agent 提示词契约误删 #494)
- Rust 断言同步与本分支 25d331ca0 重复,冲突按 master 版本解决(#494 用「请求含该 run 任务文本」替代 run_id 断言)
- 保留本分支独有改动:最近项目检查失败退避重试、TauriInvoke 命名类型、admin-web 409 聚焦断言等待
- 丢弃本地 cargo 运行重新生成的 chat/generated/*.ts,按 master 版本还原
2026-09-23 14:46:39 +08:00
k88936
34b95b5826
文档:Direct 回合错误改 typed 的决策与影响口径
...
- ADR【DirectProject对话历史单一事实源】新增一条决策:回合失败在宿主内部是 typed 的、调用级拒绝与回合级失败不共用判据,线上载荷与命令边界仍由同一出口投影
- 同 ADR 修正原措辞:原生 error 现在按 `codexErrorInfo` 解析成 typed 分类,不再描述成"投影成 LlmError";影响一节补一条调用级拒绝只回命令边界、不写诊断不发失败事件
- decision-log 记本次决策、根因、明确不做项、影响范围与验证结果
2026-09-23 14:36:42 +08:00
k88936
a553967ab9
Direct 回合失败全链路改 typed 错误:不再靠字符串匹配分类
...
- 新增 `agent/direct_turn_error.rs`:`DirectTurnError` 每个变体自带字段(调用级拒绝与回合级失败不共用结构和判据),分流只认 `is_turn_failure()`,不再有 `kind` 字段 + 共用字段的伪结构化
- 分类判据从"对原因文本做子串匹配"改成 `match` typed 值:`DirectCodexNativeKind` 只解析 `codex-app-server-error:<kind>` 结构化前缀,原 `direct_turn_failure_kind` / 各 `contains` 词表判据删除
- `direct_runtime`:`run_direct_game_creator_turn_*` 返回 typed 错误;本地 `DirectCodexFailureStage` / `DirectCodexTurnFailure` 与并发前缀常量改由 typed 模型提供;调用级拒绝不进失败诊断、不发 `failed` 事件
- `codex_app_server`:执行适配器把宿主亲见的收场事实(通道断开 / 超时 / 中断)存成 typed 值;模型自报失败经 `DirectTurnError::from_model_call` 投影
- `direct_turn_failure`:终态判定收 typed 错误并投影出载荷 `kind` / `message`;删除 `DIRECT_TURN_FAILURE_{TRANSPORT,INTERRUPTED,TIMEOUT}_KIND` 与 `direct_turn_failure_kind`
- `direct_delivery` 返修控制流改用 `ReviewRequired`(不是失败);命令边界与 CLI 仍是 `Result<String, String>`,字符串只在 `Display` 一处生成,`wire_kind` 取值与可见文案与改造前逐一相同
2026-09-23 14:34:43 +08:00
lhk229
6b4c6b8a63
修复策划 Agent 提示词契约误删 ( #494 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 5m15s
Project CI / Backend tests (push) Successful in 3m53s
Project CI / Frontend tests (push) Successful in 2m4s
Project CI / Repository checks (push) Successful in 2m16s
Project CI / Native shell tests (push) Successful in 6m15s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m33s
Project CI / AI game creator shell web tests (push) Successful in 1m34s
恢复策划产物路径及模板、示例资源定位。
恢复决定台账 D-xx 编号与跨文档引用。
恢复验收及 Skill 标识和阶段审批成功条件。
保留战斗系统示例非必读约定。
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/494
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-23 14:25:02 +08:00
k88936
ce70171b43
修正AGC退役后遗留的 prompt 源文件门禁与本地 Provider 冒烟断言
...
- prompt_source_boundaries.rs 移除已删除的 src/agent/interaction.rs 条目(否则读源文件直接 NotFound)
- smoke-agent-run-local-provider.mjs 删除已退役的画板回流建议断言,对应被删的 suggested_canvas_tool_call
2026-09-23 14:23:02 +08:00
k88936
69f6c2dc69
Direct 回合链路引入 typed 错误数据模型
...
- 新增 direct_turn_error 深模块:DirectTurnError 按变体各带字段,调用级拒绝与回合级失败分开
- 原生失败分类 DirectCodexNativeKind 由结构化前缀读入,事件载荷 kind 与旧口径逐条对齐
- 模型调用失败按平台 LlmError 分支投影成 DirectModelCallKind,反馈/重试/摘要/建议改由类型判定
- 跨进程边界仍由 Display 序列化成字符串,Rust 侧不再解析该字符串
2026-09-23 13:39:37 +08:00
k88936
26c6bdbbd5
同步文档:界面图参考语义建议退役
...
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 lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (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 lane 1/2 (pull_request) Has been cancelled
- UI 编辑器代码地图更新 resource/commands 职责、关键命令列表、两步工作流与类型文件数量
- UI 工作流资源桥接文档改为普通桥接从 structure-recognition 开始
- UI 编辑器工作流完成通知弹窗文档收敛为两个动作并删除分析参考图文案
- UI 编辑会话模块边界删除 suggestion seam 描述
- App 实施计划追加 2026-09-23 退役条目覆盖旧 slave_to 口径
- decision-log 记录退役决策、合并优先级恒 0 与无迁移后果及验证结果
2026-09-23 13:30:13 +08:00
k88936
81dc7b0cd6
前端移除分析参考图步骤与界面图元数据编辑
...
- model.ts 收敛为“识别界面结构 / 自动切分素材”两步并删除界面角色标签表
- 删除 suggestion 异步操作、结果通知分支、uiDesignSuggestions 与其 ts-rs 生成类型
- InputSidebar、InspectorSidebar、PreviewWorkspace 的界面图显示名改用 path basename,Inspector 只保留尺寸与资源 ID
- 删除因步骤退役而不可达的 ImportOverview,ToolNavigation 改为两格,删除“清空界面归属”提示
- requisites 删除角色/归属前置校验与参考图分析结果校验,importAdapter 不再写入界面图元数据
- 测试夹具去掉界面图元数据,删除界面角色与归属用例,历史用例改用 sprite 名称断言
2026-09-23 13:30:04 +08:00
k88936
e18a398cdf
退役界面图参考语义建议的 Rust 链路
...
- 删除 ui_editor/commands/ui_design_suggestion.rs 与 main.rs 的 suggest_ui_design_semantic 命令注册
- 收敛 UIDesignImage 为 path/pixel_size/pixels_per_unit,删除 UIDesignImageRole 与 UIDesignImageMetadata
- 结构识别改为每张界面图各自一棵树,删除 recognition_root_image_ids 与 slave_image_ids 及 ROOT/SLAVE 上下文标注
- 多树合并删除 slave_to 祖先链优先级,输入树优先级恒置 0 并留 TODO
- 持久化校验删除 slave_to 引用与环校验,html 片段注释不再携带界面图 name/description
- 页面级工作流构造页面设计图时不再写入界面图元数据
2026-09-23 13:29:39 +08:00
suzmii
25d331ca0a
同步 #491 漏改的提示词断言,修 master 上两条 AGC Rust lane 的 CI 红
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m20s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m6s
Project CI / Frontend tests (pull_request) Successful in 2m3s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m23s
Project CI / Native shell tests (pull_request) Successful in 5m45s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m8s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m52s
- tests/provider:工具计划与修复请求的 run_id 断言反转为「不得携带」(#491 已把 runId 移出提示词)
- tests/response_stream:4 个 finalization/replan 用例同步 run_id 与 session_id 断言(同一 run 改由 runtime/DB 断言承担)
- tests/project_tools:删除确认后的重规划请求同样反转为「不得携带 run_id」
- admin-web:AGC 模板 409 写入错误用例把聚焦断言套进 waitFor,消除 CI 抢跑 flake
2026-09-23 13:28:17 +08:00
k88936
fc39080f27
Merge remote-tracking branch 'origin/master' into fix/clean-history-cmd
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 1m31s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m8s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 1m25s
Project CI / Frontend tests (pull_request) Successful in 2m17s
Project CI / Backend tests (pull_request) Successful in 3m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 4m58s
Project CI / Repository checks (pull_request) Successful in 2m3s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m33s
Project CI / Native shell tests (pull_request) Successful in 5m54s
# Conflicts:
# CONTEXT.md
# apps/ai-game-creator-shell/scripts/check-config.mjs
# apps/ai-game-creator-shell/src/App.tsx
# apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts
# docs/README.md
# docs/project-memory/shared-memory/decision-log.md
2026-09-23 13:27:52 +08:00
k88936
cba98be35f
Merge remote-tracking branch 'origin/master' into feat/smart-paste
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m23s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Successful in 4m32s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m44s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 8m24s
Project CI / Frontend tests (pull_request) Successful in 2m37s
Project CI / Native shell tests (pull_request) Successful in 6m49s
Project CI / Repository checks (pull_request) Successful in 2m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m52s
2026-09-23 13:23:10 +08:00
k88936
28a6fd97f8
修复:润色回写与粘贴共用同一条落点兜底,认不出的引用落文本而不是消失
...
ResourceReferenceInput 新增 mentionTokenOrText:provider 的 mentionToken,答不出来(契约被破坏)时退 contentPartText 的通用文本形态;粘贴插入、润色回写的候选扫描、整根替换的落点共用这一条
润色回写的候选不再跳过「答不出 token 的 part」:这类 part 在回包里没被提到时作为末尾孤儿补回来,而不是在翻译阶段直接消失
applyContentToRoot(初始草稿与润色回写共用)解析不出引用时落文本,不再是整条吃掉
新增两处输入区用例:provider 只答得出引用答不出 token 时润色回写仍保住引用;初始草稿里已解析不出的引用落成 @resourceId 文本。两处去掉兜底即变红
同步 AGC 聊天素材引用功能说明、引用粘贴解析实施计划与决策记录(落点兜底一条,含初始草稿行为变化的记录)
2026-09-23 13:11:17 +08:00
k88936
f138f648e7
修复:粘贴插入解析不出引用时落下文本形态,不再什么都不插
...
resourceReferences.ts 抽出 contentPartToken:part → 正文 token 的逐字投影,不补白、不裁剪(补白只在 joinMentionText 拼整段文本时加);directCodexContentToPromptText 与新导出 contentPartText 都走这一份
contentPartText 就是单个非文本 part 的文本形态:资源落 @resourceId、Skill 落 $名称、附件落 @附件名、运行区域落 @标签,文本 part 返回 null
$insertContentAtSelection 的兜底链改成 provider 的 mentionToken 之外再接 contentPartText,解析不出引用也一定有一段正常文本落到光标处,删掉「两条都答不出来就什么都不插」这条违背「粘贴内容逐字保留」的分支
新增单测覆盖四类 part 的文本形态与文本 part 返回 null;新增输入区集成用例(provider 的 toReference 与 mentionToken 都答不出来时粘贴仍按 @resourceId 落下),去掉兜底即变红
同步 AGC 聊天素材引用功能说明的粘贴解析小节,并在实施计划补记本轮评审的收口
2026-09-23 13:06:43 +08:00
kdletters
97bb0673bf
合并 修复 AGC 发布入口在 DirectProject 下的反馈与确认
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / Backend tests (push) Successful in 4m13s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 6m31s
Project CI / Frontend tests (push) Successful in 2m39s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 8m55s
Project CI / Native shell tests (push) Successful in 7m2s
Project CI / Repository checks (push) Successful in 2m35s
Project CI / AI game creator shell web tests (push) Successful in 1m28s
- 发布动作即时回显权限检查与构建打包状态
- DirectProject 对话渲染项目权限确认卡片并回传确认与取消
- 权限拒绝、取消和查询失败统一回显到项目对话
- 新增发布反馈回归用例并记录排障口径
2026-09-23 13:01:45 +08:00
kdletters
ba45ca7048
修复 AGC 发布入口在 DirectProject 下的反馈与确认
...
- 发布动作即时回显权限检查与构建打包状态
- DirectProject 对话渲染项目权限确认卡片并回传确认与取消
- 权限拒绝、取消和查询失败统一回显到项目对话
- 新增发布反馈回归用例并记录排障口径
2026-09-23 12:59:17 +08:00
suzmii
ceb6418877
Merge branch 'master' into fix/agc-recent-project-status-retry
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m51s
Project CI / Backend tests (pull_request) Successful in 3m40s
Project CI / Frontend tests (pull_request) Failing after 45s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m23s
Project CI / Native shell tests (pull_request) Successful in 5m57s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 7m57s
Project CI / Repository checks (pull_request) Successful in 2m16s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m42s
2026-09-23 12:53:17 +08:00
suzmii
04b738755f
修复 AGC 最近项目「检查失败」被钉死:失败退避重试 + 按轮重查
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m20s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 57s
Project CI / Backend tests (pull_request) Failing after 19s
Project CI / Frontend tests (pull_request) Successful in 2m3s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m20s
Project CI / Native shell tests (pull_request) Successful in 5m31s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m28s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m11s
- useRecentProjects:单次目录检查失败先就地重试一次(300ms),不再立刻落成失败状态
- useRecentProjects:增量投影只保留成功结果,上一轮的失败项回到「检查中」并重新检查
- useRecentProjects:一轮结束仍有失败行时按 15s/45s/120s 退避重跑整张列表,连续无失败即清零
- app/tauri:导出命名类型 TauriInvoke,替换 3 处 ReturnType<typeof resolveTauriInvoke> 写法
- tests/recentProjectsHook:新增「单次失败会重试」「刷新时重查失败项」两个用例
- tests/appSurface/home.suite:失败状态改为异步等待(重试后才会落成)
2026-09-23 12:38:04 +08:00
k88936
d019e48f58
删除AGC steer 判定链相关前端类型、prompt 键与门禁条目
...
- 删除前端 AgentRuntimeSteerResult 类型
- 删除 interaction.json 中只服务该判定链的 steer_decision_description / steer_decision_system / steer_decision_user 提示词键
- 移除 check-config.mjs 未调用 Tauri 命令允许清单里的 steer_game_creator_agent_runtime_task
2026-09-23 12:36:11 +08:00
k88936
ba9832a287
删除AGC无调用方的 steer Tauri 命令与 LLM steer 判定链
...
- 删除 Tauri 命令 steer_game_creator_agent_runtime_task,并同步 main.rs invoke_handler 注册与 AgentRuntimeSteerResult 的 assistantReply / interruptDecision / decisionReason 字段
- 删除只服务该命令的 agent/interaction.rs 整层(runtime_steer_decision 工具、判定请求构建与响应解析、decide_game_creator_agent_runtime_steer_at)及其 agent.rs 模块挂载
- 删除 runtime.interrupt_for_steer_decision RPC 与 Runner 客户端/派发分支、持久 decision 记录 agent.runtime.steer_decision、AgentRuntimeProviderInterrupt::applied_steer_cursor 及 register 的 cursor 参数
- 删除只测该链条的 provider / runner / runtime_state 用例
2026-09-23 12:35:44 +08:00
k88936
857acd4190
文档:记录退役收尾删除AGC LLM steer 判定链
...
- ADR 与里程碑的复查收尾改为「steer 命令删除后整条 LLM 判定链一并退役」,去掉“单独评估”的过渡口径
- Runtime V1.1 的 V1.53 与主实施计划的 2026-08-10 节新增 2026-09-23 复查收尾说明,标明判定链已删除、现役只保留 runtime.steer 唤醒
- decision-log 的 2026-08-10 条目补更新说明,并从已知失败基线用例里移除已删除的 runtime_interrupt_for_true_steer_decision_only_interrupts_older_provider_cursor
- pitfalls 的「Supervisor steer 不能只有内部排队事件」标注判定链实现已删除
- 里程碑验证段补充本轮 cargo check / typecheck / 编码与文档索引 / 幂等检索的实测结果
2026-09-23 12:35:08 +08:00
kdletters
f789db7f2f
收敛 AGC 外置智能体提示词,去掉客户端与宿主实现细节 ( #491 )
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m33s
Project CI / AI game creator shell Rust crates (push) Successful in 59s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 6m23s
Project CI / Backend tests (push) Successful in 4m52s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 8m6s
Project CI / Frontend tests (push) Successful in 2m25s
Project CI / Native shell tests (push) Successful in 6m28s
Project CI / Repository checks (push) Successful in 2m37s
Project CI / AI game creator shell web tests (push) Successful in 1m57s
## 背景
AGC 外置智能体提示词里暴露了过多客户端/宿主实现细节。本次按「提示词只写模型必须遵守的指令与契约」的边界做收敛:删掉"我们系统怎么实现"的叙述,保留模型真正要执行的契约。
## 改动
- `prompts/runtime`:删除宿主机制叙述(交付合同冻结与自动关闭、manifest 幂等投影、回执认领与 continuation 派生、浏览器证据回灌、Runtime 自动推进阶段)
- 删除内部技术栈与部署细节(bubblewrap/Chromium profile 沙箱、执行器锁与 stage ledger、DLL/gdextension 分发、Chromium loopback 预览)
- 删除内部预算与字段(`validation.maxRuns`、共用客户端持久预算、preMutationLoopLimit、源码字符上限、错误反馈重试计数)
- 删除内部标识与名词(Runtime 元数据 `instanceId/sessionId/runId/executionMode/contextBoundary`、`DirectProject`/`workspaceMode`、`autonomous-game-build`、Run Profile、manifest DAG)
- `resources/agc-skills`:8 个 skill 的客户端职责/状态枚举叙述收敛,skill pack 版本与内容哈希同步
- `design-agent`:系统提示、阶段上下文、模板与示例中的渲染器、内部落盘路径、登记编号与平台实现措辞收敛
- 保留不动:工具名与参数、回执字段与枚举、调用顺序、禁止项、失败与鉴权处理、产物要求
- 约定写入 `docs/project-memory/shared-memory/team-conventions.md`:提示词不写宿主实现细节;改占位符须同步 Rust 调用点与断言
## 验证
- `cargo check --offline --tests`:通过
- `cargo test … prompt`:76 passed;`design`:60 passed;`autonomous_game_build`:29 passed;`tool_planning`:10 passed
- `npm run check:encoding`、`npm run check:rustfmt`、`node scripts/check-skill-pack.mjs`、`git diff --check`:均通过
- 本机既有环境失败(非本次引入,已在未改动 HEAD 上用 stash 复现):mock provider 相关的 runtime_actions 用例、isolated-registry 进程会话用例
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/491
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-09-23 12:31:20 +08:00
k88936
10f2f05437
文档:同步收尾清理里已删除的 Tauri 后台任务命令
...
- ADR 与里程碑的收尾清理段区分已删除的 start_game_creator_agent_runtime_task 与待处置的 steer 命令
2026-09-23 12:11:00 +08:00
k88936
271b7172bd
删除AGC无调用方的 Tauri 后台任务命令并清理门禁注释
...
- 删除 commands.rs 的 start_game_creator_agent_runtime_task(前端无调用方,内部实现与 CLI 入口保持不变)
- main.rs invoke_handler 同步移除该命令注册
- check-config.mjs 的 native-only allowlist 同步移除该条目
- check-config.mjs allowlist 注释去掉「终端 swarm CLI 也已退役」的墓碑式表述
2026-09-23 12:08:09 +08:00
k88936
5b2318acf3
删除AGC退役后零引用的真实E2E harness 导出与函数
...
- runtime-state.mjs 删除只被已删套件使用的 4 个 schema 常量(runProfileBinding / autonomousCompletionContract / autonomousPlaytestReceipt / autonomousGameBuildRunProfile)
- assertions/runtime.mjs 删除 runtimePublicStatusMessageId
- harness/project.mjs 删除 productionDefaultGameIndexHtml
- collaboration-policy.mjs 删除 validateSupervisorSwarmIsolatedSpawnInput 及其专属的静态隔离校验函数族
- persistence.mjs 删除 5 个 supervisorSwarmIsolated*Identity 函数
- 移除随之失去用途的 import(hashJsonValue、isolatedJoinDeliveryTarget、supervisorSwarmIsolatedReviews)
2026-09-23 12:07:51 +08:00
k88936
8d710738e2
清理AGC退役残留:配置向导悬空脚本、用户文案与孤儿 prompt 键
...
- 配置向导删除指向已删 npm 脚本的 `npm run test:chat` 调用与失去含义的 `--configure-only` 开关
- 删除只服务该分支的 askYesNo 与 npmCommand,保持 TTY 前置检查语义不变
- App 内用户文案 `请先用 /project 设置本地项目。` 改为 `请先打开本地项目。`
- chatPromptPolish 头部注释去掉已退役的 `/` 命令表述
- 删除 interaction.json 中只服务已删交互内核的 7 个 prompt 键(execute_description、resume_description、project_location_description、protocol、system、user、user_with_context)
- harness/process.mjs 的账号 fixture 注释改为描述现役隔离 Runner 机制
2026-09-23 12:07:37 +08:00
k88936
645ef30752
文档:修正AGC斜杠命令与终端swarm chat退役口径并记录收尾清理
...
- 修正 ADR 与里程碑中「agent.compact / agent.resume / agent.run_status 权限门禁消失」的过宽表述,限定为 swarm_cli/input.rs 里那份终端命令校验,现役门禁仍在
- 修正 `GAME_CREATION_APP_COMMANDS`「开发 Agent UI 仍在用」的说法为 App 只消费命令 id 类型与审计粒度
- 里程碑新增「收尾清理」小节,记录配置向导悬空脚本、用户文案、孤儿 prompt 键、harness 死导出与无调用方 Tauri 命令的清理结论
- 里程碑验证段更新为本次实测数据(typecheck、appSurface 211 tests、cargo check、编码与文档索引、harness self-test)
- AGC 渠道安装身份隔离实施计划移除已删除的 agent-swarm-test-chat.mjs
- pitfalls 去掉 `agc:test:chat` 与 `--configure-only` 的过期表述
- CONTEXT 的「项目命令 id」术语按现役消费方改写
- 主实施计划与 decision-log 中被删 Tauri 后台任务命令名改为现役入口 start_game_creator_agent_background_task_for_session_at
2026-09-23 12:07:20 +08:00
k88936
c9bb5a93f0
文档:说明引用名归一化可能撞名,以及碰撞目前只在解析侧兜住
...
normalizeMentionName 的注释补上「归一化不保证名字唯一」:`hero v2` 与 `hero-v2` 折成同一个 token,候选菜单侧不做冲突检测、会显示同一个标签,碰撞由 buildContentFromPastedText 的「同名多候选一律按文本保留」兜住
同步 AGC 聊天素材引用功能说明的引用名空白不变量小节,写明这是已知残留
2026-09-23 11:55:53 +08:00
k88936
3391ecf7d4
加固:粘贴接管改为「真的插进正文之后」才生效,插入为空时放行默认粘贴
...
ResourceReferenceInput 的 PASTE_COMMAND 处理器原先先 preventDefault 再去插入:插入为空时这段文字既不进我们的插入、又被挡掉了默认导入。现在先做插入,只有插入确实发生了才 preventDefault 并返回 true,否则返回 false 交给 Lexical 的默认粘贴
$insertContentAtSelection 改为返回「插进去没有」:选区取不到、或每个 part 都没落下内容时返回 false
编辑器已在一次更新里时 editor.update 会把回调排队,这时按原口径先接管(ranSync 标记区分「回调已同步跑完」与「回调被排队」),避免误判成插入为空而放行默认粘贴造成双份插入
同步 AGC 聊天素材引用功能说明的粘贴解析小节
2026-09-23 11:55:40 +08:00
k88936
3f9c698a67
修复:粘贴解析跳过只有触发符的退化 token,不再错认正文里的裸 @
...
buildContentFromPastedText 组装候选时跳过 token 长度小于等于 1 的条目(引用名为空时 token 就是裸 `@` / `$`):边界规则会让它在正文里匹配到任何一处触发符,认下来等于把无关文字错认成一条引用
函数注释的保守规则从两条补成三条,写明空名字按「宁可不成 chip」的同一口径跳过
新增用例:空名字引用的 token 是 `@` 时不认领正文里的裸 `@`、其余 token 照常解析;去掉该跳过分支后用例变红
同步 AGC 聊天素材引用功能说明的粘贴解析小节
2026-09-23 11:54:09 +08:00
k88936
4e90465c45
修复:素材显示名在词干为空时回退 asset.id,不再产生空引用名
...
resourceDisplayName 在文件名去掉扩展名后为空(`.env` / `.gitignore` 这类整名就是扩展名的文件)时回退 asset.id,回退值同样过 normalizeMentionName;空名字会让 token 退化成只有触发符的裸 `@`,候选菜单里是空芯片、粘贴解析还会认领正文里任何一处裸 `@`
normalizeMentionName 的注释改为「只做归一化、不做兜底」,把兜底的落点写明在名字的来源侧
新增用例:`.env` 与 `config/.gitignore` 的显示名回退 asset.id、引用标签不再为空;把该回退去掉后用例变红
同步决策记录(校正「不做 resourceId 兜底」一条)、AGC 聊天素材引用功能说明与引用粘贴解析实施计划
2026-09-23 11:53:14 +08:00
k88936
217f5e8d81
Merge remote-tracking branch 'origin/master' into feat/fail-as-event
2026-09-23 11:50:42 +08:00
kdletters
43b7aa809b
清理旧创作模板退役过程记录与死代码 ( #489 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m6s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m16s
Project CI / Backend tests (push) Successful in 4m49s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m1s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m50s
Project CI / Native shell tests (push) Successful in 6m5s
Project CI / Frontend tests (push) Successful in 2m6s
Project CI / AI game creator shell web tests (push) Successful in 1m19s
Project CI / Repository checks (push) Successful in 1m43s
- 删除一次性 schema guard 退役表白名单、isApprovedRetiredTableDeletion 导出与专属测试,compareTables 收回为内部函数
- 删除 shared-contracts 未挂载的旧玩法契约模块、api-server 旧 story 模块与旧压测资源 scripts/loadtest/ 及对应忽略/排除配置
- 清理 decision-log、pitfalls 中旧表退役、两阶段清表窗口与旧玩法过程记录,保留改写后的通用条目
- 移除权威文档、模块 README 与运维文档中的旧模板、历史表与旧压测叙述
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/489
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-09-23 11:46:39 +08:00
k88936
d8c19d9187
新增 UI 编辑器代码地图与模块职责文档
...
- 定义 `Rust` 权威层、`React` 会话层与视图层的职责边界
- 描述数据流、关键模块设计与核心命令
- 补充扩展指引与关联文档链接
- 更新 `docs/README.md` 引用路径
2026-09-23 11:46:31 +08:00
k88936
29d4b24226
宿主终态由事实判定:模型自报失败投影进既有错误通道,失败载荷不再被收尾阶段吞掉
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m6s
Project CI / Frontend tests (pull_request) Successful in 2m2s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m43s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m33s
Project CI / Native shell tests (pull_request) Successful in 6m12s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m3s
- codex_app_server 的 failed 分支先投影原生 turn.error(复用 game_creator_codex_app_server_failed_turn_error),把它当作本回合的错误结果返回:载荷形状不变,RepairRequired 保持自己的原语义,交付报告不再顶掉原因
- direct_turn_terminal 去掉 model_status 入参:判定改为「宿主当场记下的失败 -> 本回合错误结果是 Err -> 只有账本读不出来时才用交付报告」,有载荷一定写 status="failed",没载荷才用收尾阶段推出来的 status
- 执行适配器把宿主观察到的失败记在适配器上(fail_turn / turn_failure / host_stop_requested):看门狗与终态判定共用同一条事实,不用调用点局部变量
- 单测:投影后的原生失败压过被收尾改写的会话状态、账本读不出来仍带载荷、宿主自己关的连接不算失败(断言改用真实原因)
2026-09-23 11:20:48 +08:00
k88936
258c2f6cae
文档:终态由事实判定,模型自报失败的原生错误投影进既有错误通道
...
- ADR【DirectProject对话历史单一事实源】补一条决策:终态按事实取原因、有载荷必 failed;模型自报失败的 turn.error 投影成 LlmError 走同一条错误通道,不为载荷新增字段
- ADR「影响」补一条:可见文案仍走既有映射,区别只是原因改由事件载荷给出、命令返回恢复运行错误横幅
- 技术方案【DirectProject Codex原始历史与异常恢复】写明 lifecycle_status 没有终态否决权,以及原生错误的投影口径
- decision-log 记本次决策、根因、不做项、影响范围与验证方式
2026-09-23 11:20:39 +08:00
k88936
f4294660d2
退役AGC项目对话斜杠命令与终端swarm chat入口:真实E2E、脚本与门禁清理
...
- 删除 scripts/agent-swarm-test-chat.mjs、agent-runtime-deterministic-playable-e2e.mjs、deterministic-lane-defense-provider.mjs
- 删除 user-input、supervisor-autonomous-playable-lane-defense、supervisor-swarm-autonomous-chat、static-isolated 与 collaboration-policy-mixed 套件
- 删除仅服务终端入口的交互式 CLI harness 管道与其进程清理、残留校验逻辑
- 清理 collaboration-assertions、evidence 模板与校验、self-test 中随之失效的混合与静态隔离断言及占位字段
- 移除 check-config.mjs 中钉住已删脚本、命令与套件的断言
- 删除 root 与应用 package.json 的 agc:test*、agc:chat、agc:swarm、各 *-real-e2e 与 test:chat* 脚本
- game-creator-config-wizard.mjs 改为从 channel-identity.mjs 取应用标识
2026-09-23 11:13:03 +08:00
suzmii
b62afb43b6
Merge pull request '修复 AGC dev 无限重建:Codex 组件权限仅在真正不一致时写入' ( #487 ) from fix/agc-dev-codex-rebuild-loop into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m19s
Project CI / AI game creator shell Rust crates (push) Successful in 1m5s
Project CI / Backend tests (push) Successful in 3m42s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m2s
Project CI / Frontend tests (push) Successful in 2m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m56s
Project CI / Native shell tests (push) Successful in 6m21s
Project CI / AI game creator shell web tests (push) Successful in 2m37s
Project CI / Repository checks (push) Successful in 3m23s
Reviewed-on: #487
2026-09-23 11:13:02 +08:00
k88936
6106b4e67c
退役AGC项目对话斜杠命令与终端swarm chat入口:应用与Rust实现删除
...
- 删除应用侧 /history 精确匹配分支与 reloadHistory、chatPromptPolish 的 / 前缀绕过、chatCommandMetadata、memoryCommands、projectSummaryConstants 命令清单
- 删除只服务退役摘要面板的 project-summary/*Summaries.ts 与 agentTrace.ts 及对应测试
- 删除 /sync-canvas-project、/read、/trace 草稿回填死链(agentPresentation.ts 与 Rust suggested_canvas_tool_call)
- 删除无人调用的 Tauri 命令 get_game_creation_agent_capabilities 与 get_limited_local_commands
- 删除 --swarm-chat 入口、SwarmChat 变体、src/swarm_cli.rs 与整个 swarm_cli/ 目录
- 收敛 agent/interaction.rs 至自然语言 steer 决策路径,删除交互内核整层
- 删除 SWARM_TURN_*_ERROR、print_runtime_response_stream_status 及其专属测试
- 更新 ChatMarkdownMessage、chatPromptPolish、rememberCommand 与 appSurface 用例,移除斜杠命令断言
2026-09-23 11:12:39 +08:00
k88936
530538842e
文档:收口退役AGC项目对话斜杠命令与终端swarm chat入口
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m20s
Project CI / Backend tests (pull_request) Failing after 16s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m8s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 7m22s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Successful in 3m9s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m12s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m36s
Project CI / Native shell tests (pull_request) Successful in 7m13s
- 新增 ADR:记录斜杠命令与终端 swarm chat 入口整体退役的决策、保留项与影响边界
- 新增里程碑计划:登记删除范围、检查点、验证命令与未做边界
- 更新 decision-log:新增 2026-09-22 决策条目,清理被本次退役取代的历史命令条目
- 更新 pitfalls:移除已退役命令入口的现役表述
- 更新 CONTEXT.md 术语:把「斜杠命令」标为已退役说法
- 更新 docs/README.md:登记新 ADR
- 更新 AGC 主实施计划:删除全部「聊天输入 /<cmd>」能力条目与终端聊天入口承诺
- 更新 Agent Runtime V1.1 文档:删除终端 swarm chat 入口整节,控制面统一记为 --agent-* CLI
- 更新 DirectProject 里程碑计划:/history 入口表述改为显式重新加载对话
2026-09-23 11:10:55 +08:00
suzmii
710d6dddf2
修复 AGC dev 无限重建:Codex 组件权限仅在真正不一致时写入
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- build.rs 的 Codex staging 不再无条件调用 fs::set_permissions,改为仅在目标文件权限与源文件不一致时写入
- 内容相同且权限一致时跳过写入,避免 Windows 上更新 change time 被 tauri dev 文件监听误判为 staging 变更,形成“构建 -> 监听 -> 再构建”的自触发循环
- 复制分支仍保留写权限;权限不一致时仍会恢复,staging 组件执行权限语义不变
2026-09-23 11:09:09 +08:00
k88936
44148542f1
Merge remote-tracking branch 'origin/master' into feat/smart-paste
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m10s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m30s
Project CI / Backend tests (pull_request) Successful in 4m43s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m10s
Project CI / Frontend tests (pull_request) Successful in 2m23s
Project CI / Native shell tests (pull_request) Successful in 7m2s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m10s
Project CI / Repository checks (pull_request) Successful in 2m49s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-23 11:04:46 +08:00
lhk229
20b594d4f2
清理后端未使用代码及废弃测试
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m20s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m49s
Project CI / Backend tests (pull_request) Successful in 3m38s
Project CI / Frontend tests (pull_request) Successful in 1m47s
Project CI / Native shell tests (pull_request) Successful in 5m40s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m44s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m17s
Project CI / Repository checks (pull_request) Successful in 1m48s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m18s
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m52s
Project CI / Backend tests (push) Successful in 3m41s
Project CI / Frontend tests (push) Successful in 1m54s
Project CI / Native shell tests (push) Successful in 5m39s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m42s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m30s
Project CI / Repository checks (push) Successful in 2m7s
Project CI / AI game creator shell web tests (push) Successful in 1m35s
删除编辑器旧分段持久化、生成任务收尾和音频发布链路
删除未使用辅助函数及其专属测试,修正受影响的现有测试边界
保留现役实现,将纯退款测试辅助函数移入测试模块
同步原子提交、角色生成文档和计费验证说明
验证:API 全目标编译零警告,格式、编码和 diff 检查通过
定向测试:391 项通过,11 项退款 outbox 测试失败,含 Windows 权限错误
2026-09-23 02:52:01 +00:00
k88936
5e36b61534
修复:引用名内部空白统一折成 -,粘贴解析不再多插一枚芯片
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m53s
Project CI / Frontend tests (pull_request) Successful in 2m4s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m19s
Project CI / Native shell tests (pull_request) Successful in 5m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m46s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m16s
resourceReferences.ts 新增共享 normalizeMentionName:内部空白折 `-`、裁掉首尾,token 层幂等再折一次
素材显示名(resourceDisplayName)、Skill 名(目录读入与 toReference / mentionToken)、附件名(导入映射与 toReference / mentionToken)统一过这一份口径
resourceDisplayName 去掉 `|| asset.id` 兜底:引用名假定非空,不再回退 resourceId
前缀重叠 bug 由此收口:`@hero` 不再命中 `@hero-v2`(后一个字符不是空白),粘贴只剩正确的那一枚芯片
新增用例:素材 / Skill / 附件三类归一化口径、前缀重叠回归、Skill 目录名带空白、附件名带空白;把 normalizeMentionName 变异成恒等函数后新增用例全红
顺带修掉 referenceSourceProviders 用例里重命名遗留的 provider.match 断言与 skill provider 注释里的 match
同步 CONTEXT.md 术语、功能说明、实施计划与决策记录
2026-09-23 10:40:21 +08:00
k88936
8b8e95908c
Merge remote-tracking branch 'origin/feat/fail-as-event' into feat/fail-as-event
2026-09-23 10:07:21 +08:00
lhk229
85f2831f16
补齐客户端埋点环境变量示例
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m1s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m30s
Project CI / Backend tests (pull_request) Successful in 5m28s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m23s
Project CI / Native shell tests (pull_request) Successful in 6m43s
Project CI / Frontend tests (pull_request) Successful in 2m26s
Project CI / Repository checks (pull_request) Successful in 2m52s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m3s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m17s
Project CI / AI game creator shell Rust crates (push) Successful in 1m2s
Project CI / Backend tests (push) Successful in 4m49s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m6s
Project CI / Native shell tests (push) Successful in 6m0s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m48s
Project CI / Frontend tests (push) Successful in 2m8s
Project CI / Repository checks (push) Successful in 1m49s
Project CI / AI game creator shell web tests (push) Successful in 1m18s
补充本地、生产及容器的埋点 origin 配置示例和 dev/release 说明。
同步技术方案中的运行时配置入口与地址匹配要求。
2026-09-22 16:14:05 +00:00
lhk229
1e186369c9
客户端埋点设置 ( #446 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/446
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-23 00:09:12 +08:00
lhk229
5c2f85c089
修复 CI 缓存镜像组装的基础镜像引用
...
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 smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 1m18s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m50s
Project CI / Backend tests (push) Successful in 3m40s
Project CI / Frontend tests (push) Successful in 2m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m13s
Project CI / Native shell tests (push) Successful in 5m47s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m34s
Project CI / AI game creator shell web tests (push) Successful in 1m32s
Project CI / Repository checks (push) Successful in 1m55s
使用临时本地标签和宿主默认 builder 组装缓存镜像
组装成功或失败后清理临时标签,保持基础镜像清理归属
补充基础镜像复用、重建及失败清理测试
同步部署文档和项目共享记忆
2026-09-22 15:03:05 +00:00
lhk229
4380d453d7
修复 CI 缓存对象误判与产物下载完整性检查
...
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 crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
按 ZIP 成员内容和元数据识别等价缓存对象,保留真实冲突拒绝规则。
核对产物大小与 ZIP 完整性,为截断和临时传输失败增加有界重试。
补充回归测试并同步部署文档与共享记忆。
通过 80 项缓存测试、17 项工作流测试及真实产物和 HTTP 截断验证。
2026-09-22 14:40:55 +00:00
kdletters
f502829fde
发布灰度默认关闭:修掉客户端“看得到点不动”与后台看不到 key ( #482 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m2s
Project CI / Backend tests (push) Successful in 5m19s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m59s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m19s
Project CI / Native shell tests (push) Successful in 6m48s
Project CI / Frontend tests (push) Successful in 2m54s
Project CI / Repository checks (push) Successful in 2m58s
Project CI / AI game creator shell web tests (push) Successful in 2m34s
## 解决什么
你反馈的两个现象都是真问题,这个 PR 一次修掉:
1. **没开灰度也能看到发布按钮**:发布开关此前是「无 gate 行 = 默认开放」,所以没配灰度时后端把 `gameDistributionPublishEnabled` 判成 true,客户端就渲染了发布入口。
2. **按钮点了没反应**:发布动作的提示原先只写 `workspaceStatus`,而普通项目走 `DirectProjectChatView` 时并不渲染工作台状态行,于是「先打开一个项目再发布」「构建失败…」这类信息全都看不见。
3. **后台看不到 key**:预设项此前在未合并的另一个 PR 里,而且后台只列「已创建」的 gate 行。
## 改成什么
- `is_game_distribution_publish_enabled_for_user` 要求 gate 行存在且 `enabled=true`:**灰度默认关闭**,未登录/无行/`enabled=false` 一律不开放;只有白名单 / 灰度比例 / 用户标签命中才开放。作者写入与新版本激活都按这条判据。
- 新增与作者无关的总开关 `is_game_distribution_publish_open`:管理员审核激活新版本只看「灰度是否开启」,不会因为审核员不在作者白名单里而被挡住(这是合入后立刻发现的回归,已修 + 有用例)。
- AGC 新增 `announcePublishMessage`:发布相关提示同时写工作台状态与 DirectProject 对话,点「发布到游戏广场」不会再像没反应。
- 后台「灰度发布配置」新增「可配置开关」列表:`game-distribution:publish` 等预设即使还没创建行也会显示,点「配置」按默认关闭填表,运营开启后填白名单/比例即可放量。
## 验证
- `npm run check:game-distribution-media-e2e`(真实 Phaser 构建产物)现在覆盖:灰度关闭 → 作者拿不到入口 + 写入口 503 → 开启灰度 → 真实封面/截图直传 → 创建游戏/版本/上传/送审 → 管理员审核通过 → 网关 index.html 与 bundle 200 → nosniff;全流程通过。
- 后端:`cargo test -p api-server game_distribution` 19 passed(含新增 `game_distribution_publish_open_ignores_author_allowlist_for_activation`)、`frontend_runtime_config` 6 passed。
- 前端:admin 灰度页 10 用例(含「未创建的预设开关可见并可一键配置」)、AGC 聊天头 3 用例、网页发布页 15 用例;三端 typecheck、`check:encoding`、`check:doc-index`、`check:rustfmt`、全量 `npm test`(400 文件 / 4441 用例)与 `check:repository-ci -- origin/master HEAD` 全绿。
## 上线注意
灰度默认关闭是**刻意**的:合入后到运营在后台把 `game-distribution:publish` 配置并开启之前,作者看不到发布入口、写入口 503;已公开游戏、目录、详情、发行网关、安全下架不受影响。
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/482
Co-authored-by: kdletters <kdletters@qq.com >
Co-committed-by: kdletters <kdletters@qq.com >
2026-09-22 21:38:03 +08:00
kdletters
a56790eaa6
合并 Phaser 一键发布自动构建与打包
Project CI / AI game creator shell Rust crates (push) Successful in 1m36s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m9s
Project CI / Backend tests (push) Successful in 5m41s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m33s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m53s
Project CI / Native shell tests (push) Successful in 7m28s
Project CI / Frontend tests (push) Successful in 3m38s
Project CI / Repository checks (push) Successful in 3m36s
Project CI / AI game creator shell web tests (push) Successful in 2m55s
2026-09-22 21:03:57 +08:00
kdletters
6e1fbac5d2
合并旧创作模板历史表删除
Project CI / AI game creator shell Rust crates (push) Successful in 1m27s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m54s
Project CI / Backend tests (push) Successful in 5m29s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m28s
Project CI / Native shell tests (push) Successful in 6m54s
Project CI / Frontend tests (push) Successful in 3m11s
Project CI / Repository checks (push) Successful in 3m20s
Project CI / AI game creator shell web tests (push) Successful in 3m6s
2026-09-22 20:46:37 +08:00
kdletters
b93d15e46e
合并 master:DirectProject 旧消息重解析优化
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m35s
Project CI / Backend tests (pull_request) Failing after 17s
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 crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
- 合并 origin/master(a46302846:优化 DirectProject 旧消息重解析导致的会话区卡顿)。
- 自动合并无冲突;Phaser 发布前构建与发行网关根路径改动保持接线。
- 同步目的:满足仓库「PR head 必须包含最新 base」的门禁,随后由 Project CI 复验。
2026-09-22 20:42:32 +08:00
kdletters
57a72f652c
Phaser 项目一键发布:发布前自动构建与打包
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- AGC:export_local_project_package 改为发布前构建——已有可玩入口直接打包;否则解析 game/(Phaser 4 + Vite 脚手架)或项目根的 npm build 脚本,缺 game/node_modules 时先跑 project.bootstrap(npm install),再走 project.verify 的受控 npm 运行器执行 npm run build,最后校验入口并打包;安装/构建失败返回带日志尾部的可操作错误。
- 新增 resolve_publish_build_plan 纯函数与用例:game 子工程优先并要求先装依赖、根 npm 工程回退、没有可构建工程时失败关闭。
- 后端:发行网关根路径(含尾斜杠)等价于 index.html,路由级用例覆盖 Cookie 拒绝门与根路径;生产仍由每游戏 origin 把根路径映射到该游戏入口。
- 脚本:check:game-distribution-media-e2e 支持 E2E_PACKAGE_ZIP 直接发布真实构建产物,断言从包内派生入口/资源,本地审核入口改为发行网关路径。
- 文档:玩法链路与实施计划记录「作者不构建、不打 ZIP」的 Phaser 发布口径与验证证据。
- 验证:真实 Phaser 4.2.1 + Vite 7 构建产物(相对引用)经发布链路后网关 index.html 200 / assets 1,388,719 B 200,播放页在 allow-scripts 沙箱 iframe 内渲染 PHASER-PUBLISH-OK 且点击交互生效。
2026-09-22 20:38:00 +08:00
kdletters
55801deb38
Merge remote-tracking branch 'origin/master' into codex/clear-retired-tables-phase2
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 lane 2/2 (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 / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
2026-09-22 20:22:09 +08:00
k88936
a46302846a
Merge pull request '优化 DirectProject 旧消息重解析导致的会话区卡顿' ( #479 ) from fix/typing-stuck into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m13s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m27s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m2s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m45s
Project CI / Backend tests (push) Successful in 7m7s
Project CI / Native shell tests (push) Successful in 7m36s
Project CI / Frontend tests (push) Successful in 3m30s
Project CI / Repository checks (push) Successful in 3m24s
Project CI / AI game creator shell web tests (push) Successful in 2m45s
Reviewed-on: #479
2026-09-22 20:20:07 +08:00
k88936
3467042000
Merge branch 'master' into feat/fail-as-event
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 lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
2026-09-22 20:19:23 +08:00
kdletters
1eaa51b72b
记录阶段二生产发布结果
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m41s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (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 lane 2/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
记录 release 直接切换 2.8.3 锁定二进制
记录阶段二 wasm 发布后的 84 张现役表与旧 schema 清零
记录运行时服务恢复和公网 200
2026-09-22 20:09:35 +08:00
k88936
185649323e
优化 DirectProject 旧消息重解析导致的会话区卡顿
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m6s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m42s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m32s
Project CI / Backend tests (pull_request) Successful in 7m19s
Project CI / Frontend tests (pull_request) Successful in 3m47s
Project CI / Native shell tests (pull_request) Successful in 8m14s
Project CI / Repository checks (pull_request) Successful in 3m40s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m14s
为 ChatMarkdownMessage 加 memo,旧消息文本不变时不再重新解析 Markdown 与语法高亮
流式期间跳过语法高亮,定稿后再补,避免每个 chunk 重跑一遍 highlight.js
为 AgentReasoning 加 memo,内容未变的思考块整块跳过重渲染
把 AgentReasoning 折叠态预览的 Markdown AST 解析收进 useMemo
2026-09-22 20:04:52 +08:00
kdletters
05a5ea4d85
补充历史表清空与备份现场证据
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
记录 release 阶段一 apply、全零复核和观察窗口结果
记录 files-minimal 备份与 restore dry-run 验证
记录大库非 minimal files 备份的 catalog 序列化边界
2026-09-22 19:58:06 +08:00
k88936
072bf691d9
修复:粘贴解析注释里的 provider 成员名与实际 API 对齐
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
buildContentFromPastedText 的注释仍写着重命名前的 ReferenceProvider.candidates,改成 lookup
顺带写明候选来自调用方传入的引用清单,避免把「谁去查候选」误记进这个纯函数
2026-09-22 19:56:21 +08:00
k88936
14f11e77a2
修复:粘贴解析出的引用若解析不出来,退化成 token 文本而不是整条丢掉
...
$insertContentAtSelection 的引用分支补 else:referenceFromPart 返回 null 时插入该 part 的 token 文本
此前上游 buildContentFromPastedText 已把 token 摘走,插入端再丢一次就会让这段内容静默消失
新增用例:provider 认得出 token 但插入时已解析不出引用,断言正文保持 `看 @hero 一眼`、不产生芯片
变异验证:去掉该兜底后同一用例变红(正文变成 `看 一眼`),恢复即绿
2026-09-22 19:54:36 +08:00
k88936
9e50947d02
重构:引用输入区的选区兜底收敛成一个 helper
...
抽出 $selectionOrRootEnd():选区缺失或指向已被重建掉的节点时统一回落到草稿末尾
insertReferences / insertText / $insertContentAtSelection 三处重复的兜底判断改为调用它
行为不变:插件插入与粘贴插入仍走同一套「插到草稿末尾」的策略,只是不再各写一份
2026-09-22 19:53:42 +08:00
k88936
944ae9a6eb
Merge pull request '调试支持:开发模式下增加 Codex CLI 执行器锚定逻辑,确保裸命令名按 PATH 解析为绝对路径' ( #475 ) from fix/linux-dev into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m14s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m38s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m30s
Project CI / Backend tests (push) Successful in 6m47s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m16s
Project CI / Native shell tests (push) Successful in 7m14s
Project CI / Frontend tests (push) Successful in 3m21s
Project CI / AI game creator shell web tests (push) Successful in 3m0s
Project CI / Repository checks (push) Successful in 3m42s
Reviewed-on: #475
2026-09-22 19:53:06 +08:00
k88936
ec1f207021
重构:引用 provider 的 match / candidates 改名为 fuzzyLookup / lookup,删除 onPasteText
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m16s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m7s
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
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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
match(query) 改名 fuzzyLookup(query):名字写明它是包含匹配 + 截断的模糊菜单查询
candidates() 改名 lookup():名字写明它是精确查找用的就绪全量候选,不模糊不截断
删除 onPasteText 补读钩子:粘贴只用此刻就绪的候选,不等待、不补读,也不为解析提前读盘
输入区与资源 / Skill provider 同步改名,粘贴接管路径改读 lookup()
provider 用例与粘贴集成用例同步:Skill 冷启动改为「保持字面,敲过 `$` 后可解析」
补 jsdom 缺的 Range.getBoundingClientRect 与 ResizeObserver 桩(候选菜单测量用,真实浏览器都有)
同步 ADR 修订、实施计划、功能说明与决策记录
2026-09-22 19:50:42 +08:00
lhk229
7bc411119c
修复 CI 镜像脚本的 Buildx 驱动检查兼容性
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
读取 buildx inspect 的 Driver 字段,移除不受支持的 --format 参数。
收紧 Docker 测试替身参数检查,并覆盖错误驱动拒绝行为。
更新部署文档与共享记忆,记录真实 Buildx 兼容性验证要求。
2026-09-22 11:45:22 +00:00
kdletters
3103a6e632
Merge remote-tracking branch 'origin/master' into codex/clear-retired-tables-phase2
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m55s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m20s
Project CI / Backend tests (pull_request) Successful in 7m15s
Project CI / Native shell tests (pull_request) Successful in 8m18s
Project CI / Frontend tests (pull_request) Successful in 3m28s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m18s
Project CI / Repository checks (pull_request) Successful in 3m38s
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
2026-09-22 19:43:10 +08:00
kdletters
b417144baf
Merge remote-tracking branch 'origin/master' into codex/clear-retired-tables-phase2
2026-09-22 19:42:44 +08:00
kdletters
fd0c1007ad
清除旧创作模板历史表定义与绑定
...
删除 63 张旧玩法表的 module 定义与 legacy schema
移除清空 procedure、迁移白名单和旧行兼容逻辑
重新生成 spacetime-client bindings
新增一次性 schema guard 删除白名单与回归测试
清理后台表名映射、旧回填工具和权威文档
2026-09-22 19:42:29 +08:00
lhk229
079466b29b
合并最新 master 到 CI 下载缓存优化分支
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
合入 origin/master 的浏览器进程清理与引用输入框重构。
保留 CI 下载缓存、最小构建上下文和维护日志优化。
通过 17 项工作流测试、2 项 npm 缓存导出测试及编码检查。
2026-09-22 11:33:40 +00:00
lhk229
1e6b0e5684
优化 Gitea CI 镜像下载缓存与维护日志
...
使用专用 BuildKit builder 持久复用 Cargo 与 npm 下载缓存,并支持从可信镜像导入
按当前依赖物化镜像下载快照,配置独立缓存回收策略
补齐 AGC vendor 本地依赖清单并缩小构建上下文
增加缓存维护阶段、耗时和失败日志路径
补充下载缓存与构建上下文测试,同步部署说明和共享记忆
2026-09-22 11:23:46 +00:00
k88936
a0d72bbef2
调试支持:开发模式下增加 Codex CLI 执行器锚定逻辑,确保裸命令名按 PATH 解析为绝对路径
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
2026-09-22 19:19:01 +08:00
k88936
6950e08506
功能:引用输入区支持粘贴解析 @显示名 / $名称
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m26s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
新增 buildContentFromPastedText:粘贴文本按显示口径反解析,同名多候选与未命中 token 一律按文本保留
ReferenceProvider 增加可选 candidates 与 onPasteText:候选枚举保持纯函数,Skill 目录冷启动时补读一次
资源与 Skill provider 落地新缝,静默 provider(附件 / 运行画面区域)不参与粘贴解析
输入区在 CRITICAL 优先级接管 PASTE_COMMAND,仅解析出引用时插入并打 PASTE_TAG,一次 Ctrl+Z 整体回退
补充粘贴解析规则矩阵、provider 候选枚举与补读、输入区粘贴集成用例
同步 ADR 修订、实施计划、术语表、功能说明与决策记录
2026-09-22 19:06:19 +08:00
k88936
da0df57ebc
Merge pull request '重构/抽取带引用功能的输入框' ( #464 ) from refactor/extract-dep-from-ref-inputer into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m4s
Project CI / Backend tests (push) Successful in 7m8s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m47s
Project CI / Native shell tests (push) Successful in 8m26s
Project CI / Frontend tests (push) Successful in 3m50s
Project CI / AI game creator shell web tests (push) Successful in 3m28s
Project CI / Repository checks (push) Successful in 3m45s
Reviewed-on: #464
2026-09-22 19:05:31 +08:00
lhk229
e8db0d1c87
Codex/agc browser orphan cleanup ( #461 )
...
Project CI / AI game creator shell Rust lane 2/2 (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 Rust crates (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
Reviewed-on: #461
2026-09-22 19:05:20 +08:00
k88936
9ae9ed362a
Merge remote-tracking branch 'refs/remotes/origin/master' into refactor/extract-dep-from-ref-inputer
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m51s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m30s
Project CI / Backend tests (pull_request) Successful in 7m17s
Project CI / Native shell tests (pull_request) Successful in 7m34s
Project CI / Frontend tests (pull_request) Successful in 4m4s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m9s
Project CI / Repository checks (pull_request) Successful in 3m36s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-22 18:51:27 +08:00
kdletters
060a850f74
修复 AGC 更新摘要泄漏提交说明
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m28s
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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
自动摘要改为读取提交消息首行,仅展示标题并忽略后续说明
更新摘要不再附带短 SHA
补充多行提交消息与摘要格式回归测试
同步客户端更新检查与开发运维文档
2026-09-22 18:44:55 +08:00
k88936
8f2e5b4381
文档:执行通道断开定为失败终态,诊断记在执行适配器上
...
- ADR【DirectProject对话历史单一事实源】补一条决策:连接级故障与回合事件通道关闭同样带 failure{kind:"transport-failed"},原因用宿主当场写下的诊断,判据是"适配器是否已由宿主主动关闭"
- ADR「影响」补一条:断开时用户看到的仍是既有映射结果,真实诊断在事件载荷、宿主交付报告与运行日志里,改可见文案属于映射规则变更
- 技术方案【DirectProject Codex原始历史与异常恢复】同步线上形状,并写明失败事实为什么必须记在执行适配器上(看门狗会抢时序)
- decision-log 记本次决策、判据、不做项、影响范围与验证方式
2026-09-22 18:25:48 +08:00
k88936
7dca17d517
执行通道断开也算失败终态:诊断记在执行适配器上,事件带 transport-failed 载荷
...
- ExecutionAdapter 新增 transport_failed / transport_failure:调用方只给宿主诊断,文案、报告与"这算不算失败"都归适配器管;先同步记事实,再把同一份原因补进宿主交付报告
- 判据收在适配器里(is_closed):宿主自己收束(正常终态 / 用户主动停止 / 预算与交付收尾)会关掉同一条连接、发同一个 TransportClosed,那些不算失败,调用点两条分支的控制流保持不变;连接自己断掉才算,且只认第一份原因(第一份最接近现场,含 exitStatus 与 stderr 摘要)
- lifecycle_status 见到这条事实一律返回 failed:连接不是被本轮主动收束,也没有"用户主动停止"这层授权,报成 interrupted 只会让界面停在"本轮已结束"却不给原因
- 连接级故障(app-server 进程退出 / 流断 / JSON 行越界 / stderr 读取失败)在收束连接之前先把事实记到本回合的执行适配器上,避免与盯着同一个 closed 标志的看门狗抢时序
- direct_turn_failure 增加第三来源且优先级最高:通道断开时原因取宿主诊断,不取只会说"收束到哪一步"的交付报告
- 单测三条:适配器把诊断记成失败终态且只认第一份原因;宿主自己关的连接不算失败;失败载荷优先取宿主诊断(含与 LlmError 并存时的优先级)
2026-09-22 18:25:37 +08:00
lhk229
b1be6947b0
契约检查补齐现有 OSS 上传白名单,保留精确校验。
...
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 lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (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 (push) Successful in 1m21s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m53s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m29s
Project CI / Backend tests (push) Successful in 8m59s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m32s
Project CI / Frontend tests (push) Successful in 3m43s
Project CI / Native shell tests (push) Successful in 9m45s
Project CI / Repository checks (push) Successful in 4m23s
Project CI / AI game creator shell web tests (push) Successful in 3m19s
修正过期注释并更新排障记录。
Native shell 契约检查、5 条素材上传测试、编码及格式检查全部通过。
2026-09-22 10:23:29 +00:00
lhk229
b7ca94334f
修正 CI 缓存部署的网络地址与验收流程
...
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m57s
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
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
区分任务容器、Runner 网关和宿主源码拉取地址
记录内层 Docker 独立地址池与遗留网络定向清理方式
补充真实任务网络中的源码拉取和 API 连通性验收
同步团队开发流程中的部署约定
2026-09-22 10:05:23 +00:00
kdletters
54a5401cce
将正式 Full Build 纳入 release 每日调度
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m54s
Project CI / Native shell tests (push) Failing after 4m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m23s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m53s
Project CI / Backend tests (push) Successful in 7m54s
Project CI / Frontend tests (push) Successful in 5m34s
Project CI / Repository checks (push) Successful in 5m31s
Project CI / AI game creator shell web tests (push) Successful in 4m16s
按服务端与客户端 scope 分别触发 release Full Build 和 AGC 双平台
等待并汇总三类下游结果,按成功 lane 推进 revision
同步 release 参数、生产门禁与运维文档
2026-09-22 17:59:57 +08:00
kdletters
4d45afbd6e
修复 release 渠道 macOS 测试的默认环境隔离
...
隔离默认渠道测试中的 AGC_UPDATE_CHANNEL 环境变量
补充 Jenkins 渠道参数进入 Node 测试进程的排障记录
2026-09-22 17:59:57 +08:00
k88936
1ecb92c53d
Merge branch 'master' into refactor/extract-dep-from-ref-inputer
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m17s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m51s
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 lane 1/2 (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
2026-09-22 17:57:51 +08:00
suzmii
4990dae829
Merge pull request '运行页入口收口:过程提示退出对话区,顶栏统一承载运行入口' ( #457 ) from feat/agc-run-preview-tip into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m25s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m55s
Project CI / Native shell tests (push) Failing after 3m12s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m35s
Project CI / Backend tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Reviewed-on: #457
2026-09-22 17:47:59 +08:00
k88936
c42e087a30
Merge remote-tracking branch 'origin/master' into refactor/extract-dep-from-ref-inputer
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 21s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 20s
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 crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
2026-09-22 17:41:24 +08:00
k88936
80b15b24ae
appSurface 用例:失败只经终态事件收口,界面不再停在"还在处理"
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 新增「closes the turn from the host failure payload instead of leaving it running」:宿主发过 turn.started 之后以 failure 载荷收场并让命令失败,断言失败文案来自事件载荷(经同一份可见文案映射)、"陶泥儿正在处理"消失、终止钮消失、输入盒回到「发送」
- 同一条用例反向断言命令返回的错误原文不进聊天:那条通道只负责运行错误横幅
- 变异校验:让 reducer 不落失败说明条目时该用例变红(1 failed),恢复后绿
2026-09-22 17:40:17 +08:00
k88936
b432556ee3
reducer 用例:失败终态落说明条目、文案与横幅同源、重放不重复
...
- 新增「失败终态(turn.completed 带 failure 载荷)」六条用例:失败照样收口并冻结终点、说明条目按本轮开口身份派生、本轮开口条目拿到边界
- 可见文案与运行错误横幅共用同一份映射(点名 codex-app-server-error:context-window-exceeded)
- 重复 / 迟到的失败终态不追加第二条说明、不抬高冻结终点、不复活运行态
- 身份不匹配的失败终态不动正在跑的这一轮;空原因不落说明条目但终态照样收口
- 没有身份时用事件时间派生说明身份,两轮失败不会合并成一条
2026-09-22 17:40:17 +08:00
k88936
258645f182
前端失败说明改由事件驱动:turn.completed.failure 落成本轮说明条目,命令返回只留横幅
...
- 新增 conversation/directTurnFailure.ts:失败说明条目的展示身份(本轮开口身份 + :failure)与可见文案(复用 projectRuntimeVisibleError)两条口径集中一处
- directThreadChat 的 turn.completed 分支读 failure 载荷:非空原因先落成本轮最后一条说明条目,再走同一个收口函数;失败不再是第二套生命周期
- useDirectProjectChatController 的失败分支不再写聊天气泡:聊天文案唯一来源是事件,命令返回只保留运行错误横幅(含详情 long detail)与诊断留痕
- 数据流、时序与投影注释同步:标注失败说明来自事件、本地通道只剩终止说明与壳层 announce
2026-09-22 17:40:17 +08:00
k88936
5cf4a018b3
宿主终态接线:失败写进 turn.completed 的 failure 载荷,并在 turn.started 之后武装兜底守卫
...
- codex_app_server 的 DirectProject 终态改用 direct_turn_failure 判定:失败走 turn_completed_failed(原因脱敏 + 截断后写进同一个事件),其余仍走 turn_completed(status)
- 失败判定两个来源:collect_result 是 Err 时用错误本身当原因;collect_result 是交付报告但 status 已判成 failed 时用那份报告当原因
- turn.started 进入队列后立即武装 DirectTurnFailureGuard,写完终态 disarm:panic、回合 future 被丢弃、终态之前的早退都会补一条 host-dropped 失败终态,前端不会停在"还在跑"
- 定向 `cargo test direct_`(438 passed,含 wire / manager / 失败策略模块)
2026-09-22 17:40:17 +08:00
k88936
5d9223c32e
失败终态策略独立成模块:分类、原因脱敏与 Drop 兜底守卫
...
- 新增 agent/direct_turn_failure.rs:LlmError → 稳定分类(timeout / model-failed / transport-failed / request-rejected)、判定"终态是不是失败"并给出脱敏截断后的原因、DirectTurnFailureGuard(turn.started 之后武装、写完终态 disarm,Drop 时补 host-dropped 失败终态)
- 守卫兜底覆盖 panic / future 被丢弃 / 终态之前的早退;kill -9 与 turn.started 之前的早退写进模块注释,明确不为它们补路径
- agent.rs 注册模块并再导出
- 5 条用例:错误分类映射、只有 failed 终态带载荷、原因脱敏 + 按字符截断、armed 后 Drop 补终态、disarm 后不再产出事件
2026-09-22 17:40:17 +08:00
k88936
d32c99c927
事件协议:turn.completed 增加可选 failure 载荷,失败终态与正常终态同权入锚点
...
- direct_thread_wire 新增 DirectTurnFailure{kind,message} 类型,给 TurnCompleted 增可选 failure 字段,并补 turn_completed_failed 构造器与 failure 读取器
- with_user_item_id 显式带上 failure:原先把 TurnCompleted 写成 `..` 会静默吞掉失败载荷,身份与原因必须一起流转
- 新增 wire 用例:失败终态带载荷、正常终态不带且回写不补 null、缺载荷的 failed 事件仍可反序列化
- direct_thread_manager 增回归用例:turn.completed(status=failed) 必须顶替更早的 turn.started 成为 lifecycle_anchor,重放不会把已收口的回合看成"还在跑"
- 重新生成 ts-rs 绑定(新增 DirectTurnFailure.ts、DirectThreadEvent.ts 增 failure 字段)并按 prettier 格式化
2026-09-22 17:40:17 +08:00
k88936
d36f5842b6
文档:失败回合终态定为 turn.completed 带 failure 载荷,宿主 Drop 守卫兜底
...
- ADR【DirectProject对话历史单一事实源】补三条决策:终态事件只有 turn.completed,失败时 status="failed" 必须带 failure{kind,message};宿主 Drop 守卫在 turn.started 之后武装、写完终态即解除;失败原因只走事件这条通道,聊天说明的展示位保留、数据来源换成事件
- 同 ADR「影响」补两条已知边界(进程被强杀时没有 Drop、turn.started 之前的早退不产回合也不补终态)与「可见文案映射规则不变」的口径
- 技术方案【DirectProject Codex原始历史与异常恢复】同步线上形状:turn.completed 增加可选 failure,并写明失败终态与正常终态同权顶替 lifecycle_anchor
- decision-log 记本次决策、明确不做项、影响范围与验证方式
2026-09-22 17:40:17 +08:00
k88936
981a6b0021
Revert:撤掉前端「命令返回就收口」的兜底,改由宿主 turn.failed 事件收口
...
- 撤销 a35956f3e 的前端实现:directThreadChat 的 commandClosedTurnUserItemId / stopDirectThreadTurn、subscription 的 stopCommandTurn、controller 失败分支的调用,以及随附的两处用例
- 原因:失败语义改由宿主事件(turn.failed)表达,前端不再自造第二条「结束」判定路径,也不再在失败路径上补本地消息
2026-09-22 17:40:16 +08:00
suzmii
9b0fcd48d2
Merge branch 'master' into feat/agc-run-preview-tip
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m24s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m53s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 20s
Project CI / Backend tests (pull_request) Failing after 21s
Project CI / Native shell tests (pull_request) Failing after 21s
Project CI / Frontend tests (pull_request) Failing after 21s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / AI game creator shell web tests (pull_request) Failing after 21s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
2026-09-22 17:31:32 +08:00
kdletters
56fd5a98f7
修复 release 客户端下载清单的编码空格校验
...
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 21s
Project CI / Backend tests (push) Failing after 21s
Project CI / Native shell tests (push) Failing after 21s
Project CI / Frontend tests (push) Failing after 21s
Project CI / Repository checks (push) Failing after 20s
Project CI / AI game creator shell web tests (push) Failing after 14s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 1m56s
Project CI / AI game creator shell Rust crates (push) Failing after 1m54s
Project CI / AI game creator shell Rust smoke (push) Failing after 1m56s
放行客户端下载清单 URL 中百分号编码的空格
补充 release 安装包文件名回归测试
更新客户端下载规范与排障文档
2026-09-22 17:29:19 +08:00
suzmii
c2d756a772
Merge branch 'master' into feat/agc-run-preview-tip
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m59s
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 lane 2/2 (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 / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
2026-09-22 17:28:39 +08:00
kdletters
67e95eee4e
Merge pull request '游戏分发与在线游玩:封面/截图冻结、网页可见可玩与 AGC 发布接入' ( #466 ) from codex/game-distribution into master
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/466
2026-09-22 17:26:59 +08:00
kdletters
c0c5255b31
Merge branch 'master' into codex/game-distribution
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
2026-09-22 17:26:50 +08:00
k88936
d5fb34209a
重构:候选懒加载改为菜单回调,match 收成纯函数
...
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- ReferenceProvider 新增可选 onMenuQueryChange(query):输入区在 useEffect 里回调(菜单关闭时收到 null),作为懒加载的唯一入口
- ProviderMentionMenu 不再让 provider 在渲染期产生副作用:match 只负责过滤已就绪的数据,契约里写明它必须是纯函数
- useSkillReferenceProvider 把目录读取从 match 搬进 onMenuQueryChange,第一次敲出 $ 才读;失败仍放开重试(下一次菜单查询变化时重试)并保留 console.warn
- referenceSourceProviders 用例改为经菜单回调驱动,并显式断言 match 不触发任何 Tauri invoke、菜单关闭(null)也不触发
- 同步 ADR、决策记录与功能说明里 provider 契约的那段描述
2026-09-22 17:24:24 +08:00
lhk229
ff7c5f3589
补齐 CI 缓存维护器请求与任务契约校验
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
要求 API 请求显式指定 HTTP 方法并更新全部调用点
增加 workflow 全部任务名称与缓存导出映射的契约测试
从 Rust 任务映射推导集合和数量,消除重复硬编码
同步开发流程中的维护约定
2026-09-22 09:22:54 +00:00
lhk229
705bb1e6b3
CI缓存自动维护与清理 ( #462 )
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/462
2026-09-22 17:19:11 +08:00
kdletters
e5460280ce
发布入口接入灰度开关
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 后端:GET /api/runtime/frontend-config 新增 gameDistributionPublishEnabled,复用 `game-distribution:publish` 判据(未配置或 enabled=false 时对已登录作者默认开放,显式收紧后只放行白名单/灰度命中用户,匿名恒为 false),前端入口与写入口共用同一事实源。
- 后端用例:新增 frontend_runtime_config_game_distribution_publish_is_scoped_to_authenticated_gate,覆盖默认开放、enabled=true 无白名单、白名单命中、deny 名单、enabled=false 回退与 rolloutPercent=100。
- 网页:平台壳按灰度隐藏「发布游戏 / 发布新版本」入口;/games/publish 直接访问时渲染「发布功能正在灰度中」并提供重新检查;读取失败按放行处理,由后端写入口把关并返回可读文案。
- AGC:新增 readGamePublishAvailability(同一运行时配置字段),只有命中才把发布回调交给 DirectProject 聊天头;字段缺失或读取失败按不开放处理。
- 文档:玩法链路、后端数据契约与实施计划记录灰度口径、入口行为与验证命令。
2026-09-22 17:12:04 +08:00
k88936
aa973ea34d
同类问题:另外两个宿主的引用 provider 也按内容签名记忆
...
- PlanningChatView 的 chatProjectAssets 由工作台壳每次渲染重新 .filter() 派生、DirectProjectComposer 的 assets 由 manifest 订阅每次渲染重新派生,两处的 [assets] 依赖同样从不命中缓存
- 两处改用 assetsSignature(...) 做依赖,provider 身份不再随宿主渲染抖动(流式回复时每帧都换),输入区不再每帧重注册 Lexical 更新监听
2026-09-22 17:12:02 +08:00
suzmii
f7250f5dd1
合并 master(bba4f0eb2):DirectProject 聊天三态与快照文档并入运行页入口收口
...
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (pull_request) Has been cancelled
- 只冲突两份共享记忆的尾部追加(pitfalls / decision-log):保留双方新增条目,直接合并非取舍
- App.tsx / styles.css 自动合并通过;本分支的运行页入口收口与 onRunNotice 通道未受影响
2026-09-22 17:08:03 +08:00
k88936
fbfc7e5e62
修复:候选菜单的 key 改用引用身份,同名素材不再撞 key
...
- 导出 resourceReferences 的 chatReferenceKey(只认稳定身份、不含显示名的身份键),并加注释说明它为什么不能省
- ReferenceMentionOption 由 super(chatReferenceMentionToken(...)) 改为 super(chatReferenceKey(...)):characters/hero.png 与 enemies/hero.png 都展开成 @hero,拿显示 token 当 key 会让 React 撞 key、复用错 DOM,键盘高亮与选中落到另一条候选上
- referenceSourceProviders 用例补一批同名素材:断言两条候选的显示 token 相同、身份键不同
2026-09-22 17:06:08 +08:00
k88936
3fdde6f51d
修复:并发导入附件时仍然守住 8 个上限
...
- useDirectProjectChatController 增加 attachmentsPendingCountRef:已放行但还没落成正文芯片的条数先在预算里占住名额,放行的部分在 finally 还回去
- 原来的预算只减草稿里已有的附件芯片数,两次并发导入会各自按同一份快照放行,最终插进正文的芯片可以超过 MAX_CHAT_COMPOSER_ATTACHMENTS(回归自「待发附件列表」被删掉的那次重构)
- 新增 tests/chatComposerAttachmentCap.test.tsx:两次并发各带 5 个文件,断言放行 5 + 3,并补 jsdom 缺失的 Blob.arrayBuffer
2026-09-22 16:59:36 +08:00
kdletters
1bd5fe9ff0
合并 master:AGC 项目快照整目录上传
...
Project CI / AI game creator shell Rust lane 2/2 (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 lane 1/2 (pull_request) Has been cancelled
- 合并 origin/master(bba4f0eb2:项目快照整目录上传 .agent,保留项目身份与 Agent 历史)。
- 自动合并无冲突;共享记忆与实施计划文档经复核保留双方条目,游戏分发功能面未受影响。
- 同步目的:Gitea PR 门禁要求 PR head 包含目标分支最新提交,合并后重新推送触发 Project CI。
2026-09-22 16:59:05 +08:00
k88936
39ac337569
诊断:Skill 目录读取失败不再静默
...
- skillReferenceProvider 的 loadSkillCatalog 失败分支补 console.warn('[skill-reference] …'),带上是哪一次重试、错在哪,排障时不再只能看到「敲 $ 没反应」
- referenceSourceProviders 用例断言这条日志(并用 vi.restoreAllMocks 收尾),把「失败可重试」与「失败留痕」两件事一起钉住
2026-09-22 16:56:31 +08:00
k88936
28bacfc125
画布生成面板的引用 provider 按素材内容签名记忆
...
- ResourceCanvasAssetGenerationPanelView 的 referenceProviders 改依赖 assetsSignature(referenceAssets):referenceAssets 由 .filter() 派生、每次渲染都是新数组,原来的 [referenceAssets] 依赖永远命中不了缓存
- 注释写明「provider 身份一变,输入区就重新注册 Lexical 更新监听」,避免以后又改回数组依赖
2026-09-22 16:55:39 +08:00
kdletters
d047b16b91
合并 master:DirectProject 回合三态与 AGC release 每日调度
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 合并 origin/master 11 个提交(DirectProject 回合三态与投影 memo、宿主崩掉后的回合收口、权限拒绝后的忙态、策划对话布局修复、AGC release 每日调度)。
- 本次自动合并无冲突;游戏分发发布入口(App 的 requestGamePublish、DirectProjectChatView 透传、聊天头「发布到游戏广场」按钮)在新聊天状态机下保持接线。
- 验证:root / AGC / admin-web 三端 typecheck、全量 vitest、游戏分发 Rust 测试、encoding、doc-index、rustfmt 与 SpacetimeDB schema guard。
2026-09-22 16:54:38 +08:00
kdletters
f1b282f3cd
合并 master 并接入 DirectProject 新聊天架构
...
- 合并 origin/master(304 个提交:DirectProject 聊天容器重构、Project Supervisor 退役、策划附件导入、CI 隔离编译缓存等)。
- 接受 master 对 ProjectSupervisorView / SupervisorChatOnlyView 的退役与预览快捷测试收敛;发布入口改由 DirectProject 聊天头承载。
- DirectProjectChatHeader 新增「发布到游戏广场」入口(无回调不渲染、回合忙态禁用),DirectProjectChatView 透传 onRequestGamePublish。
- App.tsx 继续由工作台壳持有试玩包导出与 GameDistributionPublishPanel,沿用 project.export_package 权限确认队列;check-config 把该命令从 native-only 清单移回 App invoke。
- 后台游戏审核 API / 类型 / 路由测试与 master 新增的 AGC 模板管理按双方保留合并,并修掉拼接造成的接口与用例闭合缺陷。
- 修正 master 自带的 viteProxyConfig 断言:/api/creation-entry 属退役路由,测试改为断言不进入代理。
- 记录合并踩坑:语法结构内部的冲突不能简单按「双方保留」拼接,必须按某一侧骨架重建并跑 tsc 与单文件测试。
- 验证:全量 vitest 393 文件 / 4374 用例通过,root / AGC / admin-web 三端 typecheck,cargo check 与游戏分发 Rust 测试,encoding、doc-index、rustfmt、SpacetimeDB schema guard。
2026-09-22 16:45:29 +08:00
kdletters
bba4f0eb24
项目快照整目录上传 .agent,保留项目身份与 Agent 历史
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m16s
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 lane 1/2 (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 / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 1m17s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m47s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m3s
Project CI / Backend tests (push) Successful in 5m59s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m6s
Project CI / Native shell tests (push) Successful in 7m23s
Project CI / Frontend tests (push) Successful in 3m48s
Project CI / Repository checks (push) Successful in 3m37s
Project CI / AI game creator shell web tests (push) Successful in 3m40s
- 新增 should_skip_project_snapshot_sync_path:快照同步放行 .agent 组件,并放行其中 .db / .db-wal / .db-shm 的 Agent 状态数据库
- 组件与后缀排除表提取为常量;should_skip_project_snapshot_path 行为不变,项目索引、checkpoint、Agent 上下文与 git 检查继续排除整个 .agent
- project_snapshot 扫描入口切到新口径,.agent 的 manifest、agent.db、会话、日志、checkpoint、workbench 与 project.lock 全部参与同步
- 新增整目录扫描用例与策略用例,覆盖 .agent 内凭据、.env、版本库与构建目录仍被排除
- 主规范更新上传内容边界与后台归档范围:工程 ZIP 可用于还原项目身份与 AGC 对话历史
- 里程碑、实施计划与共享记忆决策记录同步 .agent 全量口径、真实上传与后台 ZIP 的运行时验证证据,以及 v1/v2 键布局边界
2026-09-22 16:39:12 +08:00
kdletters
fdc14404b2
新增 AGC release 每日调度
...
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
新增 Genarrative-Scheduled-Release-Trigger,每天 04:00 发布 Windows/macOS release 渠道
release 调度复用统一发号源,并为 macOS 启用过期构建让位
现有小时 dev 调度保持同时触发 Windows 与 macOS
更新生产运维门禁、发号权限、技术方案与共享记忆
2026-09-22 16:32:11 +08:00
lhk229
3775e05970
修复策划对话布局与流式显示 ( #460 )
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
恢复固定消息区域和工作区状态条样式,修正窄屏单列布局
限制长阶段提示、澄清卡片和文件导入结果高度,保证输入区可达
补齐实时正文和思考的滚动跟随,保留用户上滚意图
移除读取策划历史时补造的发送时间
补充布局与显示回归测试,同步技术方案和共享排障约定
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/460
2026-09-22 16:25:51 +08:00
k88936
742bad4fee
Merge pull request 'Fix/unfinished turn' ( #463 ) from fix/unfinished-turn into master
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
Reviewed-on: #463
2026-09-22 16:23:25 +08:00
suzmii
0434647978
修复快速编辑草稿回填用例的竞态:面板先出现、Lexical 的值后落
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 同一条用例在 CI run 2702 与本地一次全量里各命中过一次「expected '' to include '把角色头发改成红色'」:面板(dialog)一出现就同步读 textContent,编辑器值还没落
- 回填类断言统一改走 expectPanelPromptContains(内部 waitFor),不再赌时序
- 「提交后重开是空面板」那条否定断言改用 composerValue 读(它先让编辑器落值),避免空串让断言空过
- 连跑该文件 9 次 + 全量 3 次(173 文件 / 1826 通过 / 18 跳过)均全绿
2026-09-22 16:13:10 +08:00
k88936
a6a938d5cc
文档:新增引用输入区重构与宿主注入的实施计划
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m34s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m25s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m23s
Project CI / Repository checks (pull_request) Failing after 16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m26s
Project CI / Frontend tests (pull_request) Successful in 5m37s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m6s
Project CI / Native shell tests (pull_request) Successful in 10m39s
- 记录一句话交付、五条验收判据、六个提交切分与验证方式
- 追加执行状态:六项已落地内容、顺带清理、验证结果(全绿门禁与定向用例)与未完成项(CSS 类名重命名、真机手感、粘贴解析)
2026-09-22 16:07:06 +08:00
k88936
e6b6a0aeca
文档:记录引用候选由宿主注入的决策、术语与功能说明
...
- 新增 ADR《引用候选由宿主注入》:注入式 provider、面板外移、附件并入正文的理由、备选与影响
- decision-log 增加 2026-09-22 条目:注入 / 分离 / 附件 / 显示口径四项决策、未纳入项、验证方式,并记录顺带清理 activeVersionId
- 功能说明《AGC聊天素材引用》同步:Provider 注入、ResourceReferencePicker 自持数据、$ Skill 只出现在注入该 provider 的宿主、附件进入正文与上限口径、显示名注入
- CONTEXT.md 补引用来源 / provider / 选择器 / 附件芯片等术语与关系
- docs/README.md 登记新 ADR
2026-09-22 16:06:40 +08:00
k88936
1fbce7ffc5
清理工作台壳到聊天壳已经传不过去的 activeVersionId
...
- ProjectChatComponentProps 删除 activeVersionId:它只在策划输入盒的 @ 面板里生效,而策划输入盒的 @ 触发钮早就不渲染,参数从壳传进聊天后无人消费
- WorkspaceLauncher 不再把这个参数透传给 ProjectChat;工作台壳自己那份 activeVersionId 保留,仍供 ProjectDevelopmentView 的游戏运行版本使用
- App 的 AppProps 与解构同步删除该参数
- styles.css 里那条「ResourceReferenceInput 收到 showTriggerButton={!directCodex}」的注释改成当前口径:@ 触发钮在控制排的 .project-chat-reference-trigger,输入区不注入 ResourceReferencePickerAction
2026-09-22 16:05:08 +08:00
k88936
7e009a4c94
引用输入区改为宿主注入引用来源,素材选择器与输入区分离
...
- 新增 features/project-workspace/reference-source(types + 资源/Skill/附件/运行画面区域四个 provider 工厂),输入区按 providers 顺序取第一个非空回答,不再判断引用种类
- ResourceReferenceInput 删除 assets / versions / activeVersionId / skills / showTriggerButton / openPicker,改为 providers / inputActions / submitSuppressed / containerRef 四个通用接缝
- 新增 ResourceReferencePicker 与 ResourceReferencePickerAction:面板自己拿数据(素材、版本、缩略图预览 invoke)并自管筛选态,由宿主渲染,确认后只经 insertReferences 交回输入区
- 四个宿主改为按需注入 provider 并各自渲染选择器:DirectProject 注入资源+Skill+附件+运行区域,策划输入盒 / 画布生成面板 / 资源卡快速编辑只注入资源+两个静默 provider,非 DirectProject 宿主不再出现 $ Skill 候选
- 附件并入 ChatReference,编辑器收敛为单一 ResourceReferenceNode(删除 AttachmentReferenceNode),附件 chip 的 DOM 契约(data-attachment-reference / data-attachment-status / title / 移除按钮 aria-label)逐字保留
- 附件改为导入成功即以芯片进入正文、失败与异常一律不插入;控制器删除待发附件状态与 removeAttachment,ComposerPendingAttachments 与其提交时拼接一并删除,单次上限按草稿中的附件芯片数计算,导入进行中禁止发送
- directCodexContentToPromptText 的引用 token 前后各留一个空白(不重复),显示名反查改由调用方注入 resourceLabelResolver(assets),并补 TODO:后续改为按组件渲染引用
- 队列 chip 文案、快速编辑出站提示词、润色回填的引用恢复统一走 joinMentionText 的同一份 token 口径
- 新增 tests/referenceSourceProviders.test.ts 规则矩阵单测(触发符、候选过滤与截断、toReference、refresh、mentionToken、Skill 目录懒加载与失败重试),既有输入区/聊天用例迁移为注入 provider
- styles.css 删除随面板外移与待发附件列表一起失效的规则
2026-09-22 16:01:54 +08:00
k88936
00f36b4863
Merge remote-tracking branch 'origin/master' into fix/unfinished-turn
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m18s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m33s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m5s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m54s
Project CI / Backend tests (pull_request) Successful in 5m42s
Project CI / Native shell tests (pull_request) Successful in 7m25s
Project CI / Frontend tests (pull_request) Successful in 3m43s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m10s
Project CI / Repository checks (pull_request) Successful in 3m34s
2026-09-22 15:52:19 +08:00
k88936
d5e06de33e
固化键盘菜单键不被右键手势拦截的口径
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m58s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m57s
Project CI / Frontend tests (pull_request) Successful in 3m6s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m41s
Project CI / Native shell tests (pull_request) Successful in 6m13s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m32s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m50s
- 实测 Chromium 151 下键盘菜单键触发的是 button: -1,previewRightPanGesture 注释写明只认按钮 2 的原因
- previewRightPanGesture.test.ts 增加 button: -1 不拦截的判据用例
- previewRightPanDrag.test.tsx 增加键盘菜单键仍走原有节点菜单路径的集成用例
- decision-log 条目补上该实测结论与新增用例的验证口径
验证:npx vitest run previewRightPanDrag.test.tsx previewRightPanGesture.test.ts(13 passed)
2026-09-22 15:35:51 +08:00
k88936
a35956f3ec
宿主崩掉不再留下永远开着的回合:本地命令失败按身份兜底收口
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- directThreadChat 新增 commandClosedTurnUserItemId 与 stopDirectThreadTurn:本地命令返回即这一轮在宿主那边收场,只放掉「是否在跑」、不写终态时间
- 同身份迟到的 turn.started 不再把这一轮拉回运行态;迟到的 turn.completed 例外放行,仍要拿它补上真正的结束时间
- 身份不同的回合不动:「正在跑的是另一轮」这种拒绝不能顺手抹掉别人的回合
- useDirectThreadChatSubscription 暴露 stopCommandTurn;controller 在真失败分支按本轮身份调用,主动终止与 another-turn-running 不走这条
- 新增用例:reducer 两条(不复活 / 不碰别人的回合)、appSurface 一条(失败后不再显示「陶泥儿正在处理」、输入盒回到发送态);变异去掉兜底收口后该用例变红
- decision-log 记录本次决策,以及仍未做的宿主侧根因(Rust 侧 drop 守卫补终态事件)
2026-09-22 15:34:48 +08:00
kdletters
500835407a
修复 AGC Windows 构建的 NSIS 回归测试路径兼容
...
Project CI / AI game creator shell Rust crates (push) Successful in 1m31s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m0s
Project CI / Backend tests (push) Successful in 5m9s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m3s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m11s
Project CI / Native shell tests (push) Successful in 7m3s
Project CI / Frontend tests (push) Successful in 3m50s
Project CI / Repository checks (push) Successful in 4m5s
Project CI / AI game creator shell web tests (push) Successful in 4m7s
NSIS 缓存目录解析改为按目标平台使用 win32/posix path,避免 Windows 将 /tmp 解析到当前盘
回归测试改用 defaultAppRoot,并补齐 Windows/POSIX 路径断言,消除 C:\\C:\\ 拼坏与分隔符误判
同步 shared-memory,记录跨平台路径测试约束
2026-09-22 15:33:33 +08:00
k88936
0ab04d0f64
预览画布接入右键拖拽平移
...
- PreviewWorkspace 右键按下记录起手并捕获指针,越过共用阈值后按起点全量 delta 平移视口,抬起时由 resolvePreviewRightPanRelease 裁决平移还是节点菜单
- 捕获阶段拦截按钮 2 的 contextmenu,拦截窗口保留到下一次指针按下之前,兼容"按下触发"与"抬起后触发"两类平台时序
- 右键抬起用 [data-node-id] 加树容器新增的 data-tree-id 命中节点,沿用"右键即选中该节点"语义;未平移但抬起在预览外时不弹菜单,空白网格右键静默
- 视口接线共享 isPanning,让空格、中键、右键三个平移绑定共用 grabbing 光标;onPointerCancel 拆成不进菜单的独立处理
- 新增 tests/previewRightPanDrag.test.tsx:右键拖拽只平移不弹菜单、阈值内仍弹菜单、空白右键不改选择、预览外抬起不弹、非右键 contextmenu 仍即时、中键平移回归、右键平移后左键拖动仍可用
验证:npx vitest run 定向 7 个文件 59 passed、apps/ai-game-creator-shell npx tsc --noEmit、改动文件 eslint、npm run check:encoding、git diff --check
2026-09-22 15:32:19 +08:00
k88936
f525b6dc70
新增预览右键平移手势状态机
...
- 新增 previewRightPanGesture.ts:按下起手、按共用阈值判定是否进入平移、按起点全量 delta 复用 moveViewportFromPan 算视口
- 抬起裁决统一收口到 resolvePreviewRightPanRelease:平移过就只回视口,未平移且在预览内才按节点菜单处理
- shouldInterceptRightContextMenu 记录"按钮 2 且处于右键按下序列"的拦截窗口,兼容按下触发与抬起后触发的两类平台时序
- 新增 tests/previewRightPanGesture.test.ts 覆盖阈值边界、越阈值后不回弹、全量 delta、预览外抬起与拦截判据
验证:npx vitest run previewRightPanGesture.test.ts(5 passed)
2026-09-22 15:27:30 +08:00
suzmii
3b2a6c8853
Merge remote-tracking branch 'origin/master' into feat/agc-run-preview-tip
2026-09-22 15:26:54 +08:00
k88936
96e7ba7808
预览拖动阈值抽成公共常量模块
...
- 新增 previewDragThreshold.ts,导出 DRAG_THRESHOLD_SCREEN_PX 与屏幕坐标阈值判定 passedDragThresholdScreen
- useNodeTransformInteraction 删除本地阈值常量,改为复用该模块,左键拖动/缩放行为不变
验证:npx vitest run useNodeTransformInteraction.test.tsx previewWorkspaceZoom.test.tsx(18 passed)
2026-09-22 15:26:11 +08:00
k88936
65e06c4808
记录预览画布右键拖拽平移的交互约定
...
- decision-log 新增 2026-09-22 条目:右键拖拽平移的判定链、菜单改到抬起弹出、按下即拦截 contextmenu 的实测依据与代价
- 【UI编辑器】拖动变换提交边界补「视口平移不写 State、不进历史」以及右键平移与节点菜单按同一拖动阈值互斥的约定
- 同一文档的实现边界补拖动阈值落点 previewDragThreshold.ts 与右键裁决落点 previewRightPanGesture.ts
2026-09-22 15:25:32 +08:00
k88936
cab31613f2
权限被拒不再抹掉下一轮的忙态:出队统一交给 finally
...
- startTurn 的权限被拒分支不再自己 endTurnCommand + dispatchNextQueuedTurn,改为标记 queueAdvance 交给 finally 收口
- finally 固定顺序:刷新清单 → endTurnCommand() → 出队,保证清忙态早于出队,不再清掉下一轮刚设上的忙态与 pendingUserItemId
- 模块注释把这条顺序写成契约,并说明权限被拒这种「本轮从未发出但要继续出队」的走法
- 新增 appSurface 用例:权限被拒 + 后面排着消息时,被出队那一轮在飞期间输入区仍是终止态;改前该用例红
2026-09-22 15:20:38 +08:00
k88936
67d2f08421
窗口期渲染用例先等 invoke 发出,别让断言在命令未发出时就过
...
- chat-composer 的 does not report a finished turn 用例捕获 invoke 并先等它被调用,再断言窗口期不出现终态文案
- 写权限门是异步的:不等待时断言会在 invoke 之前通过、收尾的 pending[0]?.resolve 变成空操作,用例盖不住它声称覆盖的窗口
2026-09-22 14:59:13 +08:00
k88936
c8a8b0b0b8
DirectProject 聊天投影补 memo,让下游 memo 不再空转
...
- DirectProjectChatView 的 directTurns 改用 useMemo 缓存,判据为 directEntries / localMessages / directTurnRunning / pendingUserItemId
- 注释写明不缓存时每次渲染都是新数组引用,useDirectProjectTurnStatus 里以 turns 为判据的 useMemo 永远命中不了,读者会误以为 turnStatus 引用稳定
2026-09-22 14:56:50 +08:00
k88936
417137baf8
把 DirectProject 聊天状态与数据流的说明写进代码注释
...
- useDirectProjectChatController 模块注释补三层地图、三份原始输入、一次发送的时序(含空窗步骤)与状态变量归属
- DirectChatTurnState 注明三态各自能断言什么、判据的四个输入及来路、state 真值表、两个易读错的点与「finished 拿不到终态时间」的已知边界
- DirectThreadChatState.turnRunning 注明它只是原生真相,不等于界面上的「这一轮在跑吗」
- DirectProjectTurnUsage 注释写清两类「finished 却拿不到终态时间」的回合、覆盖范围与修法口径,说明不再甩给任何文档
- decision-log 的未修边界条目改为指向上述代码位置,避免同一套说明在代码与文档里各留一份
2026-09-22 14:20:27 +08:00
k88936
4cd5fb8d72
Merge remote-tracking branch 'origin/master' into feat/ui-editor-v3
...
# Conflicts:
# apps/ai-game-creator-shell/src/features/resource-canvas/resourceCanvasAssetGenerationQueue.ts
# apps/ai-game-creator-shell/src/features/resource-canvas/useResourceCanvasGenerationPlaceholders.ts
# apps/ai-game-creator-shell/tests/resourceCanvasGenerationFloatingPanel.test.tsx
# docs/project-memory/shared-memory/decision-log.md
2026-09-22 14:08:41 +08:00
k88936
cfcd3cd604
DirectProject 空窗期不再谎报本轮结束:三态接入渲染
...
- DirectProjectTurnUsage 渲染判据改为 state !== 'finished',awaiting-start 不再显示「本轮结束于 … 耗时 0.0秒」
- DirectProjectTurn 的过程折叠判据同样改为 state !== 'finished';流式正文与工具卡片仍按 state === 'running'
- 组件注释写明「否定式读 !== 'finished'、肯定式读 === 'running'」这条分工,并标出仍由 A 负责的另一半兜底与覆盖范围
- 新增 tests/directProjectTurn.test.tsx:awaiting-start / running 不显示终态文案且不折叠、finished 有终态时显示结束时间与耗时
- appSurface chat-composer 新增窗口期用例:invoke 挂起且无任何原生事件时不出现「本轮结束于」
- decision-log 追加本条决策、保守卡片口径的理由、未修边界与变异验证结论
2026-09-22 14:07:07 +08:00
k88936
860dcb1bf5
DirectProject 聊天状态显式化:回合三态与「在跑吗」唯一派生入口
...
- DirectChatTurn 的 active 布尔改为三态 state(running / awaiting-start / finished),三态判定收在投影里、用身份而不是时间戳
- buildDirectChatTurns 新增 pendingUserItemId 入参;controller 的 beginTurnCommand / endTurnCommand 与 turnBusy 同生共死地维护它
- 新增 useDirectProjectTurnStatus 作为「在跑吗」的唯一派生入口:nativeRunning / commandInFlight / displayBusy / latestTurnState
- DirectProjectChatView 不再手拼 busy:header 与 composer 读 displayBusy,「正在处理」卡片读 nativeRunning
- DirectProjectConversation 的 running 入参改名 nativeRunning,语义写在类型注释里
- DirectProjectTurn 改读 turn.state;渲染条件保持不变,awaiting-start 仍按已结束渲染(空窗缺陷另开改动)
- directTurnPresentation 的起点优先级与三态判定由嵌套三元改为逐级 if 覆盖
- 新增 directProjectTurnStatus 用例 4 条;directTurnPresentation 补三态用例 4 条并改按 state 断言
- ADR 补「活动回合唯一判据约束的是原生回合」澄清与代码指针
- decision-log 记录本次重构决策、未修的窗口期缺陷与验证证据
2026-09-22 14:06:20 +08:00
lhk229
292e42cf5e
为全部 Rust 测试组启用隔离编译缓存
...
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 lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (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 lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 1m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m51s
Project CI / Backend tests (push) Successful in 5m35s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m8s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m11s
Project CI / Native shell tests (push) Successful in 7m6s
Project CI / Frontend tests (push) Successful in 3m30s
Project CI / Repository checks (push) Successful in 3m28s
Project CI / AI game creator shell web tests (push) Successful in 3m7s
扩展缓存消费到 AGC 双 lane、crates、smoke、后端及桌面壳测试
补齐各组实际编译目标和工作目录的可信快照预热
保留 SpacetimeDB 独立编译边界并排除发布构建缓存
根据完整快照体积将对象缓存上限调整为 4 GiB
更新工作流契约测试、运维文档及项目共享记忆
2026-09-22 05:52:16 +00:00
suzmii
6dde321bd1
修 review 发现:运行反馈全面退出对话区,并补齐顶栏与守卫细节
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m5s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m13s
Project CI / Frontend tests (pull_request) Successful in 3m15s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m55s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m21s
Project CI / Native shell tests (pull_request) Successful in 8m53s
- executeRunLocal 的三条失败路径(缺 Tauri / 缺项目 / 启动预览报错)也改走 onRunNotice 失败色提示,对话区不再出现过程行;随之删除已无调用方的 announceProjectChatMessage 与不再有意义的 announceToChat 参数
- RunNoticeToast 的失败提示延长到 6 秒(成功仍 2.6 秒),避免错误一闪而过
- 版本入口在 UI 编辑器壳里不渲染;版本名改由一层 span 承载省略号,长版本名不再被硬裁
- 视图拿不到 onNotice 时把「在浏览器打开失败」写进 console,不再静默吞掉
- check-native-shells 增加「运行页视图里 openUrl( 只有一个调用点」的判据,堵住自动开浏览器的口子
- 新增外壳级接线用例 runNoticeShellWiring;previewActivation 补「启动失败走失败色提示且不写对话区」;runNoticeToast 补失败时长;样式守卫补省略号
- decision-log 收敛到最终口径(成功与失败都出对话区、失败留 6 秒、编辑器不挂版本入口)
2026-09-22 13:51:30 +08:00
suzmii
82de6d46a9
合并 master(48eb3d500):CI 缓存与运行时测试重组并入运行页入口收口
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m9s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m4s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m26s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m59s
Project CI / Backend tests (pull_request) Successful in 6m44s
Project CI / Native shell tests (pull_request) Successful in 7m55s
Project CI / Frontend tests (pull_request) Successful in 3m32s
Project CI / Repository checks (pull_request) Successful in 3m6s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m33s
- 只冲突 docs/project-memory/shared-memory/pitfalls.md:保留双方新增的排障记录(本分支的 Codex 原生包版本 + master 的 Rust 对象快照)
- 其余 master 改动(CI 缓存脚本、process_session 测试拆分等)自动合并
2026-09-22 12:56:22 +08:00
suzmii
0a8debef56
合并 master:运行页入口收口并入 DirectProject 重构
...
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 保留 master 的 DirectProject / ProjectChat 重构与测试重组:原 appSurface 的 project-commands / project-preview / supervisor-runtime 三个 suite 已被 master 删除,接受删除并把相关断言重写到 tests/previewActivation.test.tsx 等新用例
- 本分支改动重放到 master 结构:运行与预览成功的反馈改走 onRunNotice toast(带 tone),对话区不再写过程提示
- 运行页顶栏统一:预览地址改成「在浏览器打开」按钮,版本入口搬进同一动作区复用同一套按钮皮,状态行与预览地址小字退役
- 生成任务入口、面板与锚点不在运行页渲染,placement 里的 run 档一并删除
- 手工合并 App.tsx / WorkspaceLauncher.tsx / model.ts / check-config.mjs / decision-log / pitfalls,并把两条决策记录与一条排障记录补进 master 版本文档
2026-09-22 12:50:19 +08:00
lhk229
48eb3d5007
Opt/ci ( #456 )
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m22s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m13s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m28s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m58s
Project CI / Backend tests (push) Successful in 7m16s
Project CI / Native shell tests (push) Successful in 8m10s
Project CI / Frontend tests (push) Successful in 3m49s
Project CI / Repository checks (push) Successful in 4m8s
Project CI / AI game creator shell web tests (push) Successful in 4m1s
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/456
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-22 12:42:27 +08:00
suzmii
5a87c5f965
运行页顶栏收口:预览地址改按钮,版本入口并入顶栏同一套样式
...
- 删除运行区域上方的状态行与预览地址小字,运行画面回到两行栅格
- 预览地址改成顶栏动作区里的「在浏览器打开」按钮(opener 插件 openUrl),只在有活预览时渲染
- 版本入口搬进同一个顶栏动作区,外观复用该容器的基础按钮样式,去掉自带的边框、底色与 hover
- 打开失败走 onNotice 的失败色 toast:onRunNotice 通道改成带 tone 的对象,四处调用点同步
- 补顶栏入口正向守卫,删掉状态行的旧样式用例并新增顶栏与浏览器打开的用例
2026-09-22 11:51:51 +08:00
k88936
1b951619c9
Merge pull request '统一错误事件同步留痕到 AppData 应用日志' ( #453 ) from feat/log-the-dianosis into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m57s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m46s
Project CI / Backend tests (push) Successful in 5m16s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m57s
Project CI / Native shell tests (push) Successful in 6m36s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m24s
Project CI / Repository checks (push) Successful in 2m37s
Project CI / Frontend tests (push) Successful in 3m54s
Project CI / AI game creator shell web tests (push) Successful in 2m15s
Reviewed-on: #453
2026-09-22 10:54:42 +08:00
suzmii
8e6ee50ad8
运行页收口:状态行同在画面外,生成任务不进运行页
...
- 运行区域上方新增状态行,预览地址小字与版本入口同排:两者都在游戏画面之外,版本入口不再绝对定位压在画面上
- 小字单行省略并用 title 给出完整地址,状态行高度恒定 30px,没有版本入口时也不塌
- 运行页不再渲染生成任务入口、面板与锚点;[data-generation-tasks-placement='run'] 那一档坐标与 placement 里的 run 一并删除
- 按新口径改写两侧用例,新增运行区域状态行的声明级守卫用例
- 记录决策到 shared-memory/decision-log.md
2026-09-22 10:29:53 +08:00
k88936
a3586bc995
Merge remote-tracking branch 'refs/remotes/origin/master' into feat/log-the-dianosis
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m56s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m49s
Project CI / Backend tests (pull_request) Successful in 5m7s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m13s
Project CI / Native shell tests (pull_request) Successful in 6m34s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m57s
Project CI / Repository checks (pull_request) Successful in 2m25s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m46s
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
2026-09-22 10:26:13 +08:00
k88936
74e6ac90a7
把摘要移出应用日志身份行,避免整行脱敏吃掉事件定位
...
- 身份行只留程序生成或调用方常量字段(eventId / source / stage / code / retryable / clientTurnId / elapsedMs / detailRef),去掉了 summary
- summary 移到详情行(hint / summary / detail / metadata),自由文本全部只出现在详情行
- 原因:sanitize_diagnostic_message 命中凭据标记时替换整行,且裸词标记(如 credential rotation failed)脱敏消不掉,summary 留在身份行会连 eventId、detailRef 一起被替换
- 用例补一条裸标记词场景:详情行被整体替换时身份行仍能按 eventId 与 code 定位
- 同步【技术方案】AGC错误报告与诊断上传、【技术方案】AI游戏创作智能体App实施计划、决策记录与踩坑记录的两行字段口径
- 验证:cargo test -- runtime_error direct_tool_bridge(41 passed)、cargo fmt --check、git diff --check
2026-09-22 10:22:28 +08:00
suzmii
e6083050a8
运行/预览提示退出对话区,改 toast 与运行区域小字
...
- 删除播放、/preview、/open-preview 与生成后自动启动预览写进对话区的成功提示,对话区只保留对话内容
- 新增 onRunNotice 通道,工作台壳用 RunNoticeToast 弹 2.6 秒浮层,同一句连续触发会重新计时
- 运行表现层在预览框上方常驻小字「已载入客户端运行视图:URL」,没有活预览时不占位
- 更新 appSurface 四处用例,新增 onRunNotice、小字与 RunNoticeToast 用例
- 同步 check-config 与 check-native-shells 的字符串判据,并记录决策到 shared-memory
2026-09-22 10:00:38 +08:00
k88936
6973a2cb45
Merge pull request '重构/拆分directproject聊天组件' ( #420 ) from refactor/split-direct-project into master
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m56s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m55s
Project CI / Backend tests (push) Successful in 5m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 10m20s
Project CI / Frontend tests (push) Failing after 2m20s
Project CI / Native shell tests (push) Successful in 6m36s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m34s
Project CI / AI game creator shell web tests (push) Successful in 1m36s
Project CI / Repository checks (push) Successful in 1m48s
Reviewed-on: #420
2026-09-22 02:53:26 +08:00
k88936
19e1883f71
合并 origin/master:策划附件导入接入策划聊天入口
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m55s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m54s
Project CI / Backend tests (pull_request) Successful in 5m4s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m18s
Project CI / Native shell tests (pull_request) Successful in 6m34s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m32s
Project CI / Frontend tests (pull_request) Successful in 3m15s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m29s
Project CI / Repository checks (pull_request) Successful in 1m42s
- 保留 DirectProject 独立聊天容器与 Supervisor 退役结果,不为冲突恢复运行时兼容分支
- 策划工作区文件导入接入 PlanningChatView 输入盒,导入期间暂缓发送、阶段批准、澄清与重试
- 工作台壳按项目记录导入进行态,导入未完成时不切换游戏运行态并提示等待
- 首页策划附件导入结果落到工作台 fileImportNotice 提示条,可单独关闭
- 设计态输入盒样式选择器由 project-supervisor-* 收敛为 project-chat-*
- 策划导入回归用例适配退役后的 harness 与 chatProps 命名
2026-09-22 02:24:47 +08:00
lhk229
4e41bd3e56
修复预览发布测试状态文件恢复竞态
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m54s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m49s
Project CI / Backend tests (pull_request) Successful in 5m7s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m49s
Project CI / Native shell tests (pull_request) Successful in 6m47s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m45s
Project CI / Frontend tests (pull_request) Successful in 5m10s
Project CI / Repository checks (pull_request) Successful in 3m57s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m26s
Project CI / AI game creator shell Rust crates (push) Successful in 1m16s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m11s
Project CI / Backend tests (push) Successful in 4m55s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 9m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 8m2s
Project CI / Native shell tests (push) Successful in 7m2s
Project CI / Repository checks (push) Successful in 3m51s
Project CI / AI game creator shell web tests (push) Successful in 3m23s
Project CI / Frontend tests (push) Successful in 5m48s
deploy_and_uninstall 测试在断言状态文件恢复前,改为轮询等待持久化状态到达 Stopped
新增 wait_for_persisted_status 辅助函数,经 load_deployments 真实加载路径校验状态文件
2026-09-22 00:53:47 +08:00
k88936
5315b233c8
预览激活回接「运行」入口,聊天 @ 清单打开选择器时按需重读
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m58s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m49s
Project CI / Backend tests (pull_request) Successful in 5m7s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 10m7s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m15s
Project CI / Native shell tests (pull_request) Successful in 6m37s
Project CI / Frontend tests (pull_request) Successful in 3m8s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m45s
Project CI / Repository checks (pull_request) Successful in 1m56s
- App.tsx 新增 activateRunningPreview,运行入口先问 Rust 要活体预览(activate_local_game_preview),命中就只切客户端运行视图
- App.tsx 的 executeRunLocal 命中活体预览时经 DirectProject 聊天的 announce 播报「已切换到客户端运行视图」,不再重复调用 start_local_game_preview;stopped / 非本项目 / 权限位要求确认一律回落到重新启动
- check-config.mjs 从 native-only 白名单移除 activate_local_game_preview 并同步注释(该门禁要求 App invoke 与白名单互斥)
- DirectProjectComposer 新增 onReferencePickerOpen,工具条按钮与附件菜单两处选择器入口打开前先刷新清单
- DirectProjectChatView 用 useDirectProjectManifest 的 refresh 重读聊天自己那份 @ 清单,不新增壳到聊天的清单推送通道
- 新增 tests/previewActivation.test.tsx,钉住切视图不重启 / stopped 回落重启 / 权限确认回落重启三条路径
- decision-log 记录本轮两处回归的背景、决策、取舍与验证方式
2026-09-21 23:09:43 +08:00
k88936
a11cdf13d7
画布生成面板重开草稿与重试身份收敛到 canonical content
...
生成面板 state、重开草稿、重试身份与提交载荷统一为一份 content[]
重试身份改用 directCodexContentKey 内容指纹比对并删除 referenceIdsMatch
directCodexContentToLegacyContentDto 只在任务落账的出站边界派生
账本回到草稿的反向翻译收敛为 legacyContentDtoToContent 单一实现
token 扫描从 ResourceReferenceInput 提到 resourceReferences 并两处共用
无法解析的资源引用合成 unknown 占位而不再静默丢弃
出站提示词规范化收敛为 resourceCanvasAssetGenerationPromptText 供两处共用
directCodexContentToPromptText 去掉 trim,空白只在整条 content 上判定
同步决策记录与 canonical content 里程碑落地结果
2026-09-21 22:56:32 +08:00
lhk229
085181c795
修复策划附件导入工作区并解除资源清单耦合
...
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m21s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m58s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 10m40s
Project CI / Backend tests (pull_request) Successful in 5m37s
Project CI / Native shell tests (pull_request) Successful in 7m30s
Project CI / Repository checks (pull_request) Successful in 3m46s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m22s
Project CI / Frontend tests (pull_request) Successful in 4m54s
Project CI / AI game creator shell Rust crates (push) Successful in 2m57s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m51s
Project CI / Backend tests (push) Failing after 3m47s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m22s
Project CI / Native shell tests (push) Successful in 6m12s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 10m13s
Project CI / Frontend tests (push) Successful in 3m51s
Project CI / Repository checks (push) Successful in 2m44s
Project CI / AI game creator shell web tests (push) Successful in 2m25s
新增策划工作区文件导入命令,支持同名另存并保留文件字节
首页和聊天框附件直接导入策划工作区,脱离游戏资源清单与回合附件
导入期间暂缓发送、阶段操作和游戏制作切换,保留逐文件失败提示
补充导入、刷新与切换回归测试,同步技术方案和共享约定
2026-09-21 22:49:21 +08:00
k88936
cc980267fe
用例改为按生产口径传入已脱敏 detail
...
- 原用例直接传带 token=secret 的原文,与函数「detail 已是 sidecar 脱敏文本」的前置条件不符,测的不是真实数据流
- 改为先按 8 KiB 口径 redact 出 safe_detail 再传入,metadata 仍按生产原样传未脱敏 JSON,保留脱敏覆盖
- 验证:cargo test runtime_error(7 passed)
2026-09-21 22:45:06 +08:00
k88936
4bdf9e2cd4
写明应用日志投影为什么对已脱敏 detail 再过一遍
...
- 原注释写「只再按应用日志预算截一次」,实现却是完整脱敏流水线,合同与实现不一致
- 采纳方式是把合同写实:detail/metadata/summary 都在这里脱敏;已脱敏的 detail 也走同一遍,理由是截断会切开脱敏标记,且这是 pub(crate) 边界不假设调用方先脱敏
- 未采纳「去掉再脱敏改为只截断」:该建议会把安全性绑定在调用方自觉上,收益只是一次可忽略的 canonicalize
- 验证:rustfmt(注释改动,无行为变化)
2026-09-21 22:42:56 +08:00
k88936
5847505020
用例按逐行口径核验应用日志落盘边界
...
- 生产是把两行分别交给 append_application_log_line 脱敏截断,原用例先 join(" ") 再 sanitize,测不到逐行截断与「只该脱敏其中一行」的情况
- 改为逐行 sanitize,并分别断言身份行(eventId/code/detailRef/summary)与详情行(detail 脱敏、metadata 无凭据)
- 验证:cargo test runtime_error(7 passed)
2026-09-21 22:20:25 +08:00
k88936
c49ee8d157
详情行的 metadata 补上单行压平
...
- metadata 之前直接以 {metadata} 插值进日志行,只靠 Value::to_string() 的转义保证单行,和函数「每个字段都先压平」的约定不一致
- 改为与其他字段一样走 single_line_log_field,日志行完整性不再依赖序列化器的转义行为
- 验证:cargo test runtime_error(7 passed)
2026-09-21 22:16:05 +08:00
k88936
852f5de886
修复应用日志身份行的摘要只压行未脱敏
...
- 身份行的 summary 由调用方给,direct_tool_bridge 传的是工具错误原文,而 app_log! 会把整行写 stderr,那里没有 sanitize_diagnostic_message 兜底
- 新增 AGENT_RUNTIME_ERROR_APP_LOG_SUMMARY_CHARS(320 字符,与 sidecar 摘要预算同口径),summary 落日志前先脱敏再截断
- 函数合同写明 detail/metadata/summary 三类外来文本都在这里脱敏,不再只是压平换行
- 同步【技术方案】AGC错误报告与诊断上传与共享记忆 decision-log 的预算口径
- 验证:cargo test runtime_error(7 passed)
2026-09-21 22:12:41 +08:00
k88936
8968762274
合并 origin/master:DirectProject 输入校验取回空白片段回归用例
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m57s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m47s
Project CI / Native shell tests (pull_request) Failing after 50s
Project CI / Frontend tests (pull_request) Failing after 1m50s
Project CI / Backend tests (pull_request) Successful in 4m45s
Project CI / Repository checks (pull_request) Successful in 2m1s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m38s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m21s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m31s
- validation.rs 保留本分支的 content_has_meaningful_input 与 Skill/附件独立上限,空输入报错取回 master 的用户可见文案“聊天内容不能为空”
- wire.rs 取回 master 新增的 text_projection / user_input_rejects / valid_references / nonempty_text 四条回归用例,测试导入合并两侧
- resourceReferenceInput.test.tsx 取 master 的注释口径:草稿 text 投影会 trim,提交用的 content 保留 chip 后的分隔空格
- pitfalls.md 与《AGC聊天素材引用》改为「任意非文本 part 均算有效内容」,与四类引用的实际校验对齐
- 本地私有改动的 .env 不进入本次合并
2026-09-21 21:42:41 +08:00
k88936
8b2d0cb9df
统一错误事件同步留痕到 AppData 应用日志
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m57s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m50s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 6m44s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 7m28s
Project CI / Frontend tests (pull_request) Successful in 4m9s
Project CI / Native shell tests (pull_request) Successful in 8m24s
Project CI / AI game creator shell web tests (pull_request) Successful in 5m37s
- 新增 agent_runtime_error_app_log_lines,把统一错误事件的同一份已脱敏诊断投影成应用日志两行:agent.runtime.error 身份行与 agent.runtime.error.detail 详情行
- 身份行含 eventId/source/stage/code/retryable/clientTurnId/elapsedMs/detailRef/summary,详情行含 hint/detail/metadata;detail 与 metadata 各按 1200/200 字符预算先脱敏再截断,字段仍只来自 sidecar 那份 diagnosis
- 拆两行的原因:整行命中凭据标记会被 sanitize_diagnostic_message 整体替换成脱敏占位,详情行被吃掉时身份行仍能定位 eventId 与 detailRef
- app_log! 先于 sidecar 写入,sidecar 写失败也留下可提交的诊断;各字段先压平换行,保证应用日志逐行读取且 stderr 输出不拆行
- 新增用例覆盖身份字段、凭据脱敏、单行口径与实际 sanitize_diagnostic_message 落盘边界(含超长诊断)
- 同步文件【技术方案】AGC错误报告与诊断上传与【技术方案】AI游戏创作智能体App实施计划,共享记忆 decision-log 与 pitfalls 明确项目内 .agent/runtime/errors sidecar 与进程内错误报告事件池是两套东西,本次只写日志行
- 验证:cargo test runtime_error(7 passed)、cargo fmt --check、npm run check:encoding、git diff --check
2026-09-21 21:34:45 +08:00
k88936
7745264990
同步canonical content里程碑落地结果与润色口径
...
里程碑与实施计划状态改为 implemented
记录润色按 token 原位恢复引用与附件、被改写 part 末尾补位
记录遗留 TODO:润色删掉 token 时无法反推原位置
2026-09-21 21:23:17 +08:00
k88936
295d4af384
润色回写按token原位恢复引用与附件
...
统一引用与附件的润色扫描口径,token 存活时原位换回真 part
token 被改写时剩余 part 补在末尾,附件不再丢出 canonical content
删除无调用方的 EMPTY_CHAT_COMPOSER_DRAFT
补充润色原位恢复与末尾补位两条回归用例
2026-09-21 21:22:04 +08:00
k88936
6981648796
合并 origin/master:Supervisor 永久退役,项目对话收敛为 DirectProject 与 Design Agent
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m56s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m48s
Project CI / Native shell tests (pull_request) Failing after 45s
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Failing after 1m52s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m42s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m57s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 8m1s
- 解决 refactor/split-direct-project 与 origin/master 在 App.tsx、立项策划聊天视图、Direct composer/引用输入区、styles.css、Rust direct user item 与 appSurface 用例上的冲突,按「Supervisor 永久退役」口径保留 DirectProject 独立聊天容器与 Design Agent 两条产品路径
- 采纳 master 的策划 Agent V1/V2 退役:删除 GDD 审批卡、策划输入卡、planningLane、planningSessionV2、planningSessionContract、规划展示适配与 Rust planning_*_v2 命令、模块、契约及对应用例,不保留兼容别名或双跑路径
- 把 master「折叠思考显示单行预览」的目的落到当前结构:新增共享表现 chat/components/AgentReasoning/AgentReasoning.tsx(折叠态单行纯文本预览 + 箭头、展开态安全 Markdown),DirectProject 回合与策划回合共用,删掉两处写死的 pre 折叠实现
- 把 master「策划入口可选模型 / 推理档」的目的接到当前策划输入盒:复用 ConversationModelSelect 与 ComposerReasoningEffortSelect,配置写回仍走客户端配置通道
- App.tsx 删除只服务退役 Supervisor / 策划 V2 的 state、ref、effect、回调与死参数,并删除两条读路径都退役后的 workspaceProjectKind;openWorkspace 的工程类型入参保留为未使用契约
- Rust 侧保留本分支 canonical→wire 投影、无审计 Direct 回合与 direct user item 严格校验,并入 master 的 prepare_new_web_project_at 前置复核
- 更新 ADR 与 shared-memory 决策记录:策划当前只有 Design Agent、两条路径的共享表现清单,以及本次合并的口径、代价与验证证据
- 验证:AGC 与仓库 typecheck、check:encoding、check:doc-index、git diff --check、改动文件 eslint 0 error;AGC vitest 168 个文件中除 5 个 jsdom localStorage 环境失败文件与本分支既有 resourceTagStatsRefresh 失败外全绿,appSurface 198 passed / 13 skipped;Rust 定向用例 direct_codex_user_item、skill_pack、sessions 全过(整套分片在本容器受 /sbin -> usr/bin 触发沙箱预检失败,与本合并无关)
2026-09-21 21:09:34 +08:00
lhk229
2d61a4c057
Merge pull request 'Codex/fix direct image generation ci' ( #452 ) from codex/fix-direct-image-generation-ci into master
...
Project CI / AI game creator shell Rust lane 2/2 (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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/452
2026-09-21 19:46:05 +08:00
lhk229
e2bdb1105b
合并最新 master 到图片生成 CI 修复分支
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m7s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m52s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m36s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m10s
Project CI / Repository checks (pull_request) Successful in 5m5s
Project CI / Frontend tests (pull_request) Successful in 5m40s
Project CI / Backend tests (pull_request) Successful in 8m16s
Project CI / Native shell tests (pull_request) Successful in 9m49s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m45s
合入最新 master 的客户端图标素材描述修复
保留图片生成通知测试的宿主执行会话初始化与失败断言
2026-09-21 11:20:53 +00:00
lhk229
71f5f36764
修复图片生成通知测试缺失宿主执行会话
...
复用真实宿主执行会话与交付合同夹具,补齐 Direct 工具桥测试前置状态
保留图片资源提交后的刷新通知断言,并核对空提示词拒绝原因
同步更新图片生成集成测试初始化说明
2026-09-21 11:15:39 +00:00
lhk229
f71361c292
修复客户端图标素材生成丢失用户描述 ( #450 )
...
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
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
删除图标生成的固定提示词包装、默认美术说明和两次截断
按服务端单条描述语义校验非空及200个Unicode字符,超限拒绝并保留原文
保留内部换行,直接以单条iconDescriptions提交用户描述
更新前端、原生入口和实际HTTP请求回归测试
同步工具说明、生成契约及项目排障文档
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/450
Co-authored-by: Linghong <ink29535@proton.me >
Co-committed-by: Linghong <ink29535@proton.me >
2026-09-21 19:12:35 +08:00
suzmii
cc8c03a40d
运行游戏不再往聊天写"运行通过"提示
...
- 删掉 AGC 播放/运行本地游戏成功后的聊天提示:它每次播放都会堆在对话底部遮挡运行画面,成功与否由客户端运行视图本身体现,失败仍照原样回报
- appSurface 三处用例改为断言 start_local_game_preview 真被调用且聊天里不再出现该提示
- 补排障记录:本地 node_modules 内置 Codex 原生包过旧会让 AGC build script panic,需在仓库根目录 npm ci
2026-09-21 19:08:43 +08:00
lhk229
6e9e7edcf8
修复回显测试身份数据与 Linux 条件编译
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m2s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m46s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 6m12s
Project CI / Repository checks (pull_request) Has been cancelled
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 / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
按实际用户输入生成 SHA-256 请求摘要,保留回显去重与历史记录断言
保留 Windows 安装身份辅助函数的平台限制,补齐两处 AppData 调用分支的条件编译
同步 Direct 回合测试与安装路径策略文档
2026-09-21 10:59:28 +00:00
lhk229
480fe995ed
Merge remote-tracking branch 'origin/master' into codex/fix-agc-command-runtime-ci
2026-09-21 10:43:06 +00:00
lhk229
afd5b8d91f
修复 Linux 命令执行将孤儿僵尸误判为未回收进程
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m59s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m46s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m39s
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 lane 2/2 (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
命令主进程退出后区分存活成员与僵尸成员,保留进程组身份校验和失败关闭语义
处理 procfs 扫描期间进程退出及非 UTF-8 进程名,空进程组直接返回
新增隔离 subreaper 回归测试并补全命令 observation 断言诊断
同步 Runtime 技术方案与共享排障记录
2026-09-21 10:30:41 +00:00
kdletters
c60d116af0
合并 codex/agc-godot-templates-20260921 到 master:新增 Godot 模板与按模板建项分流
...
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
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- 新增 Godot 模板源 godot-empty-2d / godot-empty-3d / godot-hello-world / godot-platformer-2d
- 按模板建项新增 Godot 分流:改写 project.godot 的 config/name 后走既有 Godot 导入并写入相对根
- Godot 工作区发现放宽:一层多命中按目录名排序取首个,project.godot 允许链接,内置插件行去掉手动启动
- 解决 decision-log.md 冲突:保留渠道安装身份与项目快照按渠道分区两条记录,并合入 Godot 两条记录
2026-09-21 18:17:33 +08:00
kdletters
3eb99f5124
合并 codex/agc-channel-install-identity 到 master:AGC 渠道安装身份隔离
...
- AGC 渠道安装身份隔离:不同渠道包体可在同一台设备并存
2026-09-21 18:17:12 +08:00
kdletters
34b1ad5d5c
新增 Godot 模板并补按模板建项的 Godot 分流
...
- 新增 4 个仓库内手写 Godot 4.7 模板源:godot-empty-2d、godot-empty-3d、godot-hello-world、godot-platformer-2d,entry 统一为 project.godot,各自带 meta.json 与 960×540 封面
- template_library.rs:复制模板后按 project.godot 识别 Godot 模板,改写工程显示名后走既有 Godot 导入并写入 godotProjectRoot,不再落到 Web 占位入口
- manifest.rs:新增 apply_godot_project_display_name,只改 [application] 段的 config/name 一行,其余字节逐字保留
- manifest.rs:放宽 Godot 工作区发现,一层子目录多命中按目录名排序取第一个,project.godot 允许是符号链接 / reparse point / 硬链接
- commands.rs:同步 Godot 导入错误文案,去掉「普通文件」限定
- RuntimeConfigDialog.tsx:内置插件行去掉手动启动 / 停止按钮,启动由前端自动启动承担、停止走该行启用开关
- import_tests.rs 与 tests/project.rs:补显示名改写、多命中确定性、链接标记与错误文案的定向回归
- 同步更新 PRD、模板包组织指南、模板库与模板建项技术方案、AGC Godot 编辑器插件接入方案、实施计划与共享决策记录
2026-09-21 17:25:34 +08:00
kdletters
c52e0814d6
AGC渠道安装身份隔离:不同渠道包体可在同一台设备并存
...
- 新增 channel-identity.mjs 单点定义渠道安装身份,默认渠道保持基线 productName 与 identifier
- build-release.mjs 渠道 --config 同批注入 productName、identifier 与 updater 端点
- build-macos-ci.mjs 按发布渠道解析产品名,派生 .app、updater 归档与 DMG 名称
- main.rs 与 windows.rs 窗口标题取构建期产品名,同机并存的渠道客户端可区分
- config.rs 提权 ACL 的 managed 范围按目录名识别基线目录与渠道派生目录
- check-config.mjs 断言基线等于默认渠道身份且非默认渠道身份必须隔离
- build-release.test.mjs 与 prepare-macos-codex.test.mjs 补齐渠道身份与渠道首装包用例
- 更新 AGC 更新主规范、开发运维文档、共享记忆与渠道安装身份隔离的里程碑与实施计划
2026-09-21 17:06:03 +08:00
kdletters
4951b71d71
项目快照按渠道分区,后台项目工程支持渠道筛选与游标分页
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m46s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m37s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 6m5s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 6m40s
Project CI / Repository checks (push) Successful in 5m37s
Project CI / Frontend tests (push) Successful in 6m21s
Project CI / Backend tests (push) Successful in 9m56s
Project CI / Native shell tests (push) Successful in 10m57s
Project CI / AI game creator shell web tests (push) Successful in 5m29s
项目快照对象键升级为 agc/project-snapshots/v2/{channel}/{user}/{project}/,渠道取部署配置 GENARRATIVE_AGC_PROJECT_SNAPSHOT_CHANNEL(缺省沿用客户端下载渠道),非法渠道在写入处失败关闭
后台新增渠道列表接口,项目工程列表与下载接受 channel,游标绑定渠道并拒绝跨渠道复用
后台项目工程用户列改为素材查询口径:昵称 + 陶泥号 + 用户详情入口,由 api-server 解析作者信息
后台项目工程改为游标分页:每页 20/50/100、上一页/下一页与当前页提示,翻页失败保留当前页
部署环境示例补充快照渠道配置,并同步运维、技术方案、里程碑与决策记录文档
2026-09-21 16:57:16 +08:00
lhk229
8520b50c81
修复游戏智能体输入含空白片段时被误判为空 ( #449 )
...
Project CI / AI game creator shell Rust smoke (push) Successful in 2m20s
Project CI / AI game creator shell Rust crates (push) Successful in 1m17s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 6m51s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 5m21s
Project CI / Backend tests (push) Successful in 7m33s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Native shell 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
改为按整条消息判断有效内容,保留空白文本片段及两类引用的原有校验
补充多行文本、纯引用、全空白输入及非法引用的定向回归测试
同步素材引用文档、共享排障记录和过时测试注释
Reviewed-on: https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/449
2026-09-21 16:36:59 +08:00
kdletters
c5afc02e94
模板正文目录门禁:CLI 打包与后台上传统一拒绝身份/版本库/依赖/构建目录
...
Project CI / Frontend tests (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust smoke (push) Has been cancelled
- scripts/agc-template-library-publish.mjs:readProjectFiles 增加正文门禁,任意层级拒绝 .agent/.git/.svn/node_modules,根目录拒绝 dist/build/library/temp/local/.idea/.vscode
- scripts/agc-template-library-publish.test.mjs:新增夹具源目录与门禁用例,覆盖 13 条拒绝路径及 game/dist/**、game/.gitignore 放行
- server-rs/crates/api-server/src/admin_templates.rs:上传归档校验与 CLI 用同一份段名单,新增 template_import_archive_rejects_identity_and_build_directories
- docs/【模板规范】AGC模板包组织指南-2026-09-21.md:已知边界改为「已有机器门禁」,并说明同名目录段只在根目录受限
- docs/technical/【技术方案】AGC模板库与模板建项-2026-09-17.md:CLI 与后台上传的校验口径补门禁,并追加 2026-09-21 证据(九个模板本地重打包摘要与线上清单逐条一致)
- docs/project-memory/plans/【里程碑】后台模板上传-2026-09-21.md:验收标准 2 补充门禁证据
- docs/project-memory/shared-memory/decision-log.md:新增 2026-09-21 正文目录门禁决策记录
2026-09-21 16:25:35 +08:00
kdletters
b5e1c0f1d6
新增模板包组织规范并接入文档索引
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m48s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m37s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 6m5s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 8m59s
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 / AI game creator shell web tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- 新增 docs/【模板规范】AGC模板包组织指南-2026-09-21.md:ZIP 根目录契约、html 与 Cocos 工程的建议结构与保留项、禁止放入的内容(.agent/.git/node_modules/dist/密钥/嵌套锁文件)、路径与体积上限、封面要求、元数据字段约束、版本不可变规则与发布前自检清单
- 说明两条发布路径的输入差异(CLI 源目录 vs 后台成品 ZIP 上传)与各自上限,并标注「工具不会自动拦截 .agent/.git」这一已知边界
- 主规范与模板库 README(会发布到 OSS templates/README.md)各加一条指向该指南的入口
- docs/README.md 登记新文档,check:doc-index 通过(194 份)
2026-09-21 16:16:21 +08:00
kdletters
15e7d6065e
记录后台模板上传里程碑的实现与证据
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m58s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m51s
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
- 里程碑 Status 更新为 implemented-awaiting-runtime-acceptance
- 补实现与证据表:路由/权限、写入前整批拒绝、批量原子性、版本一致性、CAS 与锁、保留语义、内容寻址与回读、界面用例与静态检查
- 明确仍未执行:真实 dev bucket 的批量写入 smoke(需用户确认,建议两个 smoke-import 模板验证后下架)
2026-09-21 16:10:55 +08:00
kdletters
2e23a54211
后台模板上传(页面):模板管理页支持批量选择 ZIP 与封面并整批提交
...
Project CI / AI game creator shell Rust crates (push) Successful in 3m2s
Project CI / AI game creator shell Rust smoke (push) Successful in 4m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 新增上传模型:文件名派生模板 ID、按同名匹配封面、逐行字段校验与 multipart 组装(标签去重与上限)
- 模板管理页新增「上传模板」入口与弹窗:多选 ZIP、按 ID 同名多选封面、逐行编辑 ID/名称/版本/运行时/entry、逐行错误、沿用写入确认与防重复提交
- 失败只在弹窗内交代并区分 409 刷新引导与 503 锁占用提示,401 仍交由会话处理;成功后用服务端快照刷新列表并展示逐条导入结果
- admin API client 支持 multipart 请求(不预设 JSON Content-Type),新增 importAdminAgcTemplates 与对应类型
- 主规范新增「后台模板上传」章节并收口原「不上传 ZIP」表述;决策记录补一条
- 验证:admin-web typecheck、页面/模型/客户端 40 项 vitest、check:doc-index、check:encoding、cargo fmt --check、git diff --check
2026-09-21 16:06:23 +08:00
kdletters
4863c8c066
后台模板上传(后端):新增批量导入接口与存储/领域支持
...
- shared-contracts 新增导入 manifest、逐条与结果 DTO(camelCase,拒绝未知字段)
- module-assets 新增 prepare_template_import:新 ID 默认上架,已存在条目就地更新并保留上架状态与未知扩展字段;同一 ID 同版本字节不同时按 CLI 同一句文案拒绝,字节一致时按内容复用既有对象
- platform-oss 为 application/zip 放宽单对象上限到 64 MiB(图片与元数据仍 5 MiB),测试替身同步该口径
- api-server 新增 POST /admin/api/agc-templates/import:multipart(manifest + zip_N/cover_N),逐项校验归档安全性、entry 存在性与封面(按字节嗅探格式,仅 PNG/JPEG/WebP)后才取发布锁
- 锁内流程:CAS 校验 revision → 内容寻址写入 zip/封面/元数据并回读 → 一次提交清单 → 释放锁;断连由独立任务持有,不确定结果保留锁并返回 503
- 路由挂 require_admin_auth 与 200 MiB body 上限,页签权限矩阵与路由契约测试同步
- 新增用例:清单与文件字段校验、归档越界与符号链接拒绝、内容寻址键与封面嗅探、zip 内容类型存储上限
- 新增「后台模板上传」里程碑与实施计划文档
- 验证:cargo test(module-assets 11 项、platform-oss 12 项、api-server 定向 4 项)、cargo fmt --check、check:doc-index、check:encoding、git diff --check
2026-09-21 16:06:23 +08:00
kdletters
33036b65fc
修复 AGC Windows 构建的 Tauri NSIS 工具链重复下载与截断失败
...
Project CI / AI game creator shell Rust crates (push) Successful in 3m3s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m50s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 6m16s
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
tauri-bundler 打包时现场从 GitHub 下载 nsis-3.11.zip 与 nsis_tauri_utils.dll 且不重试,
Checkout 的 git clean -fdx 又会删掉工作区内的 target/.tauri,于是每个构建都要重下,
响应一旦被截断只会抛 `io: unexpected end of file`,让发布在 Rust 编译数分钟后失败。
- Jenkins Checkout 的 git clean 增加 -e apps/ai-game-creator-shell/src-tauri/target/.tauri,只保留工具缓存
- 新增 nsis-toolset.mjs:按固定 SHA1 预置 target/.tauri/NSIS,带 4 次重试并把原始归档缓存到工作区外
- 新增 ensure-nsis-toolset.mjs 与 nsis:prepare 脚本,作为 Jenkins 预检入口
- buildRelease 在 Windows 目标打包前接入工具链预置,预置失败即失败关闭
- Jenkins 新增 Tauri NSIS toolchain 阶段,在编译前预置、跑回归测试并校验 makensis 可执行
- 新增 nsis-toolset.test.mjs 并补 3 项 build-release 预置接入测试
- 同步开发运维文档与 shared-memory 排障记录
2026-09-21 15:59:30 +08:00
kdletters
f4ebc45612
模板库线上对齐仓库源:递增版本重发并把说明文档纳入发布
...
Project CI / AI game creator shell Rust smoke (push) Successful in 1m56s
Project CI / AI game creator shell Rust crates (push) Successful in 1m23s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 4m48s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m38s
Project CI / Frontend tests (push) Successful in 10m0s
Project CI / Native shell tests (push) Successful in 11m37s
Project CI / Repository checks (push) Successful in 8m49s
Project CI / Backend tests (push) Successful in 12m24s
Project CI / AI game creator shell web tests (push) Successful in 4m50s
- 7 个内容已变的模板 templateVersion 升到 0.1.1,blank-2d-canvas 与 blank-web 保持 0.1.0
- 发布脚本把仓库 README.md 覆盖写到 templates/README.md(上限 64 KiB,写在清单之前并回读校验),线上说明文档不再是手工副本
- 修复守卫拒绝时直接 process.exit(1) 触发 libuv 断言崩溃、看不到拒绝原因的问题
- 新增发布用例:说明文档随发布覆盖写且写在清单之前、源目录没有 README 时不写线上文档
- 模板库新增仓库侧 README.md 源文件(发布后与线上逐字节一致)
- 技术方案补说明文档契约与 2026-09-21 重发布记录;决策记录与踩坑记录各补一条
- 验证:node --test 27 项、真实发布 28 个对象回读通过、线上清单与 README 核对一致、AGC 壳 3 项线上用例重跑通过、check:doc-index、check:encoding、eslint、git diff --check
2026-09-21 14:51:39 +08:00
kdletters
19ed1776f1
收口 AGC 模板库客户端接入里程碑:补缓存回退与建项失败清理证据
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 客户端清单来源抽成可测判定:远端合法正文优先并标 network,远端失败回退本机缓存并标 cache,无缓存时暴露远端错误
- 远端已答话但正文非法(不是合法 UTF-8 或不符合 schema)与缓存自身损坏时一律失败关闭,不用缓存掩盖远端问题
- 补 5 项清单来源判定用例
- 大小 / 摘要不一致与越界归档用例补断言:拒绝后不留安装目录、不产生已下载判据
- 新增建项失败清理用例:复制阶段失败时删除刚创建的项目目录,不留半成品
- 主规范并入清单来源与安装判据口径,并写入 2026-09-21 复核证据
- 里程碑置为 accepted 并补 7 条验收项证据表,按工作流删除对应实施计划
- 验证:cargo test template_library 24 项与 --ignored 线上 3 项、前端 4 个模板用例文件 38 项、appSurface 首页模板 2 项、AGC typecheck、check:encoding、check:doc-index、cargo fmt --check、git diff --check
2026-09-21 14:40:15 +08:00
k88936
4698527025
完成DirectProject composer canonical content收口
...
输入区草稿只保留 Lexical content 数组
Direct 与 Planning 提交边界直接读取 canonical content
润色保留引用解析并保护附件节点
通过单向 DTO 适配 legacy text 引用与附件消费
2026-09-21 14:37:49 +08:00
k88936
ec408bfafd
删除 DirectProject 聊天 IPC 的死参数 prompt
...
Rust 侧删掉 chat_with_game_creator_direct_codex 的 prompt 入参:回合输入只由 canonical userItem 派生,该参数从未被读取
DirectProjectTurnInput 去掉 prompt 字段,提交与排队派发不再计算 @显示名 投影文本
界面断言改读 userItem.content,并删掉退役的附件 sidecar 用例与只断言「不存在」的终止用例
同步实施计划与附件路径映射两份技术方案里的 Direct 消息契约
共享记忆补记该死参数的口径与成因
2026-09-21 14:27:23 +08:00
kdletters
4d313a44eb
收口后台模板管理里程碑:回填验收证据并删除临时实施计划
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m58s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m58s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m32s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 8m26s
Project CI / Backend tests (push) Successful in 8m33s
Project CI / Repository checks (push) Successful in 4m50s
Project CI / Native shell tests (push) Successful in 9m20s
Project CI / Frontend tests (push) Successful in 5m57s
Project CI / AI game creator shell web tests (push) Successful in 3m19s
- 里程碑 Status 从 approved 更新为 implemented-awaiting-runtime-acceptance,并注明按验收口径未对真实 OSS 写入
- 新增验收证据:合同/权限/领域/存储/CLI 五层用例结果,本地 API 健康检查与未授权读取写入失败关闭,授权读取 9 个模板快照,受控浏览器桌面与 390×844 移动端 smoke
- 新增复审记录:写路径顺序与 409 语义、后台 DTO 结构上无法改动 ZIP/版本、封面公共域名与单 bucket 合同一致、迟到响应判据的覆盖方式
- 按实施计划第 4 步删除临时实施计划文件,里程碑文档保留为唯一验收依据
- 验证:check:doc-index(192 份)、check:encoding、git diff --check
2026-09-21 14:21:25 +08:00
k88936
ab52805d3c
收口DirectProject输入区canonical content唯一事实源
...
删除输入区 text/references 双轨草稿状态
Direct 与 Planning 改为从 Lexical content 读取
润色保留 chip 并保护附件 canonical content
增加 legacy content DTO 单向翻译与附件回归测试
补充 DirectProject composer canonical content 实施计划
2026-09-21 14:11:18 +08:00
kdletters
01ed9fadc6
修复手工 release 发布未透传 AGC 渠道
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m45s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m36s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 7m54s
Project CI / Backend tests (push) Successful in 11m10s
Project CI / Repository checks (push) Successful in 6m17s
Project CI / Frontend tests (push) Successful in 8m0s
Project CI / Native shell tests (push) Successful in 11m32s
Project CI / AI game creator shell web tests (push) Has been cancelled
补充手工发布目标到 AGC 更新渠道的踩坑记录
补充 release 客户端包分区与补发流程说明
2026-09-21 14:04:02 +08:00
kdletters
02a7abeb3f
新增后台 AGC 模板管理与模板库内容寻址落库
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m53s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m42s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 后台新增「模板管理」页:按权限查看并编辑模板名称/简介/标签/封面,支持上架与下架;路由、侧栏、tab 权限、API 客户端与 DTO 同步接入
- api-server 新增 /admin/api/agc-templates 读取与更新路由,复用现有后台鉴权与 tab 权限校验,权限不足按既有失败关闭口径拒绝
- module-assets 收敛模板库纯规则(active/inactive 投影、索引 schema 与重复项校验、ZIP 大小与摘要核对),platform-oss 承担对象存储读写、不可变对象复用与发布互斥锁
- shared-contracts 补后台模板 DTO;spacetime-module 账号存储适配保持既有 schema 不变
- AGC 壳内置模板索引与建项读取改为内容寻址对象,补模板安装、越界归档、索引不匹配等用例
- 模板库发布脚本支持定向发布与上架/下架合并、内容地址复用与锁语义,CLI 守卫用例同步;jenkins 两条客户端打包管线统一触发邮件通知 Job 并传递首装包链接
- 内置 5 个 Cocos 官方模板载荷与索引 fixture(内容地址对象,共 90 个文件)
- 补「后台模板管理」里程碑与实施计划,更新模板库技术方案、开发运维文档与共享记忆
- 验证:admin-web 39 项用例与 typecheck、发布脚本 25 项用例、api-server 与 AGC 壳编译、模板库定向 Rust 用例(AGC 壳 18 项、module-assets/platform-oss 16 项、后台权限 1 项)、check:encoding / check:doc-index / check:production-ops / rustfmt 全部通过
2026-09-21 13:56:20 +08:00
suzmii
6845cdcbc5
修复 Mac 包校验脚本对合法随包 npm 的误判
...
Project CI / AI game creator shell Rust smoke (push) Successful in 2m14s
Project CI / AI game creator shell Rust crates (push) Successful in 1m26s
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell 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
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- check-macos-bundle 的「包里不得出现 node_modules」门禁只放行了 game-runtime/node/node_modules/npm,但 recursive readdir 会把目录项 game-runtime/node/node_modules 也列出来,于是合法包必然断言失败
- 这条门禁是 #439 引入的,之后每次构建都死在更早的阶段(staging/测试),直到 2026-09-21 arm64 单架构跑通才第一次走到它:12:58、13:24、13:43 三轮都挂在这里
- 修复:放行 npm 目录自身、其子树与它的上级 node_modules 容器目录;已用真实 arm64 产物跑通完整 smoke(资源、架构、摘要、权限、Codex 正式查找、app-server 握手、缺组件拒绝全部通过)
2026-09-21 13:50:32 +08:00
suzmii
4044ffd89b
修复 Mac 发布 Job 手工触发时 Checkout 因未定义参数失败
...
- 手工「立即构建」不会注入可选参数(COMMIT_HASH / SKIP_IF_SUPERSEDED 未定义而非空值),set -u 下 `[ -n "$COMMIT_HASH" ]` 直接以 unbound variable 退出,Job 2026-09-21 12:54 那一轮就是这样在 Checkout 失败的
- 两段 Checkout 脚本开头统一兜底:SOURCE_BRANCH 默认 master、COMMIT_HASH 默认空、SKIP_IF_SUPERSEDED 默认 false,调度器显式传参时行为不变(仍按 pinned commit 构建并判让位)
2026-09-21 13:50:32 +08:00
suzmii
8d0c021126
修正 Mac 发布文档口径:自动触发与描述原文
...
- 运维文档原写「不设置 trigger;不接入现有每小时版本调度」,与现状矛盾:调度 Job 会先发号再把 SOURCE_BRANCH/COMMIT_HASH/AGC_UPDATE_CHANNEL/AGC_RELEASE_VERSION/SKIP_IF_SUPERSEDED 透传给 Mac Job,正常发布不需要手工点构建
- 把 Jenkins Job 描述与节点描述的当前原文(arm64 单架构 + 由调度器自动触发 + dry-run 默认关)写进文档,并要求每次改口径同步 Jenkins 侧描述,避免描述停留在 universal/手动触发的旧口径
2026-09-21 13:50:32 +08:00
kdletters
1cb91f9444
修复画布绑定查询与生成失败归因
...
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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
- 画布绑定前置的项目列表查询改为 view=summary,站内与外部路由统一支持摘要视图(缺省 full 兼容,未知取值 400)
- 项目摘要投影收敛到 editor_project,外部 API 与 MCP 复用同一份实现,摘要不做内联媒体修复也不回传画布与全量资源
- 外部编辑器请求失败文案补 kind 语义与底层因链,区分请求超时、正文截断与非法 JSON,不拼接 URL
- 远端资源编辑终态文案带出稳定失败码并指向移出恢复队列这一唯一出口,上游原文仍不写入账本
- 补齐站内摘要视图与画布测试夹具的请求断言用例
- 更新共享决策记录与踩坑记录(图集切片上限条目归上游 #442,本提交不重复)
2026-09-21 13:33:23 +08:00
kdletters
2e31a485d8
修复 Stdb publish 事务确认超时被误判为失败
...
Project CI / AI game creator shell Rust crates (push) Successful in 3m0s
Project CI / AI game creator shell Rust smoke (push) Successful in 4m0s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m41s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 8m44s
Project CI / Backend tests (push) Successful in 8m52s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
- production-stdb-publish 新增 run_spacetime_publish:仅在出现 timeout waiting for transaction confirmation 时重试一次同版本 publish(SpacetimeDB 对已生效的同版本为幂等),重试成功即视为模块已在位,不再把生产留在维护态
- 其它失败原因保持原有失败关闭语义;生产运维门禁断言补上该重试口径
2026-09-21 13:27:37 +08:00
suzmii
4ad131d74d
Merge pull request 'AGC 画布:锚点让位标题栏、生成浮层贴边、拖动误触点击、读秒 100ms 与图集参考口径' ( #448 ) from fix/agc-canvas-bugfix into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 3m58s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m26s
Project CI / AI game creator shell Rust crates (push) Successful in 1m40s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 8m43s
Project CI / Frontend tests (push) Failing after 5m41s
Project CI / Backend tests (push) Successful in 7m29s
Project CI / Repository checks (push) Successful in 4m50s
Project CI / Native shell tests (push) Successful in 9m32s
Project CI / AI game creator shell web tests (push) Has been cancelled
Reviewed-on: #448
2026-09-21 13:04:11 +08:00
kdletters
886bdc06ed
去掉渠道环境变量用例里重复的 stageRuntime
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m44s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m37s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 6m56s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 7m58s
Project CI / Backend tests (push) Successful in 6m33s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- 两次独立修复(#444 与本仓库 55cb04765)在同一处各加了一个 stageRuntime,合并后成为重复对象键,Web-Build 的 ESLint(no-dupe-keys) 失败
- 保留一条带说明的 stageRuntime stub,用例语义不变
2026-09-21 12:49:34 +08:00
suzmii
562e1ba586
「生成任务」侧栏读秒改为 100ms 粒度:与对话侧共用同一份时钟
...
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m57s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 4m2s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 7m15s
Project CI / Repository checks (pull_request) Failing after 20s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 8m16s
Project CI / Frontend tests (pull_request) Successful in 7m30s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m1s
Project CI / Native shell tests (pull_request) Successful in 11m1s
- ResourceCanvasAssetGenerationTasksPanelView:删掉面板自带的 1000ms interval 与 nowMillis 状态;两条任务行的「已耗时」下沉为叶子组件(AssetGenerationElapsedLabel / ResourceEditElapsedLabel),各自订阅共享 hook useLiveNow(LIVE_TIMER_TICK_MS = 100)。
- 为什么不是面板级时钟:面板上通常同时挂着多条任务,100ms 的 tick 落在面板上等于每 0.1 秒重建整个侧栏;useLiveNow 的注释明确要求调用方是叶子节点。终态行不订阅,已耗时定格在账本给的结束时间上。
- 行为:不足一分钟的耗时本来就显示到 0.1 秒(formatElapsedDuration),现在每 100ms 真的更新一次,不再是「带小数却 1 秒跳一格」。
- 用例:新增「读秒按 100ms 刷新(0.0 → 0.1 → 0.5 秒)」「终态行不再走表,定格在结束时间」「秒表只订在运行中的那一行上(setInterval 只被调用一次)」;把 LIVE_TIMER_TICK_MS 临时改回 1000 时第一条用例即红,粒度确实被钉住。
2026-09-21 12:48:21 +08:00
suzmii
e18067e028
Merge pull request 'macOS 发布改为只出 arm64 单架构(修复 Mac 管线 #7 起连续失败)' ( #447 ) from feat/agc-macos-arm64-only into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 2m11s
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
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Reviewed-on: #447
2026-09-21 12:38:03 +08:00
suzmii
613d62fdb2
同步里程碑计划:macOS 清单只登记 darwin-aarch64
...
Project CI / AI game creator shell Rust crates (pull_request) Failing after 53s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m3s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m52s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 7m40s
Project CI / Repository checks (pull_request) Failing after 2m0s
Project CI / Backend tests (pull_request) Successful in 7m42s
Project CI / Native shell tests (pull_request) Successful in 8m47s
Project CI / Frontend tests (pull_request) Successful in 6m54s
Project CI / AI game creator shell web tests (pull_request) Successful in 5m1s
- docs/project-memory/plans 的渠道化里程碑仍写着 dev-mac universal 同时写两个平台键,与 2026-09-21 的单架构决策冲突,按当前口径更新并指向决策记录
2026-09-21 12:35:36 +08:00
suzmii
b4ce6877c8
修掉「拖动占位卡仍触发点击」的真因:点击抑制的计时起点必须在松手那一刻
...
- useResourceCanvasGenerationPlaceholders:抑制状态在越过拖动阈值时只登记、不起计时器,改到 pointerup 才起 0ms 计时(deferDragClickSuppressionCleanup);pointercancel 与切项目走 clearDragClickSuppression 立刻收干净。
- 原实现(越过阈值时就起 0ms 计时器)在真实鼠标下不成立:一次拖动里 pointermove 横跨多轮宏任务,计时器早在松手前就把抑制清掉,收尾那次 click 照样生效——jsdom 同步发 move/up 看不见这一档,所以上一版用例是假绿。
- 用例补上真实时序:拖动过程中显式让时钟走一轮宏任务再松手;宿主用例还补上浏览器在 pointerup 之后补发的 lostpointercapture,并断言它不能把这次拖动的抑制一起清掉。
- 敏感性已双向验证:把计时器搬回「越过阈值那一刻」、以及让 lostpointercapture 清抑制,两条用例都会红;改用例前的同步版本对两种错法都会绿(所以上一版没抓住)。
- 注释写明计时起点为什么是松手那一刻,并与资源卡链路的 deferSkippedResourceCardClickCleanup 对齐口径。
2026-09-21 12:34:47 +08:00
suzmii
e53992fdc2
macOS 发布改为只出 arm64 单架构
...
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
- build-macos-ci 固定 aarch64-apple-darwin:单架构构建、只跑 arm64 隔离 smoke、首装包命名 <产品名>_<版本>_aarch64.dmg,构建清单记录 smokes 与实际清单平台键
- stage-node-runtime 的 universal-apple-darwin 恢复失败关闭并说明原因:随包 Node 只有单架构官方发行版,按宿主架构放行会让 Intel 上这份侧车不可执行,且通用包自检按 process.arch 校验抓不到
- 守卫用例改为断言入口固定 arm64 目标与 _aarch64.dmg 后缀、universal 目标必须抛错
- Jenkinsfile 与三份技术/运维文档同步单架构口径:清单只登记 darwin-aarch64,Intel 非目标,恢复 universal 的前置条件写在文档里
- 共享记忆补 2026-09-21 决策记录,pitfalls 记下「只带宿主架构的通用包」陷阱,避免再次用过渡实现糊过去
2026-09-21 12:30:56 +08:00
suzmii
a5ee06a4c7
Merge pull request '修复macOS主机上AGC发布测试未stub Node运行时staging' ( #444 ) from fix/agc-test-node-runtime-stub into master
...
Project CI / AI game creator shell Rust smoke (push) Successful in 4m16s
Project CI / AI game creator shell Rust crates (push) Successful in 1m6s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m51s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 8m45s
Project CI / Repository checks (push) Failing after 1m55s
Project CI / Backend tests (push) Successful in 6m33s
Project CI / Native shell tests (push) Successful in 7m47s
Project CI / Frontend tests (push) Successful in 5m49s
Project CI / AI game creator shell web tests (push) Has been cancelled
Reviewed-on: #444
2026-09-21 12:23:52 +08:00
suzmii
7b57cba14d
补齐「图集(生成图标素材)为什么没有 @」的当面说明与依据
...
- 生成浮层:不给 @ 选择器的入口新增一段说明行(`data-resource-canvas-generation-reference-free`),讲清「该入口走平台图集通道,参考只有一张权威规范图(图标规范),不支持另挑参考图」——验收现场那条「生成图标素材没法 @」读起来像漏了按钮,原因其实在通道上。
- 样式:说明行允许折行、沿用次要文字色;与既有的「参考图 n/5」计数行区分开。
- 用例:图集入口断言说明行在场;逐条入口断言「说明行」与「@ 选择器」严格互补;原「不呈现参考选择」的判据从按词匹配改成按计数元素/计数值匹配(说明行本身会提到「参考图」三个字)。
- 文档:入口矩阵补「图集为什么没有 @」一条,写明图集走 `icon-spritesheets` 通道、提交体只有 referenceId + iconDescriptions(无 referenceImageSrcs)、结果绑定硬校验参考恰好一张,以及「平台 OpenAPI 该请求 schema 有 referenceImageSrcs 字段,放开属于产品 + 平台口径变更」。
2026-09-21 12:23:32 +08:00
k88936
94471ff191
补充共享记忆:受控输入区回写的 effect 时机与删订阅留死 prop 两条踩坑
...
- docs/project-memory/shared-memory/pitfalls.md 新增「受控 Lexical 输入区的回写用被动 effect 会用滞后渲染的 props 清空用户草稿」:现象、宿主回显晚于编辑器提交的原因、useLayoutEffect 的处理与 chat-composer 用例验证
- 新增「删链路只删订阅、没删它喂的 state」:design-agent-update 订阅被删后 designReasoning 恒为空、残留的订阅就绪 promise 是误删线索,以及恢复后的验证入口
2026-09-21 12:22:32 +08:00
k88936
f3097e1096
删除按已退役工作台壳聊天入口编写的预览与 Run 历史用例
...
- 删除 apps/ai-game-creator-shell/tests/appSurface/project-preview.suite.ts 及其下 preview-shortcuts.suite / run-history.suite 与全部辅助模块(fixtures、invoke-mock、message-bubble、四个 assert-* 流程)
- 删除 tests/appSurface.test.ts 里对应的 import 与注册
- 这些用例断言的是已退役的 Supervisor 工作台壳:项目摘要面板、开发环境、LLM 状态、Agent 状态、编排 Trace、`/runs` `/read` 聊天命令,以及 `chat_with_game_creator_agent`;这些对象在当前源码里都已不存在
2026-09-21 12:22:08 +08:00
k88936
f1294d4d6b
修正首页建项两用例对 DirectProject 首轮链路的过期假设
...
- apps/ai-game-creator-shell/tests/appSurface/home.suite.ts 两个首页建项用例补上 `get_local_game_manifest` 桩:首轮需求由 DirectProject 聊天容器认领,它要先读到项目清单(项目身份)才发送,不桩这条命令时清单读失败、首轮永不发出
- 「imports home attachments」用例改为 waitFor 断言首轮 invoke:发送发生在清单到位之后,不能在「工作台已出现」的同一帧断言
- 同用例的 `prompt` 期望由 `按这个角色做游戏` 改为 `按这个角色做游戏@角色参考.png`:附件以 `agc_attachment_reference` 进入 canonical content 后按 `@名称` 口径投影,与输入区、队列 chip 同一份派生
2026-09-21 12:22:02 +08:00
k88936
ba3bd59f24
恢复策划 Agent 实时事件订阅(876529e66 误删)
...
- apps/ai-game-creator-shell/src/App.tsx 重新订阅 `design-agent-update`:本轮正文与工具提示回到 transient reply,`reasoningText` 回到 `planningV2Reasoning`,`view` 回到 applyDesignAgentViewAfterTransient;Rust 侧一直照旧发射这些事件,前端却不再监听
- 补回 designAgentEventSubscriptionReadyRef 的建/解函数与 designAgentEventSubscriptionResolveRef,让 `executeDesignAgentTurn` 等待监听器挂好再发起回合,开局事件不丢
- 新增 designAgentReasoningTurnRef:回合结束(designAgentTurnRef 清空)后仍认本轮 reasoning,最后一条思考不会被视图落盘前的空隙吃掉;切项目时随 resetChatState 清空
2026-09-21 12:21:51 +08:00
kdletters
55cb047654
支持 macOS 通用包构建时的 Node 运行时暂存
...
Project CI / Frontend tests (push) Has been cancelled
Project CI / Native shell tests (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 / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
- stage-node-runtime 的 targetRuntime 支持 universal-apple-darwin:在 macOS 宿主上按宿主架构暂存官方 Node(通用包自检按 process.arch 校验),非 darwin 宿主仍失败关闭
- 同步 stage-node-runtime 测试期望:darwin 宿主可用、linux 宿主仍拒绝,Universal Node 合并(lipo)留作未完成项
- 共享记忆记录该限制:当前通用包侧车仍是宿主架构,Intel Mac 需等待真正的通用 Node
2026-09-21 12:15:28 +08:00
k88936
317c8557f4
修复输入区受控回写用滞后渲染的 props 清空用户草稿
...
- apps/ai-game-creator-shell/src/features/project-workspace/ResourceReferenceInput.tsx 的受控同步由 useLayoutEffect 承担:宿主对草稿的回显晚于编辑器提交,被动 effect 可能在上一次渲染的 props 上延迟执行,读到旧 value 加新编辑器状态后重建整份草稿,把刚输入的内容清掉并形成来回清空
- 补注释说明该 effect 必须与本次提交同帧执行,以及直接改成 content 单事实源前的行为约束
2026-09-21 11:59:17 +08:00
suzmii
beebcca4de
修复 AGC 画布四项验收问题:锚点让位标题栏、浮层不再撞画布边缘、拖动不再触发点击、图标规范参考口径对齐
...
- 生成任务锚点新增「资源总览」档:资源总览页仍贴画布顶边内缩 0.85rem,资源栏目画布页让开顶部钉住的整宽栏目标题栏(42px + 0.5rem),两档切换走 margin-top 过渡(减动效下关掉)。
- 生成浮层的顶边与可用高度改为按占位卡的真实屏幕位置算(卡下沿到安全底边),不再假设卡片贴在安全带上沿——占位落到下半屏时浮层底边不再越过画布下沿被切掉。
- 生成浮层新增水平收口:按「浮层左右各留 12px」把锚点收进画布可视范围,卡片靠边时浮层不再有一半落到画布之外;宽度口径与面板 CSS 同源(min(560px, 100% - 24px))。
- 新增画布卡片手势的共享判据 resourceCanvasGestureExceededDragThreshold(阈值仍取 RESOURCE_CANVAS_DRAG_THRESHOLD):资源卡与生成占位卡共用同一份「拖动还是点击」判断。
- 生成占位卡修掉拖动收尾误触点击:越过阈值才算拖动、登记一次性点击抑制(consumeDragClick)由宿主消费,「拖动中」样式也从越过阈值那一刻起才亮。
- 生成占位卡的删除按钮起手手势不再被当成「点卡片」:按起手点判定,松手落回卡片时不触发开合生成浮层。
- 图标规范面板的参考选择注释按现行判据改写(只有图集 icon-spritesheet 不接受用户参考),入口矩阵文档同步补「参考图(@ 引用)」口径并修掉「本地 IPC 没有参考图入参」的旧说法。
- 补齐回归用例:手势模型判据、占位卡拖动/点击与阈值、宿主级「拖完不弹浮层且普通点击仍开合」、浮层顶边与水平收口、锚点分档与跨文件标题栏高度守卫、逐条生成入口的 @ 与判据一致、图标规范面板的 @ 与提交带引用。
- 共享记忆 pitfalls.md 记录两条排障口径:卡类手势必须只有一份阈值与点击抑制判据;画布浮层几何只能按真实屏幕位置算、分页锚点必须让开钉死的标题栏。
2026-09-21 11:58:13 +08:00
kdletters
9bf35e8745
修复 macOS 构建上的渠道环境变量用例宿主依赖
...
Project CI / AI game creator shell Rust crates (push) Successful in 2m58s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m50s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 8m5s
Project CI / Backend tests (push) Successful in 7m2s
Project CI / Native shell tests (push) Successful in 8m12s
Project CI / Repository checks (push) Successful in 4m8s
Project CI / Frontend tests (push) Successful in 5m15s
Project CI / AI game creator shell web tests (push) Failing after 6m13s
- build-release.test.mjs 的「packaged renderer receives the same channel as the updater manifest」用 windows target 却未注入 stageRuntime,真实 staging 要求宿主 Node 平台/架构与目标一致,导致 macOS(arm64)/Linux 上必然失败
- 该用例只断言传给 spawn 的 VITE_AGC_PLATFORM_CHANNEL,改为注入空 stageRuntime,与同文件其它用例一致
2026-09-21 11:53:32 +08:00
kdletters
90207bc1d5
minimal 备份增加 freeze 副本路径
...
Project CI / AI game creator shell Rust smoke (push) Successful in 2m35s
Project CI / AI game creator shell Rust crates (push) Successful in 1m14s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m4s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 7m28s
Project CI / Backend tests (push) Successful in 7m25s
Project CI / Frontend tests (push) Successful in 7m18s
Project CI / Repository checks (push) Successful in 5m51s
Project CI / Native shell tests (push) Successful in 9m16s
Project CI / AI game creator shell web tests (push) Successful in 3m41s
- database-backup-to-oss.mjs 新增 --freeze-dir:minimal 模式先把选中子集 rsync 成冻结副本(保持原始相对路径)再从副本上传,避免热备时最新 commitlog 持续追加触发 stat 漂移失败
- files-minimal systemd 模板与发布前 minimal 备份默认传入 freeze 目录
- 生产运维门禁同步 freeze 口径断言
2026-09-21 11:37:14 +08:00
k88936
7b1f7bdf17
给 parseAgentRunTrace 与 formatAgentRunStatus 补上纯函数用例
...
- 新增 tests/agentRunTrace.test.ts,用旧 trace 夹具断言归一化结果(路径/工具数组/上限/任务图/通行计划)
- 覆盖 toolCalls 总数回填、taskGraph 缺失时回退种子任务图
- 覆盖畸形 trace 的拒绝路径(steps / schemaVersion / artifacts / taskGraph / dependencyWaves)
- 覆盖 formatAgentRunStatus 带与不带 lifecycleStatus 的两种文案
2026-09-21 11:36:02 +08:00
k88936
abb2988875
删除无调用方的 pick_local_file 与 delete_local_* 三条 Tauri 命令
...
- commands.rs 删除 pick_local_file、delete_local_project_file、delete_local_game_memory 三条命令实现
- main.rs 取消上述三条命令的注册
- Rust 用例只保留写命令推进 revision 的断言(删除两条已退役命令的断言并同步改名)
- check-config.mjs 移除这三条命令的白名单条目与旧说明
- check-config.mjs 把旧命令聊天剩下的 15 条无前端调用方命令登记为 native-only,并删掉随该死链失效的 guardrail 片段
2026-09-21 11:34:15 +08:00
kdletters
2f248ea0c3
新增 minimal 备份口径并切换 release 定时备份
...
Project CI / Frontend tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (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 / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
- database-backup-to-oss.mjs 新增 --minimal/--retain-snapshots:按上游 retention 语义只备份最近 N 份 snapshot、覆盖最老保留 snapshot 的 commitlog 边界段及其后全部段,外加身份/配置/控制库/模块字节,且不停止任何服务
- 备份检查脚本补充 minimal 计划用例(保留次新+最新 snapshot、丢弃更早 snapshot 与 clog 段、状态路径齐全、保留数校验)
- 发布前备份默认走 minimal 热备(GENARRATIVE_STDB_PUBLISH_BACKUP_MINIMAL=0 可回到冷备),不再需要 44.7GiB 冷备空间
- Server-Provision 新增 DATABASE_BACKUP_PROFILE=files-minimal 与 systemd drop-in,release 推荐使用并继续禁止 files-history
- 运维文档与共享记忆记录上游 retention 依据、实测 40G→3.6G 与不停服热备口径
2026-09-21 11:33:39 +08:00
k88936
912f9afcd2
删除按已退役 Supervisor 聊天入口编写的 appSurface 用例
...
- 删除 project-commands / agent-runtime 两个 100% 依赖已退役聊天入口的用例文件及其注册
- 删除 project-assets 里 21 条「from chat」用例(整个套件同为该入口),并移除注册
- 删除 project-conversation 里 7 条、project-development 里 2 条依赖 home 聊天框与斜杠命令的用例
- appSurface 失败数由 114 降到 10,剩余 10 条为 DirectProject/预览/首页链路自身的既有失败
2026-09-21 11:19:12 +08:00
k88936
0224ef7b9d
删除 Project Supervisor 聊天遗留的 pendingCommand 死链
...
- 删除 App.tsx 里 pendingCommand 状态、确认/取消处理与 21 个 execute* 分发分支
- 删除随该链路一起不可达的 21 个 execute* 实现与 requireChatProjectForUserAction
- 删除只服务该链路的 PendingCommand 类型、pendingCommandPresentation.ts 与 resolvePendingCommandProjectPath
- PlanningChatView 去掉 pendingCommand 面板相关 props、渲染分支与导入
- rememberCommand.test.ts 只保留现役 helper(path/remember/needsInitializedChatProject/agent 卡片)的用例
2026-09-21 11:15:02 +08:00
kdletters
117d482f93
发布前备份空间预检前置并支持自动降级
...
Project CI / AI game creator shell Rust smoke (push) Successful in 2m13s
Project CI / AI game creator shell Rust crates (push) Successful in 1m7s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 7m9s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 6m57s
Project CI / Native shell tests (push) Successful in 7m58s
Project CI / Repository checks (push) Successful in 5m13s
Project CI / Frontend tests (push) Successful in 7m19s
Project CI / Backend tests (push) Successful in 10m10s
Project CI / AI game creator shell web tests (push) Successful in 4m47s
- database-backup-to-oss.mjs 新增 --check-space-only:archive 按 data×1.1、files 按 max(data×0.05, 2GiB) 计算门槛,空间不足以退出码 3 返回
- production-stdb-publish.sh 在进入维护与停服务之前先做空间预检,archive 不足时自动降级 files(files 不支持 defer,async 收敛为 sync),可用环境变量关闭
- 尚未开始 publish 的失败自动恢复本次停掉的 API/controller/worker 并退出维护,只有真正开始发布之后的失败才保持维护态
- 备份检查脚本与生产运维门禁补上新口径与执行顺序断言,运维文档与共享记忆记录事故与规则
2026-09-21 10:57:29 +08:00
kdletters
5ac7f65c92
合并 master 并保留游戏分发功能
...
- 合并 origin/master(含 429f991bd 定向回滚、Godot 原生绑定迁移与策划 Agent 模型控件)。
- 回滚提交删除的游戏分发代码按功能面补回:SpacetimeDB 模块注册与迁移表、api-server 路由与权限映射、后台审核页、AGC 发布命令与 payload 类型、SelectionStage 的 games 阶段、ProjectSupervisorView 的 overlay 挂载点、主站路由与标题、Cargo 依赖与锁、vite/vitest 代理与 tailwind source。
- 保留 master 的 Godot C++ 迁移(移除旧 vendored GDExtension、新的 composer 控件布局)与其它 master 侧改动。
- 修正 master 自带的红灯断言:/api/creation-entry 已被 api-server 列入退役路由,dev 中间件按退役路径 404,测试改为断言不进入代理。
- 验证:cargo check(api-server / spacetime-module / spacetime-client / AGC 壳)、cargo test(api-server 游戏分发 17、module-game-distribution 11、AGC 本地导出 7)、全量 vitest 4557 passed、两端 typecheck、eslint、rustfmt、编码、文档索引与 SpacetimeDB schema guard。
2026-09-21 00:20:45 +08:00
kdletters
2f0e2a48a3
把游戏分发客户端纳入 ESLint 边界
...
- `.eslintrc.cjs`:`src/services/gameDistributionClient.ts` 及其测试加入活跃服务白名单,不再被遗留忽略列表吞掉。
- 客户端:按仓库规则修掉排序与未使用类型导入(顺带移除两个只在 re-export 中出现的多余导入)。
- 修复 `scripts/vite-retired-css-plugin.test.ts` 的边界门禁:活跃模块不得停留在 ESLint 忽略名单里。
2026-09-20 22:56:43 +08:00
kdletters
00b96f244d
补齐 AGC 素材直传的错误文案与能力作用域验证
...
- AGC:直传对象存储抛错(能力作用域拒绝、网络不可达、请求被取消)时统一转成中文可操作文案,不再把英文插件错误原样暴露给作者。
- 测试:新增直传抛错的单测,确认失败时不再登记素材。
- 文档:记录用 tauri-plugin-http 同一套 urlpattern 逻辑验证 `https://*.aliyuncs.com/ *` 命中 dev/生产 OSS 桶且拒绝无关主机,并说明桌面端真实执行仍需在装有 AGC 的机器上补跑。
2026-09-20 22:49:56 +08:00
kdletters
0dde6ee501
打磨封面与截图的文件选择交互
...
- 网页发布页:封面与截图改用透明 input 覆盖自定义胶囊按钮,点击命中原生控件;上传后不再出现「未选择任何文件」与「已选择」互相矛盾的状态。
- AGC 发布面板:同一处理,按钮文案随状态在「选择封面图片 / 更换封面图片」「添加截图 / 截图已满 6 张」之间切换。
- 文档:实施计划补充真实浏览器发布链路证据(网页上传封面 → my-games 待审 → 版本 frozenMetadata 指向本次上传素材)与交互打磨记录。
2026-09-20 22:45:50 +08:00
kdletters
4a91e5865a
创建游戏同步校验封面与截图素材归属
...
- 服务端:抽出 `resolve_owned_game_media`,创建游戏与创建版本复用同一素材校验;不存在的素材返回 400,借用他人素材返回 403,避免游戏行先落一个无效素材 ID。
- 脚本:新增 `npm run check:game-distribution-media-e2e`(`scripts/check-game-distribution-media-e2e.mjs`),在本地 dev 栈上跑真实素材直传、冻结、审核生效、匿名换签读与发行网关的可重复检查。
- 文档:后端数据契约补充创建游戏的素材复核口径,实施计划记录真实本地栈 27 项媒体验证与真实浏览器封面/截图展示证据。
2026-09-20 22:34:33 +08:00
kdletters
4a2b270714
补齐游戏分发封面与截图的冻结、上传与展示
...
- 服务端:游戏表追加可空 cover_object_key / screenshots_json,版本表追加可空 metadata_json,创建版本时校验必需封面、最多 6 张截图与图片素材归属,并从素材记录派生对象键生成冻结资料。
- 服务端:审核通过时把冻结资料整体生效到游戏行;只有已公开且存在有效活动版本的游戏,其封面/截图素材才在 /api/assets/read-url 获得匿名读授权。
- 服务端:作者与管理员回读版本时追加 frozenMetadata,带回封面与截图素材 ID 供续发复用,公开投影仍只暴露对象键。
- 网页:/games/publish 新增「封面与截图」区,复用平台图片直传与 confirm 通道,缺封面或截图超量在发请求前拦截,更新版本时按冻结资料回填且不要求重新上传。
- 网页:游戏广场卡片与详情页 hero 换签展示真实封面,详情页新增可点击的截图缩略图条,无素材或换签失败时静默回退原有渐变占位。
- AGC:发布面板支持封面必选与截图最多 6 张,新增素材直传服务并在创建游戏前拦截缺封面,同一文件重复提交复用素材 ID。
- AGC:http 能力作用域新增阿里云 OSS 直传地址,客户端同时校验直传目标必须是平台素材存储。
- 契约与文档:同步 shared-contracts、packages/shared 契约,更新 SpacetimeDB 迁移注释、后端架构、玩法链路与实施计划文档,并补齐网页端与 AGC 定向测试。
2026-09-20 22:19:50 +08:00
kdletters
789aef4ce5
补齐游戏分发结构化可观测事件
...
- api-server 游戏分发模块新增 package_confirmed/package_rejected/version_submitted/version_cancelled 事件,带 request_id、game_id、version_id、耗时与体积/文件数(不记录凭据、URL 与文件内容)
- 新增 review_backlog_listed(审核积压)、review_decided(审核结论与公开修订号)、game_unpublished/game_suspended(撤销传播)与 publish_switch_blocked/unavailable(开关拦截)事件
- 发行网关拒绝路径补 debug 级 release_rejected(cookie、扩展名、未公开、非公开版本)便于排查发行 4xx
- 运维文档给出可直接 grep 的事件名与关键字段,实施计划记录真实栈复跑证据
2026-09-20 21:30:32 +08:00
kdletters
7ff6e46774
修复分支上的格式与导入排序门禁问题
...
- 用 rustfmt 修正 AGC Tauri 导出包测试的断言排版
- 按 simple-import-sort 修正 AGC App.tsx 导入顺序与 packages/shared 导出顺序
2026-09-20 21:17:27 +08:00
kdletters
2254831db5
补充游戏内真实触屏输入的运行时证据
...
- 用 CDP Input.dispatchTouchEvent 向游玩页 iframe 派发真实 touchStart/touchEnd,沙箱内探测包收到 touchstart/touchend/pointerdown(pointerType=touch)/click 并命中目标元素
- 记录触摸模拟必须在 iframe 文档创建前启用的踩坑口径
2026-09-20 21:11:37 +08:00
kdletters
64425e8d1a
Merge commit 'a2acfa9a6' into codex/game-distribution
2026-09-20 20:59:58 +08:00
kdletters
328ac31844
恢复游戏分发完整实现(特性分支)
...
- 主站:游戏广场、详情、在线游玩、网页发布与作者中心,以及共享契约与客户端服务
- 后端:module-game-distribution 领域层、SpacetimeDB 表/迁移/绑定、spacetime-client facade、api-server 路由与发行网关
- 后台:游戏审核页(待审列表、通过/拒绝、安全下架)
- AGC:发布面板、本地导出包读取命令与发布服务,含默认跳过的真实链路测试
- 运维:发行来源 nginx 模板与门禁、game-distribution:publish 灰度发布开关、OSS PutObject 受控重试
- 文档:主规范、里程碑与实施计划、决策日志与踩坑记录
2026-09-20 20:49:42 +08:00
k88936
1c830e6fe6
修正钱包入口回归用例的断言目标
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 17s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 17s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 18s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 18s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 16s
Project CI / Native shell tests (pull_request) Failing after 18s
Project CI / Backend tests (pull_request) Failing after 18s
Project CI / AI game creator shell Rust smoke (pull_request) Failing after 19s
Project CI / Frontend tests (pull_request) Failing after 7s
Project CI / AI game creator shell web tests (pull_request) Failing after 12s
Project CI / Repository checks (pull_request) Failing after 12s
- apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts 的「keeps the wallet entry available when the workbench opens the UI editor」改为断言 game-workbench-layout-account 的两处落点(策划工作台与主工作台)以及主工作台的 !uiEditorRoute 门控
- 用例原先断言 game-workbench-chat-wallet 出现一次,但该槽位在当前源码里已不存在(钱包移到布局层),断言恒为 null 导致用例一直失败;注释同步改成当前落点
2026-09-19 23:37:25 +08:00
k88936
860f3f09d4
UI 编辑器打开时不再重复渲染工作台布局层的钱包入口
...
- apps/ai-game-creator-shell/src/view/project-development/index.tsx 主工作台布局里的 walletEntry 槽改为 !uiEditorRoute && walletEntry
- UI 编辑器路由下 UiEditorPage 自己会用同一份 walletEntry 渲染头部钱包,布局层再渲染一次会让同一个入口挂载两份、浮层与编辑器工具条钱包重叠
2026-09-19 23:36:57 +08:00
k88936
dc1cac1c15
给 Skill 引用补上每条消息的数量上限
...
- apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/validation.rs 新增 MAX_DIRECT_CODEX_SKILL_REFERENCES=32 与 skill_count 计数,超出即拒绝
- 附件与素材引用已有上限,Skill 引用是唯一没有上限的非文本 part:每条都会触发一次 root/<name>/SKILL.md 文件探测并往 turn/start.input 里加一项,畸形超长 userItem 可以放大文件探测与模型输入
- 补上 inline_skill_reference_count_is_bounded_independently;cargo test direct_codex_user_item::validation:7 passed
2026-09-19 23:35:41 +08:00
k88936
c5a7386465
统一附件摘要的清洗口径
...
- apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/wire.rs 抽出 attachment_reference_summary,turn 输入与 history/prompt 投影共用同一份摘要
- 原先 direct_codex_user_item_to_codex_turn_input 自己拼摘要,跳过了 sanitize_attachment_name/media_type/local_path,模型侧可能收到 C:\tmp\notes.md 这类原始路径名,而历史投影里是清洗过的
- cargo test user_item:24 passed;cargo check 通过
2026-09-19 23:32:55 +08:00
k88936
926fe9ae0f
复用 validate 返回的清单,去掉 wire 输入投影里重复的一次清单读取
...
- apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/wire.rs 的 direct_codex_user_item_to_wire_input 直接用 validate_direct_codex_user_item 返回的 manifest
- 原先 validate 之后再 read_manifest_for_project 一次,每次投影都会多读一次项目清单(并重复 seed task 变更),与 direct_codex_user_item_to_codex_turn_input 的口径也不一致
- cargo test user_item:24 passed;cargo check 通过(本机 stale target 需先 touch shared-contracts/src/lib.rs)
2026-09-19 23:30:22 +08:00
k88936
e7967cf67b
删除 runtime-settings 用例里空的发布态设置注册函数
...
- 删除 apps/ai-game-creator-shell/tests/appSurface/runtime-settings.suite.ts 里空的 registerPublishedRuntimeSettingsTests
- apps/ai-game-creator-shell/tests/appSurface.test.ts 去掉对应 import 与调用
- 它注册 0 条用例,留着会让人以为发布态运行时设置仍有覆盖
2026-09-19 23:20:25 +08:00
k88936
5aeaf38112
删除 project-development 用例里空的用户面边界注册函数
...
- 删除 apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts 里空的 registerUserSurfaceBoundaryTests
- apps/ai-game-creator-shell/tests/appSurface.test.ts 去掉对应 import 与调用
- 它注册 0 条用例,留着只会让人以为用户面边界仍有覆盖
2026-09-19 23:19:58 +08:00
k88936
6f5ca47385
删除空的 run-trace 用例文件与其注册
...
- 删除 apps/ai-game-creator-shell/tests/appSurface/project-preview/run-trace.suite.ts(只剩一个空的 registerProjectRunTraceTests)
- apps/ai-game-creator-shell/tests/appSurface/project-preview.suite.ts 去掉对应 import 与调用
- 说明:该文件被清空后 parseAgentRunTrace 与 formatAgentRunStatus 已没有用例覆盖,重新补测属于后续单独任务,本提交只清理空壳
2026-09-19 23:19:34 +08:00
k88936
3e3c3df41f
删除空的 run-status 用例文件与其注册
...
- 删除 apps/ai-game-creator-shell/tests/appSurface/project-preview/run-status.suite.ts(只剩一个空的 registerProjectRunStatusTests)
- apps/ai-game-creator-shell/tests/appSurface/project-preview.suite.ts 去掉对应 import 与调用
- 空注册函数挂在测试入口上会让人以为运行状态还有用例覆盖,实际一条都没有
2026-09-19 23:19:29 +08:00
k88936
051c21d97f
删掉立项策划用例里传给 App 的无效 agentDockVisible prop
...
- apps/ai-game-creator-shell/tests/appSurface/plan-gdd.suite.ts 三处 React.createElement(App, {...}) 不再传 agentDockVisible
- 同 design-agent.suite:该 prop 属于 ProjectDevelopmentView,AppProps 未声明,传入不影响任何渲染,只会误导读者以为 Agent dock 被隐藏
2026-09-19 23:18:49 +08:00
k88936
21382926dc
删掉设计 Agent 用例里传给 App 的无效 agentDockVisible prop
...
- apps/ai-game-creator-shell/tests/appSurface/design-agent.suite.ts 四处 React.createElement(App, {...}) 不再传 agentDockVisible
- agentDockVisible 是 ProjectDevelopmentView(工作台)的 prop,AppProps 里没有它,传了也不会生效;它替换掉的旧 orchestrationMode/projectSupervisorOnly 曾经是真实的 App prop,留着会让人误以为这里会隐藏 Agent dock
2026-09-19 23:18:39 +08:00
k88936
62f1ec83bf
让工作台壳写入的运行态提示不被通用错误兜底覆盖
...
- apps/ai-game-creator-shell/src/features/agent-runtime/model.ts 的 projectRuntimeVisibleError 公共文案白名单补上「待回答问题已变更,请刷新策划状态」「需要在 Tauri App 内运行。」「请先初始化本地项目」
- 这三条是 App.tsx setProjectChatError 直接写入的给用户看的动作指引,此前不在白名单,经策划运行态窄条渲染时会被替换成通用的「策划 Agent 执行失败,请稍后重试」
2026-09-19 23:17:30 +08:00
k88936
263588af6a
把运行中回合的秒级计时下移到耗时文案组件
...
- apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectConversation/DirectProjectConversation.tsx 新增 DirectTurnElapsed,自己持有 1 秒 tick 与已耗时渲染
- apps/ai-game-creator-shell/src/view/project-development/chat/DirectProjectChatView.tsx 删除 turnUsageNow state 与其 interval,不再把每秒 tick 传给会话区
- 原先每秒 tick 触发的是整个聊天视图重渲染(含 Markdown 回合列表、工具调用组与队列芯片),现在只重渲染耗时那一小块
2026-09-19 23:16:42 +08:00
k88936
50291a5e77
订阅过期恢复后补跑被搁置的 consume
...
- apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectThreadChatSubscription.ts 在 consume 的 finally 之后补一次 consumeAgain 重排
- SUBSCRIPTION_EXPIRED 恢复期间到达的通知会因 consuming 仍为 true 只置位 consumeAgain,而 do/while 已因异常退出,原先这批事件要等下一次通知才会被消费
2026-09-19 23:15:48 +08:00
k88936
8aa737e032
「显示更早」读取失败时补上项目路径守卫
...
- apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts 的历史分页 catch 在写 statusNotice 前先比对 projectPathRef.current
- 与成功路径和首个屏幕加载一致;原先切换项目后旧项目在飞读取的失败会显示成新项目的错误
2026-09-19 23:15:15 +08:00
k88936
9243bb42a1
去掉 Direct 回合成功后多余的第二次清单刷新
...
- apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts 的 runTurn 不再在成功路径刷新清单,统一由 startTurn 的 finally 刷新
- 原先一轮成功会先后调用两次 get_local_game_manifest,finally 那次已覆盖成功与报错路径
2026-09-19 23:14:51 +08:00
k88936
67252d36b2
修掉写权限门拒绝后 Direct 发送队列永久卡住的问题
...
- apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts 在 ensureConversationWriteAllowed 返回 false 且未重跑时,主动放下忙态并继续 dispatchNextQueuedTurn
- 该轮已由 dispatchNextQueuedTurn 出队,原先 finally 只在 invoked 为真时继续出队,导致后续排队消息再也不发送且提示/队列芯片一直显示
2026-09-19 23:14:18 +08:00
k88936
97fc1918c4
给 Direct 回合的前置步骤补上错误出口
...
- apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts 在 startTurn 的异步 IIFE 里加 catch,按项目路径守卫后把错误交给 onRuntimeError
- 原先只有 try/finally:写权限门 rejection 会成为未处理拒绝,回合静默失败且已乐观追加的用户消息没有解释
2026-09-19 23:13:53 +08:00
k88936
034c369b88
排队发送后不再立刻抹掉「已加入发送队列」提示
...
- apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts 拆出 clearDraftInput(只清输入与附件),排队成功分支改用它
- 原先同一事件里先 enqueueTurn 写提示、紧接着 clearPendingInput 把 composerNotice 置空,React 批处理下用户永远看不到队列确认文案
2026-09-19 23:13:13 +08:00
k88936
884aabe6d7
Direct 聊天权限门改为必填,去掉默认放行
...
- apps/ai-game-creator-shell/src/view/project-development/chat/DirectProjectChatView.tsx 删除 ALLOW_CONVERSATION_ACCESS 及两个权限门 prop 的默认值,改为必填
- 原先缺省实现恒返回 true,调用方漏传等于静默跳过工作台壳的读写权限判定;唯一调用方 App.tsx 本来就会传入两个门
2026-09-19 23:12:28 +08:00
k88936
f58249a75e
给 clientTurnId 的回退生成补上随机熵
...
- apps/ai-game-creator-shell/src/view/project-development/chat/conversation/directCodexConversation.ts 在无 crypto.randomUUID 的回退分支追加 Math.random 派生的随机串
- 原先只有时间戳 + 页内序号,多个 WebView 在同一毫秒创建首轮会得到同一个 clientTurnId,而 Rust 侧用它做项目级唯一校验与历史关联键
- 结果仍是 ASCII 字母数字与连字符组成、长度在 6..160 之间,满足 native 校验
2026-09-19 23:12:02 +08:00
k88936
38fb9aa7ac
删除 Direct 输入区发送按钮里不可达的忙态分支
...
- apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectComposer/DirectProjectComposer.tsx 发送按钮只在非 busy 分支渲染,去掉 '思考中' 文案、Loader2 转圈与 disabled 里的 busy 条件,并移除不再使用的 Loader2 import
- busy 时仍由既有 ComposerStopButton 承担停止入口,渲染结果不变
2026-09-19 23:11:14 +08:00
k88936
b5e10f3851
合并 Direct 输入区来自同一模块的两条 type import
...
- apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectComposer/DirectProjectComposer.tsx 把 gameCreationApp 的 GameCreationAppAssetManifestEntry 与 GameIterationVersion 合并成一条 import type
- 不涉及任何运行时行为
2026-09-19 23:10:51 +08:00
k88936
c4e2793db1
把回合执行过程渲染的两层三目抽成 renderTurnProcess
...
- apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectConversation/DirectProjectTurn.tsx 新增 renderTurnProcess,负责空过程、运行中平铺与结束后折叠三种分支
- 组件主体不再嵌套三目,渲染结果与 data-testid="turn-process" 等 DOM 结构保持不变
2026-09-19 23:10:35 +08:00
k88936
79cb510891
把排队消息标题的嵌套三元改成提前返回
...
- apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectComposer/chatComposerQueue.ts 的 queuedChatTurnLabel 先处理空文本再判断截断
- 返回值不变
2026-09-19 23:10:01 +08:00
k88936
3160131889
给澄清问答卡提交路径补上 rejection 兜底
...
- apps/ai-game-creator-shell/src/view/project-development/planning/PlanningUserInputCard.tsx 在 Promise.resolve(onSubmit(...)).finally(...) 之间加 .catch(() => undefined)
- onSubmit 的契约允许返回 rejected promise,原先只挂 finally 会把 rejection 变成未处理拒绝;与 GddApprovalCard 的处理口径一致
2026-09-19 23:09:38 +08:00
k88936
c46687f0ef
把澄清问答卡提交按钮文案的嵌套三元改成顺序分支
...
- apps/ai-game-creator-shell/src/view/project-development/planning/PlanningUserInputCard.tsx 把 answerPrepared / controlBusy||submitting 的嵌套三元改成先取默认值再覆盖的 submitLabel
- 文案取值不变
2026-09-19 23:09:20 +08:00
k88936
137533484b
抽出策划视图共用的 Design 模式判据与回调兜底
...
- apps/ai-game-creator-shell/src/view/project-development/planning/PlanningChatView.tsx 新增 designMode、designActionsBusy 与三个 Design 回调兜底常量
- DesignAgentPhaseStatus(顶部)与 DesignAgentPendingActions(底部)原先各自重复 designView||onDesignApprove、controlBusy||planGddDecisionBusy 和 ?? (()=>undefined),现在共用同一份取值
2026-09-19 23:09:00 +08:00
k88936
00063ba882
抽出策划输入区与提交按钮共用的禁用判据
...
- apps/ai-game-creator-shell/src/view/project-development/planning/PlanningChatView.tsx 新增 composerDisabled,替换 ResourceReferenceInput 与提交按钮上逐字重复的四条件表达式
- 判据取值不变,后续改条件时不会只改到其中一处
2026-09-19 23:08:02 +08:00
k88936
cb3d452a44
把策划输入框提交按钮文案的嵌套三元改成顺序分支
...
- apps/ai-game-creator-shell/src/view/project-development/planning/PlanningChatView.tsx 的 submitLabel 改为先给默认值再按 needsUserInput / controlBusy 覆盖
- 取值结果不变,只是去掉三层嵌套三元表达式
2026-09-19 23:07:42 +08:00
k88936
257e407df7
策划会话 GDD 展示的 agentId 改用 PLANNING_SESSION_AGENT_ID 常量
...
- apps/ai-game-creator-shell/src/view/project-development/planning/planningSessionV2.ts 的 gddDisplayFromArtifact 不再写死 'planning-agent-v2' 字面量
- 与同结构里的 rootAgentId 共用 planningSessionContract.ts 的常量,避免 id 变更时要改两处
2026-09-19 23:07:25 +08:00
k88936
0d3ab25499
删除输入区里只会在挂载时跑一次的草稿清空 effect
...
- apps/ai-game-creator-shell/src/features/project-workspace/ResourceReferenceInput.tsx 删除依赖只有 resetPromptPolish(稳定 useCallback)的 effect
- 该 effect 读 liveDraftRef.current 却把它排除在依赖外,实际只在挂载时执行一次;清空草稿时重置润色状态的逻辑已由 OnChangePlugin 内联承担
2026-09-19 23:07:02 +08:00
k88936
2a8063a83a
让技能清单查询失败后可以重试
...
- apps/ai-game-creator-shell/src/features/project-workspace/ResourceReferenceInput.tsx 在 list_agc_skill_catalog / list_client_extensions 的 catch 里放开 skillCatalogRequestedRef
- 原先标记在调用前就置位且失败时不回退,一次瞬时失败会让该输入区此后不再拉取技能候选
2026-09-19 23:06:05 +08:00
k88936
37c7477068
修正草稿文本把附件引用误回读成 $名称的问题
...
- apps/ai-game-creator-shell/src/features/project-workspace/ResourceReferenceInput.tsx 的 readDraftFromNodes 改为按 part.type 显式分支:附件引用回读为 @名称,技能引用回读为 $名称,未知类型返回空串
- 该 text 会被受控同步比较(对照 directCodexContentToPromptText 展开的 value),附件口径不一致会让受控输入区每次都判定草稿变化而重建编辑器
- 顺带去掉该处嵌套三元,与 resourceReferences.ts 的渲染口径对齐
2026-09-19 23:05:34 +08:00
k88936
e259106267
拆出引用草稿键与 token 的取值 helper 消除嵌套三元
...
- apps/ai-game-creator-shell/src/features/project-workspace/ResourceReferenceInput.tsx 新增 referenceDraftKey/referenceDraftToken,替换 readDraftFromNodes 里构造 labels 时的嵌套三元表达式
- 行为与原先一致,只是把「resource 取 id、skill 取 name、其余取 label」的规则收敛到一处
2026-09-19 23:04:47 +08:00
k88936
7a89a119d9
校正 check-config 免调用白名单中三条命令的说明
...
- apps/ai-game-creator-shell/scripts/check-config.mjs 为 delete_local_game_memory、delete_local_project_file、pick_local_file 补写准确的剩余调用方说明(前两条只剩 Rust 测试直接调用命令函数,pick_local_file 前端与 Rust 均无调用方)
- 修正原先「命令由 native Runtime、CLI swarm 与 Rust 测试使用」这一对三条命令不成立的笼统说明
2026-09-19 23:03:51 +08:00
k88936
57b28ce5cd
删除 ts-rs 生成器漂移产生的 DirectCodexUserMessageEnvelope 死文件
...
- 删除 apps/ai-game-creator-shell/src/view/project-development/chat/generated/DirectCodexUserMessageEnvelope.ts
- 该文件是 ts-rs 导出按本机依赖版本漂移时多出来的产物,前端无任何引用,按 project-memory/pitfalls.md 的口径不提交
2026-09-19 23:03:27 +08:00
k88936
876529e668
删除 Project Supervisor 前端链路并将项目对话收敛到 DirectProject 与立项策划
...
- 删除 ProjectSupervisorView、SupervisorChatOnlyView、ProjectWorkspaceChatPane、AgentConversationOverlay、DeveloperProjectPanels、DeveloperRuntimePanels 与 features/agent-runtime/panels.tsx
- 删除 Supervisor 独立调试窗口:windows.rs 的 supervisor_chat_window_url / open_project_supervisor_chat_window、main.rs 的 invoke 注册、?supervisor-chat 与 ?agent-chat 前端入口、developer.json capability 和对应 Rust 用例
- 删除工作台壳的开发者 Agent 面板:DeveloperAgentPanel、useDeveloperAgentPanel、useDeveloperAgentState、developerAgentControls
- App.tsx 删除只服务退役面板的 state/ref/effect/handler(agentConversation*、文件/记忆/资产/画板/预览面板处理、commandLog、llmConfigStatus、editorBaseUrl、回放历史与 trace 面板状态、selectedAgent 等)以及由此产生的空分支,并把 requestRuntimeConfigOpen 接回本地 RuntimeConfigDialog
- 立项策划独立成模块:Design Agent 与 Planning V2 的容器和表现移到 view/project-development/planning/(PlanningChatView、PlanningUserInputCard、GddApprovalCard、DesignAgentSurface、PlanningLaneRuntimeStrip、planningLane、planningSessionV2、planningSessionContract)
- 改名到中性概念:ProjectSupervisorComponentProps→ProjectChatComponentProps、WorkspaceLauncherShellProps.ProjectSupervisor→ProjectChat、ProjectDevelopmentView.supervisor→chat、orchestrationMode→agentDockVisible、initialSupervisorMessageClaims→initialTurnClaims、ProjectManifestSnapshotSource 'supervisor'→'chat'、CSS project-supervisor-*/project-planning-*→project-chat-*
- 删除 PROJECT_SUPERVISOR_AGENT_ID 与 PROJECT_SUPERVISOR_PLAN_SOURCE 常量
- 工作台壳自己订阅 game-creator-manifest-invalidated,用 revision→清单→revision 配对读(source: asset-event)并入 currentProjectContext,且不重新检查项目目录;测试夹具改为按监听器集合广播该事件
- 删除只钉住退役界面的 appSurface 用例(旧调试窗口、开发者面板、Agent 对话浮层、运行历史面板)
- 同步文档:ADR、DirectProject 聊天模块抽离实施计划与里程碑、Provider 推理里程碑、策划会话 RuntimeV2、AI 游戏创作实施计划,并在 decision-log 新增 2026-09-19 条
- 删除随退役面板失去调用方的模块与导出:projectSummaryCommands.ts(1054 行旧 Supervisor 斜杠命令处理器)、AGENT_RUN_HISTORY_* 常量、agent-runtime/model.ts 与 project-summary/agentPresentation.ts 里的死导出,以及 agentRunTrace / memoryCommands / projectCommandPolicy 中无调用方的校验与解析函数
- 更新 scripts/check-config.mjs 与 scripts/check-native-shells.mjs 的窗口与命令守卫
2026-09-19 21:59:44 +08:00
k88936
99be1d76fe
抽离 DirectProject 独立聊天容器并删除工作台壳 Direct 状态
...
- 新增 view/project-development/chat 模块:DirectProjectChatView 自己持有项目清单订阅、首屏锚点、历史分页、发送队列、附件、终止、草稿与本地消息
- DirectProjectChatView 入参收窄为项目路径、入口首轮需求(canonical content[])和两条权限门,Direct 状态不再穿过 App.tsx
- 线程订阅与聊天 reducer 提成 useDirectThreadChatSubscription:subscribe/consume/notify 单飞循环、订阅欠账、SUBSCRIPTION_EXPIRED 重订与 DirectThreadChatState
- chat/components 按「一个组件一个目录、逻辑与表现同目录」重组(ChatHeader、Composer、Conversation、SettingsDialog、ToolCallGroup)
- DirectProjectChatView 拆成聊天头、会话区、回合、输入盒四个组件
- App.tsx 删除 Direct 专属 state/ref/effect/handler 与 directCodex 分支,首轮需求按 canonical content 交给聊天
- 工作台级动作(运行本地预览等)经 DirectProjectChatHandle.announce 交给聊天自己的本地消息流
- Direct 首轮认领记录提成 app/initialSupervisorMessageClaims,供各入口共用
- Rust 侧 Direct 契约 ts-rs 导出目录改到 chat/generated
- 补齐 direct_codex_user_item/wire.rs 既有的 rustfmt 空格漂移
- 同步 ADR、实施计划、decision-log、pitfalls 与 Direct 技术文档
2026-09-19 15:08:31 +08:00
k88936
47c07f9d12
迁移节点变换交互测试接口
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m8s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m25s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m24s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m13s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m34s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m39s
Project CI / Frontend tests (pull_request) Successful in 5m56s
Project CI / AI game creator shell web tests (pull_request) Successful in 8m34s
Project CI / Repository checks (pull_request) Successful in 15m18s
Project CI / Native shell tests (pull_request) Successful in 22m28s
Project CI / Backend tests (pull_request) Successful in 27m38s
将旧单树测试夹具改为 trees 与 logicalSizes 参数
为拖拽和缩放入口补充所属 treeId 并更新树移除语义
2026-09-18 22:33:21 +08:00
k88936
0904184412
校正预览上下文菜单测试
...
覆盖上下文菜单回调的可选树标识参数
区分编辑器树目标与最终预览的无树标识回调
2026-09-18 22:18:58 +08:00
k88936
aaa2eb482a
更新最终预览框线测试语义
...
无框线场景不再传入选中节点以匹配选中态高亮规则
保留显式 showFrame 时的选中框与控制点断言
2026-09-18 22:08:53 +08:00
k88936
38ad2ce256
抽离项目开发 DirectProject 聊天模块
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 5m42s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m31s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 6m9s
Project CI / Backend tests (pull_request) Failing after 30s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m16s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m54s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m32s
Project CI / Frontend tests (pull_request) Failing after 16m6s
Project CI / Native shell tests (pull_request) Successful in 24m45s
Project CI / AI game creator shell web tests (pull_request) Failing after 24m28s
将 DirectProject 表现与 controller 移到 view/project-development/chat
删除运行时 Direct feature flag 与 ProjectSupervisorView 的 Direct 行为分支
迁移 ts-rs 生成契约并删除无意义 generated/index.ts
将钱包入口提升到工作台布局并保留现有 Direct 测试覆盖
2026-09-18 22:06:15 +08:00
k88936
1679e72deb
修正删除快捷键页面测试
...
从仍挂载的窗口目标触发全局删除快捷键
按全部同名节点消失断言删除结果
2026-09-18 22:05:16 +08:00
k88936
4844543061
补齐检查提示动画测试名称
...
让动画 mock 匹配仅重启提示动画的现役筛选逻辑
保留非提示动画不被重启的生产行为
2026-09-18 22:00:58 +08:00
k88936
99132c9fa7
补齐 UI 状态持久化测试偏移字段
...
让当前 schema 夹具继续验证原有业务约束
2026-09-18 21:41:55 +08:00
k88936
944d2aa3db
更新 UI 编辑器返回交互测试
...
按现役浮动关闭按钮的可访问名称查询
2026-09-18 21:14:57 +08:00
k88936
65f8e44a88
拆分 DirectProject 聊天架构文档
...
记录 DirectProject 独立聊天容器与工作台钱包布局决策
更新实施里程碑、计划和项目上下文,明确 DirectProject 固定属于项目开发工作台
记录代码与生成契约迁移的验收边界
2026-09-18 21:04:23 +08:00
k88936
7c16a35fda
兼容缺少偏移量的预览运行数据
...
校验 offset 前安全处理旧状态和测试夹具
2026-09-18 20:14:24 +08:00
k88936
e4369cd82e
Merge remote-tracking branch 'origin/master' into feat/ui-editor-v3
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 5m0s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m54s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 7m15s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 6m32s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 6m56s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m21s
Project CI / Frontend tests (pull_request) Failing after 4m23s
Project CI / Repository checks (pull_request) Failing after 5m22s
Project CI / Native shell tests (pull_request) Successful in 9m10s
Project CI / Backend tests (pull_request) Successful in 9m41s
Project CI / AI game creator shell web tests (pull_request) Failing after 5m32s
# Conflicts:
# apps/ai-game-creator-shell/tests/uiEditorPage.test.ts
# docs/project-memory/shared-memory/decision-log.md
2026-09-18 18:44:11 +08:00
k88936
54b9bd4354
同步节点偏移量 TypeScript 绑定
...
更新 ts-rs 生成的 NodeOffset 类型文件
2026-09-18 17:30:53 +08:00
k88936
365e530b5f
修正测试偏移类型导入
...
从公开 offset 模块导入 NodeOffset
2026-09-18 17:23:06 +08:00
k88936
d46cdfb282
抽取保存结果弹窗操作底栏
...
统一关闭与重试按钮的布局和样式
2026-09-18 17:17:45 +08:00
k88936
2142027f85
简化保存结果弹窗内容分支
...
用显式早返回替换嵌套三元渲染
2026-09-18 17:15:50 +08:00
k88936
8fdf39f37e
清理预览初始适配无效依赖
...
移除仅通过 ref 读取的画布尺寸依赖
2026-09-18 17:14:16 +08:00
k88936
70c65c37d5
保证拖拽释放提交最新偏移
...
从指针释放坐标直接计算树位置
2026-09-18 17:12:30 +08:00
k88936
e72637789c
校验预览树偏移坐标
...
仅将有限偏移量纳入画布布局
2026-09-18 17:11:23 +08:00
k88936
0a102ea1c3
合并预览节点类型导入
...
复用单一 Node 类型导入声明
2026-09-18 17:10:04 +08:00
k88936
1ab7fa9991
校验预览画布像素比例
...
避免无效 pixels_per_unit 产生无限尺寸
2026-09-18 17:09:17 +08:00
k88936
6d02a0c29f
移除无读取的代码生成错误状态
...
删除失效的 generateError 状态及写入路径
2026-09-18 17:04:10 +08:00
k88936
a6c3db60fb
收窄编辑器操作生命周期接口
...
移除未被调用的 setRunning 与 reset 暴露
2026-09-18 16:57:42 +08:00
k88936
c921ae3b16
简化编辑器概览分支渲染
...
用显式条件替换嵌套三元表达式
2026-09-18 16:52:37 +08:00
k88936
31c084fce6
保留保存失败的底层错误信息
...
将实际异常传递到保存状态和重试提示
2026-09-18 16:48:53 +08:00
k88936
1e7a3f17ff
避免返回确认与失败弹窗重叠
...
返回路径保存失败时沿用确认弹窗错误状态
2026-09-18 16:45:43 +08:00
k88936
3ce2977e32
固定节点偏移量 TypeScript 元组导出
...
为二维数组字段补充 ts-rs 元组覆盖
2026-09-18 16:43:26 +08:00
k88936
f4e9414d63
限定状态提示动画重启动范围
...
仅重启动 UI 编辑器关注动画而不影响过渡效果
2026-09-18 16:41:12 +08:00
k88936
2d8b51885a
优化切分概览卡片布局
...
将窄侧栏概览调整为两列网格
2026-09-18 16:39:39 +08:00
k88936
91f534ed66
优化识别概览卡片布局
...
将窄侧栏概览调整为两列网格
2026-09-18 16:38:25 +08:00
k88936
f455d3edb2
清理未使用的界面图校验码
...
移除不会被发出的 missing-image 类型
2026-09-18 16:37:48 +08:00
k88936
bec225436f
简化状态节点轮询索引逻辑
...
用显式分支替换嵌套三元表达式
2026-09-18 16:35:25 +08:00
k88936
ce309a3b28
忽略未定义的节点元数据补丁
...
保留部分更新对未提供字段的原有语义
2026-09-18 16:33:37 +08:00
k88936
abd95a6231
消除复制路径未处理拒绝
...
复制失败仅保留界面错误状态
2026-09-18 16:31:04 +08:00
k88936
08c3b89b67
修复跨树节点选择同步界面图
...
选择节点时同步激活所属设计图
2026-09-18 16:28:49 +08:00
k88936
3371337346
修复树节点回调未使用参数
...
为跨树选择回调参数添加下划线前缀
2026-09-18 16:25:54 +08:00
k88936
899a591cda
区分语义建议工具调用缺失错误
...
恢复缺失工具调用的独立日志阶段和提示
2026-09-18 16:23:27 +08:00
k88936
0988c4907a
区分识别工具调用缺失错误
...
恢复识别工具缺失的独立日志阶段和提示
2026-09-18 16:20:49 +08:00
k88936
d370648867
区分合并工具调用缺失错误
...
恢复缺失工具调用的独立日志阶段和提示
2026-09-18 16:13:58 +08:00
k88936
4f4fb0873c
修复切分命令测试节点构造
...
补齐 NodeOffset 默认值以恢复 Rust 测试构建
2026-09-18 16:09:03 +08:00
k88936
6b8a106414
修复合并命令测试节点构造
...
补齐 NodeOffset 默认值以恢复 Rust 测试构建
2026-09-18 16:08:53 +08:00
k88936
ade1b7803e
修复 DirectProject 校验清单合并
...
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m3s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m25s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m30s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 7m41s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m9s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m40s
Project CI / Frontend tests (pull_request) Failing after 7m45s
Project CI / AI game creator shell web tests (pull_request) Failing after 8m31s
Project CI / Native shell tests (pull_request) Successful in 13m1s
让校验函数返回已读取的项目清单
补齐附件在 Codex 输入转换中的分支;图片 part 已退役,只保留附件 part
2026-09-18 14:27:23 +08:00
k88936
71000b6df1
通过 Tauri command 提供 Skill 候选
...
从已校验的 AGC Skill manifest 派生 list_agc_skill_catalog 命令
移除前端内置 Skill 名称硬编码并增加读取命令测试
2026-09-18 14:27:23 +08:00
k88936
c047543825
复用 DirectProject 引用摘要构造
...
提取素材与运行区域摘要 helper
让历史投影和 turn 输入转换共用同一份摘要逻辑
2026-09-18 14:27:21 +08:00
k88936
34b3af1d2a
复用已校验的项目清单
...
DirectProject wire 转换只读取一次项目 manifest
避免每个素材引用重复 I/O 与解析并缩小校验到解析之间的竞态窗口
2026-09-18 14:26:50 +08:00
k88936
f7cba30b6b
拒绝保留路径段的 Skill 名称
...
在 DirectProject Skill 校验中拒绝 . 与 ..
阻止 Skill 路径解析通过父目录段逃逸配置根目录
2026-09-18 14:26:50 +08:00
k88936
273f12633c
按字符数限制 Skill 名称
...
使用 Unicode 字符数量而非 UTF-8 字节长度执行 120 字符上限
让多字节 Skill 名称与资源 ID 的长度校验口径一致
2026-09-18 14:26:50 +08:00
k88936
5f5aa17152
展开引用列表指纹分支
...
将资源、Skill 与运行区域 key 生成改为显式分支
移除 chatReferenceListKey 的嵌套三元表达式
2026-09-18 14:26:50 +08:00
k88936
3a57d9fbdf
移除未使用的 JSON 类型导入
...
删除 codex_app_server 中未被直接引用的 serde_json::Value 导入
2026-09-18 14:26:50 +08:00
k88936
382b925ab9
复用引用节点插入逻辑
...
统一资源与 Skill 候选的 Lexical 节点插入流程
避免两个选择处理器在删除查询和关闭菜单行为上漂移
2026-09-18 14:26:50 +08:00
k88936
c1482012c6
整理引用芯片标题分支
...
提取资源、Skill 与运行区域标题计算 helper
移除 ResourceReferenceChip 的嵌套三元表达式
2026-09-18 14:26:50 +08:00
k88936
c3a17a6efc
更新Skill提及里程碑状态
...
标记输入提示实现进入进行中阶段
2026-09-18 14:26:50 +08:00
k88936
1bfdc3a760
接通Skill提及Codex输入
...
将 canonical Skill part 按原顺序转换为 type skill 输入项
沿用客户端隔离 Skill root 解析受控路径
2026-09-18 14:26:50 +08:00
k88936
1e27cd229d
接入客户端已启用Skill候选
...
从扩展索引读取启用状态并合并内置 Skill 清单
输入提示只展示可用 Skill 并保持取消安全
2026-09-18 14:26:49 +08:00
k88936
774710452f
校验Skill提及用户输入
...
为 canonical Skill part 增加名称边界校验
将 Skill 提及保留为 Codex 可识别的 $name 文本
2026-09-18 14:26:49 +08:00
k88936
aaecb82622
增加输入框Skill提及候选
...
扩展聊天引用模型支持 Skill 节点与 canonical content
复用 Lexical typeahead 增加 $Skill 候选和芯片展示
Conflicts:
apps/ai-game-creator-shell/src/features/project-workspace/ResourceReferenceInput.tsx
Conflicts:
apps/ai-game-creator-shell/src/features/project-workspace/ResourceReferenceInput.tsx
Conflicts:
apps/ai-game-creator-shell/src/features/project-workspace/ResourceReferenceInput.tsx
apps/ai-game-creator-shell/src/features/project-workspace/resourceReferences.ts
2026-09-18 14:26:49 +08:00
k88936
64ad24ac77
补充DirectProject Skill提及输入规范
...
更新聊天输入主规范并增加 Skill 提及边界
新增 Skill 提及里程碑与小切片实施计划
2026-09-18 14:26:49 +08:00
k88936
75ec3361dc
限制附件元数据格式与长度
...
校验 inline 附件名称和媒体类型的控制字符、格式与长度。
共享附件清洗上限常量并补充异常元数据拒绝测试。
2026-09-18 14:12:47 +08:00
k88936
bc1dc868a1
校验已导入附件的项目路径
...
imported 附件必须携带有效非空的项目相对路径。
failed 附件仍允许无路径,并补充状态路径组合测试。
2026-09-18 14:07:07 +08:00
k88936
50204ff7aa
限制 DirectProject inline 附件数量
...
为 canonical 附件增加独立的八个条目上限。
补充超限附件拒绝测试,避免绕过素材引用数量门禁。
2026-09-18 14:03:30 +08:00
k88936
70fa160819
清洗附件摘要元数据
...
wire 投影复用附件名称与媒体类型的安全清洗。
附件项目路径输出归一化结果,避免原始控制字符进入模型提示。
2026-09-18 14:00:00 +08:00
k88936
2e78cbf152
Merge remote-tracking branch 'refs/remotes/origin/master' into fix/ref-persistent
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m18s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m22s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 7m30s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 7m41s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m56s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m25s
Project CI / Repository checks (pull_request) Failing after 4m0s
Project CI / Frontend tests (pull_request) Failing after 4m50s
Project CI / Native shell tests (pull_request) Successful in 8m29s
Project CI / Backend tests (pull_request) Successful in 11m23s
Project CI / AI game creator shell web tests (pull_request) Failing after 5m16s
2026-09-18 13:29:58 +08:00
k88936
840baf208f
移除草稿转换的文本引用回退
...
将 ChatComposerDraft.content 设为必填的 canonical 唯一来源。
删除 text 与 references 重建 DirectCodexUserItem 的兼容分支及其无效空值兜底。
2026-09-18 13:19:01 +08:00
k88936
d8af0fa882
保留聊天草稿中的附件引用节点
...
为 agc_attachment_reference 增加 Lexical 附件节点与可移除 chip。
恢复初始 canonical content 时不再静默丢弃附件,并让编辑器读回完整附件 part。
2026-09-18 13:17:31 +08:00
k88936
faed0ec251
移除 DirectProject 入口的重复回合审计
...
DirectProject 继续以 project.jsonl 作为完整回合记录。
入口不再创建 DirectCodexTurnAudit,保留底层可选审计接口供独立测试和其它路径使用。
2026-09-18 12:56:43 +08:00
k88936
6e63a118e0
延后资源草稿直到素材索引可用
...
避免初始编辑器挂载时 assetsById 为空导致资源引用永久丢失。
保留 Lexical 节点自行解析资产名称的后续 TODO。
2026-09-18 12:53:44 +08:00
k88936
4ae5ab14fa
移除队列标签不可达兜底分支
...
队列标签统一复用 canonical content 的文本派生。
删除不会被现有引用类型触发的附件和素材兜底文案。
2026-09-18 11:36:10 +08:00
k88936
b73a329b2c
修复附件场景下历史命令识别
...
使用不含附件的文本输入判断 /history 命令。
避免待发送附件把 canonical prompt 拼成长文本后绕过历史记录加载。
2026-09-18 11:35:18 +08:00
k88936
06004bfeea
清理资源引用标签的重复分支
...
移除相同结果的死三元分支。
保持资源与运行区域引用均使用统一的 @标签 文本。
2026-09-18 11:34:35 +08:00
k88936
ecea7b4ad3
解决 DirectProject 合并冲突
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 6m2s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m54s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m20s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m31s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m3s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m49s
Project CI / Frontend tests (pull_request) Failing after 6m56s
Project CI / Repository checks (pull_request) Failing after 6m23s
Project CI / Native shell tests (pull_request) Successful in 10m17s
Project CI / Backend tests (pull_request) Successful in 11m8s
Project CI / AI game creator shell web tests (pull_request) Failing after 6m0s
合并双方 DirectProject 历史分页、锚点闸门与订阅竞态处理。
保留 canonical content 输入、聊天 reducer、附件发送和历史分页行为。
合并 Codex 用户回显过滤、增量脱敏及 Direct 回合完成状态处理。
补齐历史截断、损坏行 fail-closed、首屏 anchor 与 appSurface 定向测试。
同步合并应用壳层、后端绑定和项目文档变更。
2026-09-18 10:47:55 +08:00
k88936
55a8513de4
更新UI编辑器深模块架构文档
...
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 4m16s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 4m23s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 4m24s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 4m26s
Project CI / Backend tests (pull_request) Failing after 13s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m28s
Project CI / Frontend tests (pull_request) Failing after 3m30s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m33s
Project CI / Native shell tests (pull_request) Successful in 9m17s
记录状态迁移、几何、不变量与操作生命周期 seam
同步结构化 LLM 适配器边界与验证结果
2026-09-18 10:24:03 +08:00
k88936
d986dbaeb0
收敛UI编辑器结构化LLM动作适配器
...
统一必需 tool-call 定位与有界 JSON 参数解析
让语义建议、结构识别、组件绑定和多树合并复用稳定机械
保留各操作的 prompt、schema、领域校验与 materializer
2026-09-18 10:23:35 +08:00
k88936
16c6b9198e
深化UI编辑器前端状态与几何模块
...
新增 React-free 语义状态迁移 seam
收敛 State 级节点几何与保存前不变量校验
统一四类异步编辑器操作生命周期
补充状态迁移和不变量测试
2026-09-18 10:23:04 +08:00
k88936
b1e82d64cb
合并 DirectProject 聊天真相源与 canonical content 行为
...
- 统一历史切片与 Thread Manager 事件投影,保留 DirectProject 单一聊天事实源
- 保留 canonical content 严格校验、资源显示名派生、附件引用与队列语义
- 修复首页首轮缺失 canonical user item 的真实回归并完成定向验证
2026-09-18 02:49:09 +08:00
k88936
b7622f4a24
Merge remote-tracking branch 'origin/master' into fix/chat-status-lost
...
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 1/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 2/4 (pull_request) Has been cancelled
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-09-17 16:57:47 +08:00
k88936
cb840c6e8c
Merge branch 'master' into fix/chat-status-lost
...
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
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# docs/project-memory/shared-memory/pitfalls.md
2026-09-17 16:53:18 +08:00
k88936
0a9cdf6395
补 DirectProject 历史分页连拉的实现证据
...
里程碑前端连拉那条转成已验收,证据指向新单测与跨页同回合集成用例
证据要求补上本轮实跑结果与变异验证现象,避免再出现打勾但只覆盖一半
决策记录把验证口径写成具体条数与变异验证结论
2026-09-17 16:51:30 +08:00
k88936
e382d23892
补跨页同回合的历史分页回归用例
...
用 51 条历史复现用户报的现象:20 条工具条目整屏落进同一个折叠的执行过程
断言一次点击连拉两页拿到新用户气泡,并按 process-31 / process-11 两次锚点推进
断言连拉插入旧内容后视口仍停在原处,不被拉回列表底部
2026-09-17 16:49:08 +08:00
k88936
37ae7508b8
App 聊天历史分页改走连拉循环
...
首屏与「显示更早」共用 readDirectHistoryPages,不再各自单发一页
首屏基线取空并在守卫后一次性并入聊天 reducer,失败仍按原有语义抛出
「显示更早」按当前视图条目判断新回合,取到多页一次性并入并推进锚点
连拉中途失败保留已取到的页,报错统一走同一个出口
2026-09-17 16:39:24 +08:00
k88936
1ae6c6cd06
新增 DirectProject 历史分页连拉模块与单测
...
directHistoryPaging 按「合并后聊天投影回合数增加」判断可见反馈,出现新回合或 hasMore=false 即停
连拉上限 DIRECT_HISTORY_MAX_PAGES_PER_ACTION 放进 app/constants,每个操作最多 5 次请求
锚点未推进(items 为空 / firstItemId 为 null 或原地打转)时立即停手并收口 hasMore
某页读取失败不丢已取到的页,返回 error 交给调用方报错
directThreadChat 抽出 projectDirectHistoryItems,让分页判据与视图共用同一份投影
2026-09-17 16:27:09 +08:00
k88936
459f8a60e5
文档先行:定死 DirectProject 历史分页连拉的可见性口径
...
把「可显示」判据明确为合并后聊天投影出现新回合,并写清每操作 5 页上限与锚点不前进即停
里程碑把原第 56 条按后端锚点回扫与前端连拉拆成两条独立验收项,前端那条先留待补证据
实施计划第 6 步同步口径,并把新分页单测加入验证命令
决策记录新增 2026-09-17 条目,记下落点、上限粒度、失败与竞态边界
2026-09-17 16:18:51 +08:00
k88936
63c495dab0
DirectProject 不再把 Codex 回显的用户消息下发给聊天
...
- 运行态条目投影新增回显过滤 direct_thread_visible_item,item/started 与 rawResponseItem/completed 两条路径共用
- is_direct_project_codex_user_item 提升为 pub(crate),落盘侧与运行态侧共用同一判据
- 新增 E2E direct_project_turn_does_not_forward_codex_user_echo_as_chat_items:修复前事件流会多出两条同文本用户条目(已做变异验证)
- 同步 ADR 与 shared-memory decision-log:回显过滤必须同时覆盖落盘与运行态两侧
2026-09-17 14:41:58 +08:00
k88936
b37d91882c
Revert "修复DirectProject对话历史分页卡页"
...
This reverts commit 1b010fb1f8 .
2026-09-17 14:38:39 +08:00
k88936
dd339638cc
Revert "修复历史重读后旧消息追加到末尾的乱序"
...
This reverts commit 036395c6c9 .
2026-09-17 14:38:22 +08:00
k88936
0caf998227
重新生成 ts-rs 前端绑定并让前端按 null 语义构造运行时区段
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 6m35s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m31s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m15s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m47s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m15s
Project CI / Repository checks (pull_request) Failing after 19s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m15s
Project CI / Frontend tests (pull_request) Failing after 5m44s
Project CI / AI game creator shell web tests (pull_request) Successful in 5m49s
Project CI / Native shell tests (pull_request) Successful in 10m42s
- 跑 export_bindings 后 prettier 格式化:DirectCodexUser* 5 个文件内容更新,新增 DirectCodexUserMessageEnvelope.ts 与 ui-editor 的 BindingChange/BindingDTO
- DirectCodexUserRuntimeRegionPart 的可选字段由 `?:` 变成 `T | null`(Rust Option 会显式序列化成 null,不是省略键)
- chatReferenceToContentPart 改用 `?? null`,消息条目的 satisfies 目标改为 DirectCodexUserItem(type:'message' 归到信封类型)
- ResourceReferenceInput 不再复制一份区段字面量,改为复用 chatReferenceToContentPart
- 验证:tsc --noEmit 通过;resourceReferences 等 5 个用例集 81 passed;appSurface 452 passed / 17 skipped(连跑两次)
2026-09-17 14:03:05 +08:00
k88936
6eed6bd13f
收敛 content→可读文本为单一口径并强制传 manifest(review 第 2、3 条)
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m10s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 6m43s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 6m28s
Project CI / Backend tests (pull_request) Failing after 15s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m13s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m0s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m58s
Project CI / Frontend tests (pull_request) Failing after 4m24s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m2s
Project CI / Native shell tests (pull_request) Successful in 8m31s
- directCodexContentToPromptText 的 assets 改为必填,去掉 = [] 默认值:漏传素材清单从运行期文案退化变回编译期错误
- queuedChatTurnLabel 的 assets 与 ComposerTurnQueue 的 assets 属性同样必填,队列 chip 与消息正文共用同一个派生(chip 只多做压单行与限长)
- 断言改为显式传 [] 或 manifest:resourceReferences、chat-composer 用例按新签名收敛
- 更新 pitfalls 条目与 decision-log(canonical content 有效性只判整条 content、投影逐字透传、可读文本单一口径必填 assets)
2026-09-17 14:02:21 +08:00
k88936
b543a060b7
放宽 DirectProject content 校验为「整条判定」并按逐字投影(review 第 1 条,① 口径)
...
- Rust validate_direct_codex_user_item 改为只判整条 content:有一段非空白文本或任意非文本 part 即有效,单个纯空白 input_text(段落分隔 / 软换行 / chip 后的分隔空格)合法,不再逐个 part 拒绝空文本
- 新增 content_has_meaningful_input,并与前端 hasMeaningfulDirectCodexContent 同口径;wire.rs 的「不能转换为空 prompt」只作兜底
- ResourceReferenceInput 的投影层原样透传编辑器节点:不做空白过滤、也不与相邻 part 合并,删掉 appendInputText 与中间版本的「向前合并」收集器
- 按逐字投影更新资源输入、Godot 回合用例的 canonical content 断言
- 同步里程碑实现结论与证据、pitfalls 条目;Rust validation/wire 新增「单个纯空白 part 通过、整条全空白拒绝」用例
2026-09-17 14:01:41 +08:00
k88936
9993b2feb5
通知分类收敛成生产读取器与单测共用的唯一实现
...
- direct_codex_notification_event 收编 resolution / request / item / rawItem / Terminal 全部分支,并接收 turnId
- 读取器删掉自己那份内联分类,只保留「必须有 turnId 才处理」与活动/正文节流
- agentMessage 缺 itemId 的告警与 direct-missing-item:{turnId} 兜底身份原样保留,避免行为变化
- 新增 direct_notification_classification_covers_the_reader_branches 钉住各分支;E2E 假 app-server 用例继续覆盖读取器
2026-09-17 13:47:32 +08:00
k88936
d348cf9064
线程 id 只按路径归一,不再受 manifest 可读性影响
...
- direct_thread_id_for_project 改用 resolve_direct_codex_project_authority(存在/是目录/canonicalize)
- 不再读 .agent/manifest.json:那次读取是连接池权威身份的要求,线程 id 只是路径 key
- 否则 manifest 在订阅时读失败、跑回合时读成功,会让符号链接等非 canonical 调用方路径算出两个线程 id,订阅绑到空线程
- 新增 direct_project_thread_id_ignores_manifest_readability,旧实现下会退回调用方原始字符串(已做变异验证)
2026-09-17 13:42:35 +08:00
k88936
e640219243
思考正文改走生产路径的 ReasoningDelta 通道
...
- 新增 direct_codex_reasoning_delta_event,两条 reasoning 增量通知只在这一处分类
- 生产 stdout 读取器改用该函数,并跳过「preparing 活动」的降级与活动节流(活动节流会按类别吃掉逐段正文)
- 旧分类函数 direct_codex_notification_event 同步改用它,避免两份实现再次分叉
- 单测 direct_reasoning_deltas_stream_text_while_plan_and_command_output_stay_activity 取代原先断言 Activity 的旧用例
- 新增 E2E codex_app_server_streams_reasoning_deltas_without_activity_fallback:把读取器的路由关掉即转红(已做变异验证)
2026-09-17 13:22:36 +08:00
k88936
da2ad83c3b
分页锚点改用文件里的原始 item id
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 6m22s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 6m34s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 6m49s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m49s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m7s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m19s
Project CI / Frontend tests (pull_request) Failing after 6m15s
Project CI / AI game creator shell web tests (pull_request) Failing after 5m47s
Project CI / Native shell tests (pull_request) Successful in 12m22s
- 新增 direct_project_history_anchor_id:优先取 project.jsonl 原始 id,缺 id 时退回归一身份兜底
- read_direct_project_history_items_slice_at 的锚点匹配与 first_item_id 都改用原始 id
- 工具条目的调用与输出共用 call_id,按归一身份当锚点会先跳过 output 再把上一屏的 function_call 带回来
- 原分页用例更名 history_window_paginates_upwards_by_item_id_anchor
- 新增 pagination_anchor_uses_raw_item_id_for_tool_call_pairs,旧实现下会返回 call-1 而非 fc-1(已做变异验证)
2026-09-17 00:24:01 +08:00
k88936
ad19c9475e
回扫的 terminated 改成按真实换行结尾判定
...
- DirectProjectHistoryReverseLines 增记 saw_delimiter,第一段按"文件是否以换行结尾"判定,之后的行按已切掉的分隔符判定
- 尾部残行(上一行完整、这一行没有换行)解析失败时改为跳过继续回扫,不再报错、也不再就地结束丢掉更早的完整历史
- 换行结尾的坏行(含文件第一段)与顺序读取保持一致地失败关闭
- 补两条回扫用例:尾部残行不丢更早条目、坏掉的第一段必须失败关闭(都按旧实现变异验证过)
2026-09-17 00:18:49 +08:00
k88936
975a2e577c
终止按钮改按综合繁忙信号判定
...
- handleCancelDirectCodexTurn 的守卫改用 supervisorChatBusy,与「终止」按钮的可见条件对齐
- 刚提交、turn.started 还没到达的窗口里点击终止不再回"当前没有正在运行的回合"
- chat-composer 用例补一条:生命周期事件缺席时也能发出 cancel_direct_codex_turn
2026-09-17 00:10:20 +08:00
k88936
1b40f030e7
删掉聊天 reducer 里没人读的订阅身份与首屏锚点
...
- DirectThreadChatState 去掉 subscriptionId 与 lastCompletedItemId 两个只写不读的字段
- resolveDirectThreadBootstrap 只把 bootstrap 事件 reduce 进状态,不再顺带写入这两个字段
- directThreadChat 单测改成断言聊天状态里不再出现这两个字段(bootstrap 载荷本身不变)
2026-09-17 00:05:57 +08:00
k88936
098693636a
分页切片开头的前导条目并进后面那个回合
...
- buildDirectChatTurns 先攒住第一个用户条目之前的过程条目,交给后面那个回合
- 不再渲染没有用户气泡的孤儿回合;整份历史都没有用户条目时仍保留一个回合
- directTurnPresentation 单测补一条分页切片从半截回合开头的情形
2026-09-17 00:02:11 +08:00
k88936
e17af3008e
首屏历史切片改到 staleness 守卫之后再并入聊天 reducer
...
- loadProjectConversation 不再在 read_direct_project_history_slice 的 then 回调里直接写 directThreadChat
- 切片先暂存,等 loadVersion / localProjectPathRef 守卫通过后再与 hasMore、锚点一起落到状态
- 现有 launcher 按项目路径 key 重挂载 App,跨项目污染暂不可复现;本次只是让这条写入与其它状态写入的时序一致
2026-09-16 23:59:29 +08:00
k88936
64bd006981
测试骨架的历史切片按 limit 与锚点分页
...
- harness.ts 的 read_direct_project_history_slice 按生产口径从队尾取一屏、锚点条目不进窗口
- 按本屏最老一条算 firstItemId,收满一屏后再有条目才算 hasMore
- project-development.suite.ts 补一条用例:26 条历史只显示尾部 20 条,点「显示更早的对话」按锚点取回前 6 条后按钮消失
2026-09-16 23:52:02 +08:00
k88936
6a4cb2bc18
测试骨架的 subscribe bootstrap 按生产口径过滤
...
- harness.ts 记录未完成条目集合、事件序号与最新生命周期锚点
- subscribe 只回放未完成条目与最新生命周期锚点,已完成条目与增量正文不再补发
- 去掉已下发事件的序号记录,避免序号表无限增长
2026-09-16 23:48:46 +08:00
k88936
1b3a3b003f
测试骨架不再重复下发 turn.started
...
- harness.ts 记录运行态"最新回合是否在跑",emitDirectThreadEvents 只在生命周期事件上更新
- completeDirectThreadTurn 仅在回合没在跑时补 turn.started,避免与用例先发的事件重叠
2026-09-16 23:45:19 +08:00
k88936
ff8e517c8e
清理 DirectProject 回合结束后丢弃回复正文的死语句
...
- App.tsx 不再绑定 chat_with_game_creator_direct_codex 的返回值,删掉 void reply
- 保留说明:回复正文按条目身份从线程事件 / 历史切片进聊天,本地不再补第二条
2026-09-16 23:42:58 +08:00
k88936
d874a13a92
补记 Node 26 下 vitest jsdom 用例的 localStorage 坑
...
- pitfalls 记录:Node 26 的实验性 globalThis.localStorage 会顶掉 jsdom 的 Storage,导致只声明 jsdom 的用例读到 undefined
- 给出跑法:NODE_OPTIONS=--localstorage-file=… 后 clientApi 与 chatPromptPolish 共 26 项转绿
- 里程碑证据更新为全量结果:125 files / 1676 passed / 17 skipped,tsc exit 0
2026-09-16 22:41:54 +08:00
k88936
5eba53a5cc
补齐 DirectProject 聊天真相源收敛的文档结论
...
- 主规范:运行态事件改为下发与历史切片同形的脱敏原始条目,不再只给类型与身份
- 主规范与 ADR 写清回执竞态:回执前到达的通知只能记欠账,回执到达后必须补一次 consume
- ADR 与实施计划说明 list_game_creator_direct_active_turns 有意保留,服务首页运行中项目列表
- 里程碑验收标准按自动化证据勾选,运行时验收与已知环境缺口单独标注
- 实施计划补 export_bindings 后需 prettier 生成目录、测试文件更名与竞态风险项
2026-09-16 22:16:24 +08:00
k88936
33ddb5de27
DirectProject 聊天框改用线程订阅作为唯一运行态来源
...
- App.tsx 删除 Direct 回合事件订阅、turn-stream/tool-calls 读取、活动回合快照接管与瞬时应答文本
- 新增 game-creator-direct-thread-notify 唤醒的 subscribe/consume 单飞循环,过期时重订一次
- 通知先于订阅回执到达时记一笔欠账,回执到达后补一次 consume,避免回合尾部事件卡在队列里
- 历史切片并入同一个 reducer,聊天条目只由 selectDirectChatEntries 投影
- ProjectSupervisorView 改为渲染用户气泡 / 执行过程折叠区 / 最终回复,运行态只保留一个 turnRunning
- directTurnPresentation 重写为条目分区:连续工具合块、本地运行期说明只作最终提示
- 测试改按订阅事件与历史条目断言,补回执竞态、持久化工具卡片、空对话首轮三条用例
2026-09-16 22:16:15 +08:00
k88936
bf8f96c115
DirectProject 回合事件补齐用户条目与终态兜底
...
- 新增 direct_thread_id_for_project:订阅、回合事件写入与兜底释放共用一个线程身份
- 订阅命令改用同一个身份函数,删掉命令层自己那套路径归一
- 用户消息落盘后立刻作为 item.completed 下发,前端用同一个 itemId 合并乐观气泡与历史条目
- 采集终态事件是否已经下发,缺失时按成功 / 失败补一条 turn.completed,避免前端永远停在运行中
- 取消回合的 Stale 分支补一条 turn.completed(aborted)
2026-09-16 22:15:57 +08:00
k88936
e469831543
修复快速编辑提示词把 @ 引用写成内部 id(review 第 3、4 条)
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 7m39s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m18s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m8s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m55s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 5m11s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m45s
Project CI / AI game creator shell web tests (pull_request) Successful in 5m10s
Project CI / Native shell tests (pull_request) Successful in 8m37s
Project CI / Frontend tests (pull_request) Successful in 8m46s
- applyResourceQuickEditPrompt 与 applyResourceQuickEditDraft 改用 directCodexContentToPromptText(content, manifest.assets),并在 useCallback 依赖里加上 manifest.assets
- 两处必须同口径:比较用的草稿文本与落进 quickEditPanel.prompt 的文本都按显示名展开,出站 derive_local_project_resource 的 prompt 与聊天 @ 逐字一致,也不会每次输入都重跑 replaceText
- 补充两处注释说明素材清单口径,shared-memory/pitfalls 记录「派生文本漏传 manifest.assets」的现象、原因、处理与验证
2026-09-16 21:26:53 +08:00
k88936
869abad879
修复排队消息 chip 的 @ 引用露出内部 resourceId(review 第 2 条)
...
- queuedChatTurnLabel 增加 assets 入参并透传给 directCodexContentToPromptText,@ 引用按 manifest 显示名展开,与聊天输入区文案口径一致
- ComposerTurnQueue 增加 assets 属性,ProjectSupervisorView 把 chatProjectAssets 传下去
- chat-composer 用例新增「队列 chip 的 @ 引用按 manifest 显示名展开」,钉住显示名文案与不传清单时的稳定 id 兜底
2026-09-16 21:25:38 +08:00
k88936
280a2dc5d1
修复 DirectProject 输入草稿丢掉引用后的换行(review 第 1 条)
...
- ResourceReferenceInput 的草稿投影改为「向前合并」:上一 part 是引用 chip 时先把待写文本攒在 pendingText 上,等下一个文本 part 到来再合并,段落分隔符与软换行不再被 trim() 丢掉
- 攒到最后仍只有空白的文本不入 content,避免产出 Rust validate_direct_codex_user_item 会拒绝的空 input_text
- 新增 resourceReferenceInput 用例「引用后面的段落分隔不会被吞掉」,钉住 chip 后一段的 content part、派生文本与「不产生纯空白 part」
- 同步更新 canonical content 严格边界里程碑的实现结论与证据,并在 shared-memory/pitfalls 记录该缺陷的现象、原因、处理与验证
2026-09-16 21:24:41 +08:00
k88936
3c6e084a41
DirectProject 历史切片改为从文件尾回扫并删掉聊天框只读命令
...
- 新增 DirectProjectHistoryReverseLines:按块从文件尾逐行回读 project.jsonl
- 幂等回扫与"读一屏"共用这一套尾部回读,不再各自从文件头读到尾
- read_direct_project_history_items_slice_at 语义不变仍返回元组,新增第四项为本屏最老的 itemId 作分页锚点
- 分页锚点只按归一身份 itemId 匹配,不再接受第二个 id
- read_direct_project_last_item_id_at 改为尾部回扫读一行,不再读整份历史
- 删除只服务聊天框回读的 read_direct_tool_calls / read_direct_turn_stream 命令与注册
- 保留 list_game_creator_direct_active_turns:它服务首页跨页面"运行中的项目",不是聊天框读路径
- 补历史切片尾部回扫与分页锚点两条用例
2026-09-16 20:17:15 +08:00
k88936
ed3369a494
文档先行:把 DirectProject 聊天真相源收敛的文档改到当前实现状态
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 5m13s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m30s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m39s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m43s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m8s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m10s
Project CI / Frontend tests (pull_request) Failing after 3m24s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m7s
Project CI / Native shell tests (pull_request) Successful in 6m8s
- 主规范把事件模型写成 ts-rs 导出的 tagged enum,说明 seq 不下发、事件不带回合身份,并补上 ts 绑定生成与 f64 时间戳约定
- ADR 补上 tagged enum 绑定、turn id 删除、正文只增不减与回合回收、前端卡片去掉 turnId、未知类型前端丢弃
- 里程碑与实施计划同步:文件改名到 direct_thread_wire.rs,新增删回合身份与生成绑定两步,验证命令加上 export_bindings
- 工具卡片技术方案在文首加修订段:数据来源层作废,表现层契约仍然有效,DirectRuntime 的 tool-calls.jsonl 写入保留
- 对话回合唯一投影里程碑改为 superseded,列出仍然有效与已作废的分界
2026-09-16 19:57:21 +08:00
k88936
fdc48fe725
前端聊天投影按 ts-rs 生成类型收口,删掉 callId 与回合身份
...
- directThreadItemProjection.ts 直接消费生成的 DirectThreadItem,工具卡片 kind / 标题 / 摘要 / 状态与可见性判定都在这里
- directThreadChat.ts 聊天条目只留一个 itemId:去掉 callId 概念,去掉 deltaText 缓冲,增量直接追加到运行态条目正文
- 合并规则收成先到者赢、后到只补空:正文只增不减、工具状态允许从 running 升级到终态
- 回合结束把运行态条目并入历史并清空 live,条目既不消失也不重复
- directThreadEvents.ts 改为转发 ts-rs 绑定,只保留历史条目转消息的过渡函数
- ToolCallGroup 与 toolCallGroupPresentation 改用去掉回合身份的 DirectChatToolCard
- generated/index.ts 补上 DirectThread* 绑定导出
- 回退本仓库其它模块仍在改的 DirectCodexUser* 绑定重新生成(避免误改他人进行中的契约)
- 两个 vitest 用例文件按新 API 重写,11 条用例通过
2026-09-16 19:49:26 +08:00
k88936
2748468d12
DirectProject 聊天事件改用 ts-rs 导出的 tagged enum 并删掉 turn id
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 5m11s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m51s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m57s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m50s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m2s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m14s
Project CI / Native shell tests (pull_request) Failing after 2m13s
Project CI / AI game creator shell web tests (pull_request) Failing after 46s
Project CI / Frontend tests (pull_request) Failing after 3m32s
- 新增 direct_thread_wire.rs:DirectThreadItem / DirectThreadEvent / 订阅与历史切片全部改成 ts-rs 导出的 tagged enum,取代原大而全的可空结构体
- 删除 direct_thread_raw_item.rs,模块注册与直通引用改到 direct_thread_wire
- 条目身份只看一个 itemId:工具条目的第二个 id 在 Rust 边界归一,不再对外暴露
- 删除 DirectProject 聊天事件里的 turn id:生命周期用无载荷的 turn.started / turn.completed{status} 表示
- append 直接接收 DirectThreadEvent 并返回同一事件,队列内部自算 seq
- 请求事件改为携带 DirectThreadRequestKind,去掉字符串中转
- 思考增量走 ReasoningDelta 通道,与正文增量共用 item.delta
- at 用 #[ts(as = "f64")] 对齐 Tauri JSON 通道的 number
- 用 cargo test export_bindings 重新生成 project-workspace/generated 绑定
2026-09-16 19:43:57 +08:00
k88936
09ad0073fe
修正 DirectProject 订阅语义:bootstrap 事件就是当前要处理的事件
...
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
subscribe 已在同一边界把游标钉在队尾,因此前端直接 reduce bootstrap 事件,不再补一次 consume
主规范、ADR 与实施计划同步删除"竞态窗口"说法,notify 仍是唯一唤醒来源
2026-09-16 19:06:05 +08:00
k88936
42b702d362
按 grill 结论修正 DirectProject 聊天真相源收敛计划
...
里程碑与实施计划改定边界:Thread Manager 只搬运脱敏原始条目,不生成卡片形状与可见性
条目身份归一为 call_id ?? id,Thread Manager 与前端不再暴露第二个 id 概念,分页锚点仍取文件里的原始 item id
合并规则收敛为"先到定形、后到补空白",删除逐字段优先级表
主规范补充条目形状三条职责边界,并说明思考正文流式下发不放宽可见范围
ADR 同步:DirectRuntime 自己的进度事件与投影文件保留,前端删除的是 DirectProject 的读路径
失败与中止说明只在运行期显示;历史切片改为从文件尾反向扫描;未知 item 类型透传并加 TODO
2026-09-16 19:05:04 +08:00
k88936
edfd1f9143
修正 Godot 直接回合用例对 canonical content 的断言
...
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 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 1/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
- appSurface Godot 用例不再断言被裁剪过的纯文本,改为断言编辑器实际提交的 canonical content(Shift+Enter 与组合态 Enter 插入的换行原样保留)
2026-09-16 18:51:08 +08:00
k88936
423f2d7184
修复独立总控聊天窗口未发送草稿的恢复
...
- App.tsx 增加 supervisorChatDraftHydratedRef 守卫的挂载水合:独立总控聊天窗口挂载走 loadProjectConversation,不经过 openWorkspace,此前 sessionStorage 里的草稿只写不读,重载后为空
- 仅在 supervisorChatOnly、存在持久化草稿且输入框已挂载时回填一次,避免覆盖用户后续输入
2026-09-16 18:50:55 +08:00
k88936
656c89e4b2
把 DirectProject 聊天条目的投影从前端收口,Rust 只搬运脱敏原始条目
...
新增 agent/direct_thread_raw_item.rs:把 Codex 原始 response item 与 app-server item 收敛成同一形状的脱敏原始条目,只做挑字段、脱敏、截断,不再生成卡片的 kind / 标题 / 折叠摘要
删除 agent/direct_chat_entry.rs:工具卡片形状不再由 Rust 生产
历史切片改为返回脱敏原始条目列表,不再在 Rust 侧合并 function_call 与 function_call_output
新增前端 directThreadItemProjection.ts:工具卡片 kind / 标题 / 摘要 / 状态与可见性判定全部在前端完成
directThreadChat reducer 改用同一投影函数处理运行态事件,新增 mergeDirectHistoryItems 走同一份投影与合并规则
DirectThreadHistorySlice 去掉 entries 与 itemTimestamps,改为 items + firstItemId
2026-09-16 18:45:13 +08:00
k88936
aa9076c95c
删除 DirectProject 图片专用 content part
...
- 移除 DirectCodexUserContentPart 的 agc_image_reference 分支与对应 ts-rs 绑定
- Rust 校验与 Codex wire 投影只保留 agc_attachment_reference
- 更新附件顺序投影测试的用例名、输入与断言
- 同步聊天素材功能说明、用户 Response item 里程碑与实施计划
- 在决策日志记录上传文件统一走附件 part、不保留图片兼容分支
2026-09-16 18:29:24 +08:00
k88936
0ec1179bf1
移除前端 consume 轮询兜底
...
- 唤醒只由 notify 驱动,bootstrap 后立刻 consume 一次补齐竞态窗口
- 定时 tick 无法自举:判断活动回合本身依赖事件,唤醒丢失时定时器不会启动
- 主规范、ADR 与实施计划同步删除该条款
2026-09-16 18:17:38 +08:00
k88936
2938a49cac
固化 DirectProject 聊天真相源契约
...
- 主规范新增首屏锚点、生命周期锚点必进 bootstrap、事件自足与不提供单点快照四条契约
- 新增 ADR 记录单一事实源取舍、删除清单与待验证的 id 空间风险
- 新增里程碑与实施计划,CONTEXT.md 补项目对话历史/运行态事件/聊天投影词条
- 目标文档合同与文档索引同步
2026-09-16 18:05:30 +08:00
k88936
ae0f9376c9
新增 DirectProject 聊天 reducer 深模块
...
- directThreadChat 把运行态事件与历史切片归并成同一份聊天条目,活动回合只由 turn.started/turn.completed 判定
- item.delta 载荷补 kind,reducer 不再靠 itemId 猜条目类型
- bootstrap 原子替换运行态并保留历史窗口,历史与运行态按 callId ?? itemId 去重合并
- 新增 5 条 reducer 单测
2026-09-16 18:05:10 +08:00
k88936
29d0cbb4df
运行态事件与历史切片共用聊天条目投影
...
- 新增 direct_chat_entry 深模块,把原始 response item 与 app-server item 投影成同一聊天条目
- item.started/item.completed 载荷改为完整条目,前端不再需要按 itemId 取快照
- 原始 function_call 与 function_call_output 按 callId 并成一张卡片,文本与明细统一脱敏截断
- 历史切片新增 entries 与 first_item_id,分页锚点不再依赖是否出现可显示条目
2026-09-16 18:01:50 +08:00
k88936
41366dd71d
修复DirectProject canonical内容边界(review 第 8 条)
...
- 移除 chatComposerDraftToDirectCodexUserItem 对纯空白 input_text 的预过滤,原样传递 draft.content
- ChatComposerDraft 只保留 canonical content,删除 text / references 旧字段
- 新增 directCodexContentToPromptText、hasMeaningfulDirectCodexContent、directCodexUserItemFromContent 供 caller 与展示派生
- 删除 executeChatAgentReply 的 userItem 兜底分支,首页首轮、队列出队、普通提交与策略重试显式构造 canonical user item
- QueuedChatTurn 只保存 clientTurnId 与 userItem,队列 chip 文案由 content 派生
- 旧 Planner / legacy Supervisor caller 显式构造纯文本 item 并留下迁移 TODO
- 资源输入区对外只暴露 canonical content,内部文本草稿改为文本 → content 重建
- 迁移草稿、润色、队列与 appSurface 测试 fixture 到 content-only
- 更新 canonical content 里程碑与实施计划文档结论
2026-09-16 17:46:41 +08:00
k88936
721e45f01b
统一 DirectProject 运行态条目的合并身份
...
- Thread Manager 事件新增 callId,条目身份统一为 callId 优先、其次 itemId
- 工具条目按 callId 归并 started/completed,不再留下永远收不到完成事件的幽灵活跃条目
- 历史锚点仍取 response item id,保证分页锚点能在 project.jsonl 中命中
- 补充跨 id 空间归并的单元测试
2026-09-16 17:45:28 +08:00
k88936
f4b496caca
补充DirectProject canonical内容严格边界计划
...
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 2/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 shard 1/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
- 明确 content-only 输入与最终空内容校验
- 规划删除 userItem 兜底并修正 Direct caller
2026-09-16 15:28:25 +08:00
k88936
4df4708ba1
Merge remote-tracking branch 'origin/master' into feat/ui-editor-v3
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 3m0s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 3m4s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 3m7s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 3m9s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m41s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m32s
Project CI / Frontend tests (pull_request) Failing after 4m47s
Project CI / Repository checks (pull_request) Failing after 4m39s
Project CI / Native shell tests (pull_request) Successful in 7m14s
Project CI / Backend tests (pull_request) Successful in 8m12s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m54s
# Conflicts:
# docs/project-memory/shared-memory/pitfalls.md
2026-09-16 14:57:26 +08:00
k88936
fc0fd846f9
避免快速编辑润色回填重复更新
...
- 回填前比较编辑器当前文本
- 防止输入区 onChange 与宿主回调形成循环
2026-09-16 13:22:57 +08:00
k88936
fa99d9ad62
避免总控草稿初始化误删
...
- 编辑器尚未恢复时跳过空草稿持久化
- 保留已有会话草稿等待输入区完成恢复
2026-09-16 13:20:47 +08:00
k88936
64a52005f8
修复清空草稿后润色状态残留
...
- 在编辑器发出空草稿时重置润色结果
- 清除本轮发送提醒确认标记
2026-09-16 13:20:01 +08:00
k88936
645d806fed
修复空初始草稿吞掉首次编辑
...
- 仅在初始内容实际非空时跳过初始化回调
- 保证快速编辑首次输入同步到宿主状态
2026-09-16 13:19:13 +08:00
k88936
0b9d16e8f1
修复润色按钮无法感知输入
...
- 用 React 状态同步编辑器当前文本
- 让按钮禁用态随用户输入即时更新
2026-09-16 13:18:31 +08:00
k88936
d5c4e0e780
修复快速编辑润色结果未回填
...
- 为快速编辑输入区绑定编辑器句柄
- 润色回调同时更新面板状态与编辑器文本
2026-09-16 13:17:50 +08:00
k88936
30e27abc60
修复建议命令草稿残留引用
...
- 准备命令草稿前先清空编辑器
- 避免提交用户上一轮选择的素材引用
2026-09-16 13:16:07 +08:00
k88936
b607501916
修复总控草稿恢复后被清空
...
- 仅在非纯聊天模式清空聊天编辑器
- 保留纯聊天模式恢复的会话草稿
2026-09-16 13:15:08 +08:00
k88936
46e3cd9744
内联 DirectProject 附件与图片内容
...
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 5m30s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 5m35s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 5m54s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 6m1s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m52s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m41s
Project CI / Frontend tests (pull_request) Failing after 3m54s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m41s
Project CI / Native shell tests (pull_request) Successful in 6m9s
新增附件与图片 canonical content part 及 ts-rs 绑定
移除 DirectProject Tauri 附件 sidecar 追加路径
修正前端引用字段与生成类型适配
补充附件图片顺序投影测试并同步里程碑文档
2026-09-16 13:03:11 +08:00
k88936
5fb3db662b
合并主线并保留 DirectProject 输入行为
...
合并主线回合队列、工具流展示与活动回合管理
保留 Lexical 单一输入状态及附件图片 sidecar 投影
收敛 DirectProject user item 校验、历史恢复与图片预算
同步输入链路里程碑和历史异常恢复文档
2026-09-16 11:27:09 +08:00
k88936
87b798322e
收敛输入编辑器单一状态并补齐附件投影
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m6s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 1m49s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 1m56s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m2s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m19s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m46s
Project CI / Repository checks (pull_request) Failing after 15s
Project CI / Frontend tests (pull_request) Failing after 3m54s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m13s
Project CI / Native shell tests (pull_request) Successful in 7m14s
聊天与快速编辑输入统一由 Lexical 编辑器持有唯一当前状态
App 通过输入句柄读取草稿,移除跨视图 EditorState 和字符串镜像
DirectProject 将附件与图片 sidecar 投影纳入 prompt,支持附件-only 输入
迁移润色测试并更新 DirectProject 里程碑验收记录
2026-09-15 22:13:25 +08:00
k88936
ec286b3480
抽取通用富文本输入组件
...
新增可复用的 RichTextInput Lexical 输入外壳。
让首页输入与资源引用输入共享编辑器、回车提交和禁用状态。
保留首页附件与图片粘贴节点能力,并移除 DirectProject 草稿 legacy fallback。
统一聊天草稿 canonical content 状态并更新资源引用测试。
2026-09-15 19:42:37 +08:00
k88936
35733f0e33
过滤 canonical 草稿中的空白输入 part
...
在统一 user item 转换入口移除纯空白 input_text,覆盖恢复草稿和所有提交路径。
2026-09-15 17:54:00 +08:00
k88936
3c7b02b9f8
过滤 DirectProject 编辑器的空白内容 part
...
跳过纯空白文本节点并合并相邻文本,避免引用后的分隔空格和换行触发 Rust 空输入校验。
2026-09-15 17:53:33 +08:00
k88936
f2030a616f
复用 DirectProject 用户输入校验读取的 manifest
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 1m44s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m19s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m19s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m17s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m17s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m26s
Project CI / Frontend tests (pull_request) Failing after 3m5s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m51s
Project CI / Native shell tests (pull_request) Successful in 6m21s
让校验返回已读取的 manifest,wire 投影复用同一份数据,避免一次输入重复读取项目清单。
2026-09-15 17:33:49 +08:00
k88936
b3b5d77990
按运行模式创建 DirectProject 回合输入
...
仅在 DirectCodex 产品运行时生成 direct clientTurnId 和 user item,避免旧 Supervisor 与策划链路复用错误身份。
2026-09-15 17:32:46 +08:00
k88936
1da106af7d
避免重复校验 DirectProject 用户输入
...
复用 canonical 到 prompt 投影函数中的校验,删除不可达空 prompt 分支。
2026-09-15 17:29:08 +08:00
k88936
cd2edd6966
移除未使用的 DirectProject 输入信封类型
...
删除未被调用且未生成到前端绑定的 DirectCodexUserMessageEnvelope,收窄内部 API。
2026-09-15 17:27:42 +08:00
k88936
22e830ff93
避免 DirectProject 回合输入的无必要克隆
...
在互斥的观察器分支中移动 optional user item,避免深层 JSON 克隆。
2026-09-15 17:26:34 +08:00
k88936
c266ae7b50
清理策划模式提交后的聊天草稿
...
规划 V2 提交时同步清空资源引用和 canonical content,避免切回 DirectProject 后复用旧输入。
2026-09-15 17:25:15 +08:00
k88936
a543b75cf7
拆开聊天草稿内容分支判断
...
将资源草稿转换的三种回退路径改为显式分支,保持现有优先级并提升可读性。
2026-09-15 17:24:05 +08:00
k88936
f213987f9a
复用资源引用的统一内容映射
...
让 Lexical 草稿读取复用 chatReferenceToContentPart,避免引用字段映射分叉。
2026-09-15 17:22:55 +08:00
k88936
2c623bb577
移除 DirectProject 回合输入的重复赋值
...
删除已在对象初始化时设置的 userItem 重复赋值。
2026-09-15 17:19:17 +08:00
k88936
3353906e6f
修正 Response item content 类型投影
...
区分 turn/start 的 text 与历史 message 的 input_text
将 AGC 私有引用转换为标准 input_text
新增回归测试避免未知 variant text
2026-09-15 16:57:04 +08:00
k88936
17716347e2
收紧历史测试与注释口径
...
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m17s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m7s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m7s
Project CI / Backend tests (pull_request) Failing after 19s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m19s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m17s
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m26s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m43s
Project CI / Frontend tests (pull_request) Failing after 4m6s
Project CI / Native shell tests (pull_request) Successful in 7m29s
移除 legacy 投影描述
将历史测试统一为 Response item 合同
2026-09-15 16:16:03 +08:00
k88936
9ad66a67a3
接入前端 canonical 用户 Response item
...
按 Lexical 顺序构造 message.content
DirectProject payload 改为发送 userItem
策略重试保留同一 canonical item
2026-09-15 16:12:56 +08:00
k88936
ba3aa3ccdb
更新用户 Response item 里程碑进度
...
标记 canonical、wire 与失败关闭验收项
同步实施计划为进行中状态
2026-09-15 16:09:28 +08:00
k88936
2b38eaafba
补充前端用户 Response item 契约测试
...
覆盖 Lexical 文本与引用交错顺序
验证资源引用只发送稳定 resourceId
2026-09-15 16:08:34 +08:00
k88936
7d5b9071e7
删除旧 DirectProject 引用协议
...
移除 DirectCodexTurnReference 平行 DTO 与渲染路径
将引用数量上限收回 canonical user item 校验模块
2026-09-15 16:01:45 +08:00
k88936
9e83f1d88c
补齐 Response item 严格合同测试
...
拒绝资源引用额外身份字段与未知 content part
补充历史 item wire 投影边界测试
同步 DirectProject 历史文档为无 fallback 合同
2026-09-15 15:55:15 +08:00
k88936
7e35d7c344
严格使用 DirectProject Response item 历史
...
移除 game-creator-conversation.v1 读取 fallback
历史注入前逐项投影 canonical user item 为 Codex message
无效 item 在持久化前失败关闭
2026-09-15 15:42:27 +08:00
k88936
5ec40c8b83
抽离 DirectProject 身份解析模块
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m16s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m20s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m4s
Project CI / Backend tests (pull_request) Failing after 18s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 1m54s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m22s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m20s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m36s
Project CI / Frontend tests (pull_request) Successful in 3m45s
Project CI / Native shell tests (pull_request) Successful in 5m27s
将项目 canonical identity 与 digest 放入独立文件
保持 Codex app-server 线程池调用接口不变
2026-09-15 15:22:39 +08:00
k88936
948a80fc49
重构 DirectProject Agent 深模块
...
将 direct_runtime 与 codex_app_server 改为目录模块
拆分 user item 的模型、校验与 wire 投影文件
抽离 DirectProject 历史注入载荷构造 seam
2026-09-15 15:19:17 +08:00
k88936
dfd6fadedf
新增 DirectProject 用户 Response item 契约
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Successful in 4m35s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 4m34s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m36s
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Successful in 4m31s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 4m46s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m32s
Project CI / Frontend tests (pull_request) Successful in 4m0s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m34s
Project CI / Native shell tests (pull_request) Successful in 6m35s
新增 Rust canonical user item 与 Codex wire 转换模块
增加 ts-rs 绑定目录及生成文件检查边界
更新聊天素材引用规范与里程碑实施计划
2026-09-15 14:45:58 +08:00
k88936
1e992bcdf8
扩大未知 JavaScript 异常上报原则
...
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
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
明确所有未解决和非契约化 JS 异常必须继续抛出
说明用户 fallback 不得替代全局 error report 链路
2026-09-14 19:47:08 +08:00
k88936
8368aa262c
补充剪贴板异常上报约定
...
记录 UI fallback 后仍需抛出原始原生错误
明确未知异常必须进入 error report 链路
2026-09-14 19:43:08 +08:00
k88936
e9ddbf16da
重构预览网格步长计算
...
提取预览网格自适应步长到独立模块
补充缩放网格计算与背景样式测试
同步预览画布缩放交互文档
2026-09-14 19:40:13 +08:00
k88936
22ac1f4c0b
修复 UI 编辑器剪贴板写入权限
...
为主窗口补充 clipboard-manager 写文本权限
保留手动复制提示并继续抛出原始 Tauri 剪贴板错误
2026-09-14 19:39:34 +08:00
k88936
9910a0eec0
优化 UI 编辑器复制反馈布局
...
将复制失败提示与操作按钮分离排列
2026-09-14 19:06:15 +08:00
k88936
70981b9ca9
完善 UI 编辑器结果弹窗覆盖
...
增加普通保存成功与保存后生成失败的场景断言
验证路径弹窗和失败重试按钮的可见行为
2026-09-14 19:01:44 +08:00
k88936
8a0d5600b3
拆分 UI 编辑器路径复制按钮
...
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 2m27s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Failing after 2m23s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 2m5s
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Failing after 2m8s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m57s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m15s
Project CI / Frontend tests (pull_request) Failing after 3m22s
Project CI / Repository checks (pull_request) Successful in 3m38s
Project CI / Native shell tests (pull_request) Successful in 6m42s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m12s
Project CI / Backend tests (pull_request) Successful in 8m24s
将剪贴板状态与写入逻辑提取为独立小组件
保持保存结果弹窗只负责结果布局与动作编排
2026-09-14 18:59:51 +08:00
k88936
184d88dbb8
修复多树预览受左侧选中图片限制
...
移除 activeImageId 对预览拖动和缩放手势的门控
按树 wrapper 提供几何上下文并允许任意树操作
保留 activeImageId 仅用于左侧图片与图片级检查
2026-09-14 18:59:51 +08:00
k88936
791794c0a6
记录 UI 编辑器保存结果弹窗约定
...
补充保存与代码生成结果弹窗及相对路径复制行为
记录复制失败、重试和保存并返回边界
2026-09-14 18:59:51 +08:00
k88936
9cfb47d945
补充 UI 编辑器保存结果测试
...
覆盖保存和生成成功弹窗与项目相对路径复制
覆盖保存失败、冲突和剪贴板失败反馈
2026-09-14 18:59:51 +08:00
k88936
27859d3e19
接入 UI 编辑器保存结果弹窗
...
让普通保存和保存并生成流程返回结构化结果
将成功与失败反馈接入独立弹窗并保留保存并返回直返行为
2026-09-14 18:59:51 +08:00
k88936
43f3780a38
新增 UI 编辑器保存结果弹窗
...
新增保存成功、代码生成成功和失败状态弹窗
提供项目相对路径复制按钮及复制失败提示
2026-09-14 18:59:51 +08:00
k88936
a1f9149c27
UI编辑器移除预览模式残留类型
...
完成三开关替代 render mode 的类型清理
2026-09-14 18:59:51 +08:00
k88936
f0bba18841
UI编辑器收口多树上下文菜单目标
...
预览菜单携带所属树 ID
避免非当前图片树的结构操作写错目标
2026-09-14 18:59:51 +08:00
k88936
f679cfa179
UI编辑器完善多树创建与文档契约
...
统一识别和合并结果的 createTree 流程
按选中节点所属树驱动 Inspector 编辑
补充多树预览与树级偏移权威文档
2026-09-14 18:59:50 +08:00
k88936
f68ffcfecd
UI编辑器补充合并树偏移构造
...
为合并产出的节点补齐 NodeOffset
2026-09-14 18:59:50 +08:00
k88936
ec94a4fe00
UI编辑器重构多树预览与独立开关
...
预览画布同时渲染全部界面树并支持树级拖动
拆分显示框线、原图和组件开关
预览节点选择与左侧当前图片解耦
2026-09-14 18:59:50 +08:00
k88936
46f8592375
UI编辑器补充树级偏移模型
...
新增 Node offset min/max 数据结构
统一新树默认横向布局入口
增加树级偏移状态更新操作与实施计划
2026-09-14 18:59:50 +08:00
k88936
cdf2882302
补齐自动切分概览字体属性
...
向 SeparationOverview 传入 fonts 数据
修复 UI 编辑器 TS2741 类型错误
2026-09-14 18:59:50 +08:00
k88936
d156113e71
修复 UI 编辑器待办循环高亮动画
...
修复受控树选中回调清除 Inspector 高亮的问题
循环游标同时使用界面树与节点 ID
补充多节点循环和动画重启回归测试
2026-09-14 18:59:50 +08:00
k88936
a8f2ac17be
注释掉 InspectorSidebar 中的 LayoutEditor 组件以暂时禁用布局编辑功能
2026-09-14 18:59:50 +08:00
k88936
43ac9a5761
补充 UI 编辑器交互回归测试
...
从实际节点事件目标验证删除快捷键
验证 portal 右键菜单启用后会执行操作并关闭
2026-09-14 18:59:50 +08:00
k88936
e992e0b35c
压缩 UI 编辑器概览布局
...
将识别概览指标改为四列横向排列
将素材切分概览改为四列网格以减少纵向高度
2026-09-14 18:59:50 +08:00
k88936
e389b54a3a
修复 UI 预览画布交互
...
为无限视口添加跟随平移和缩放的点阵背景
恢复画布快捷缩放与初始适配比例控制
保留节点平移选择并屏蔽浏览器原生拖拽选择
2026-09-14 18:59:50 +08:00
k88936
84c780a6f8
重构 UI 编辑器全屏外壳
...
通过 portal 将资源编辑器挂载到 body 并覆盖标题栏以下区域
移除外层 FocusTrap,保留内部确认对话框的模态行为
统一左右浮动面板的顶部与底部留白
2026-09-14 18:59:50 +08:00
k88936
03f900fbe5
布局重构:
...
- 预览改为全区域背景层。
- 左右面板、顶部流程条改为覆盖层,可遮挡预览。
- 左右面板开合状态仅保存在当前 React 会话。
- 增加左右面板“收起/展开”入口。
- 编辑器关闭入口改为单独的 ×,继续通过 onBack 注入关闭逻辑。
- 保留全局顶部栏与现有快捷键、业务状态、保存流程。
- 底层页面仍由现有父级路由控制,不新增 URL 状态。
2026-09-14 18:59:50 +08:00