Commit Graph

2800 Commits

Author SHA1 Message Date
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 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
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 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
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 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 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 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
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 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 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 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 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
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 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 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 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
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 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 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 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