suzmii
|
ddc3832279
|
Merge remote-tracking branch 'origin/master' into feat/game-works-management
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m5s
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 / 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 / Native shell tests (pull_request) Has been cancelled
|
2026-10-04 12:30:52 +08:00 |
|
kdletters
|
13a15fed5c
|
修复 AGC 渠道更新互相终止与快捷方式迁移
Project CI / AI game creator shell Rust crates (push) Successful in 3m5s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 4m24s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 5m20s
Project CI / Backend tests (push) Successful in 6m42s
Project CI / Frontend tests (push) Successful in 3m2s
Project CI / Native shell tests (push) Successful in 7m16s
Project CI / AI game creator shell web tests (push) Successful in 3m17s
Project CI / Repository checks (push) Successful in 6m25s
为 release 与自定义渠道注入独立主程序名,隔离 Windows 更新进程。
新增 release 旧安装目录与快捷方式迁移钩子,保护 dev 历史目录清理。
同步渠道规范、共享决策与排障记录,补充发布脚本回归测试。
|
2026-10-04 11:45:20 +08:00 |
|
suzmii
|
8abc35158c
|
Merge branch 'master' into feat/game-works-management
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m44s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m31s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m2s
Project CI / Frontend tests (pull_request) Successful in 2m21s
Project CI / Backend tests (pull_request) Successful in 6m47s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m51s
Project CI / Native shell tests (pull_request) Successful in 6m18s
Project CI / Repository checks (pull_request) Successful in 5m5s
|
2026-10-04 09:23:45 +08:00 |
|
suzmii
|
9e2cea5b72
|
修复 AGC 壳 Rust shard-4 的两条偶发断言,并补齐 pitfalls 记录
- agent::thread_manager::tests::active_turn_changes_publish_one_notification_per_real_change
偶发 left 8/right 7:测试计数器 DIRECT_ACTIVE_TURNS_EVENT_TEST_COUNT 曾在 2026-10-01 按线程
作用域隔离,2026-10-02 退役 runtime_driver 把它搬进 agent/direct_events.rs 时降级回进程级
static AtomicU64,于是断言会取到宿主 tauri::async_runtime 后台回合在别的线程上的广播
(--test-threads=1 只串行测试线程)。改回 thread_local! Cell,并注明跨线程口径的覆盖取舍
- process_session::tests::process_session_graceful_terminate_keeps_wrapper_alive_for_target_cleanup
偶发 left "exited"/right "terminated":测试命令里 leader 打印 READY 后立刻 exit 0,同组后代
仍存活,trampoline 从 leader 被回收起开始 800ms 宽限;客户端只要晚于宽限才发出 terminate
就只能读到既成事实。改为 leader 用 wait 等后台子进程,让 terminate 必然落在会话仍 running 时
(trap / sleep 0.4 / marker / 断言均未改),并注明该用例的确定性来自 400ms < 800ms 的时间余量
- docs/project-memory/shared-memory/pitfalls.md:更新 graceful terminate 那条已过时的验证口径,
补三条 2026-10-04 条目(tracing interest 竞态、AGC 两条偶发的串台根因、SPA 深链前缀路由)
- 本地实跑:修复前把计数器临时改回 AtomicU64 时同一并行口径 17/20 红;修复后并行 20 次全绿、
agent::thread_manager:: 连跑 5 次 72 passed;第 2 条用例是 #[cfg(target_os = "linux")],
Windows 本机跑不到,已用真实 Linux 内核(WSL Alpine)验证命令形状(leader 活到 TERM、
同组后代完成 400ms 延迟清理 marker=done 0.41s、清理后组内零残留),CI 侧仍需跑
node apps/ai-game-creator-shell/scripts/run-rust-shell-test-shards.mjs --shards=4 --shard-index=4 复核
|
2026-10-04 03:25:54 +08:00 |
|
suzmii
|
c4b3d22042
|
回补 AGC 客户端发布与导出路径的机器级覆盖
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m11s
Project CI / Backend tests (pull_request) Failing after 4m21s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m6s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 6m3s
Project CI / Frontend tests (pull_request) Successful in 3m10s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m42s
Project CI / Repository checks (pull_request) Failing after 3m43s
Project CI / Native shell tests (pull_request) Successful in 6m13s
master 839051f53(PR #568 退役 AGC 自建 Agent Runtime/CLI)整文件删除了
src-tauri/src/tests/project.rs(当时含 128 个用例),本分支合并 783ca014e 采纳了
这次删除,导致其中覆盖「客户端发布/导出」活代码的断言失去全部引用。本次不复活已删
文件,把同域用例按原断言意图重建在 project/export.rs 的现役测试模块。生产代码未改动。
mod publish_export_tests 本次新增:
- publish_build_plan_prefers_game_subproject_and_requires_dependencies:构建计划优先 game 子工程;
缺 game/node_modules 时 needs_dependency_install=true,补齐后为 false。
- publish_build_plan_falls_back_to_root_npm_build:game 无 build 脚本时回落到项目根 npm 工程
(cwd_relative="."、command 取根 build 脚本、不需要装依赖)。
- publish_export_runs_project_build_before_packaging:原型完成后发布先跑项目 npm build 产出
dist/ 再打包,且 .agent/logs/command.log 必须记录一次 project.verify build。
- publish_export_blocks_build_until_runnable_prototype_is_completed:原型未完成时禁止触发用户
项目构建(无 build 标记文件、无 build 日志、错误含「首个可运行原型尚未完成」)。
- publish_export_reports_actionable_error_without_entry_or_build_script:缺可玩入口且没有 build
脚本时失败关闭,错误必须同时给出「还没有可玩入口」与「build 脚本」。
- local_project_export_package_publish_payload_contains_bytes_and_file_digests:发行载荷带
package_size_bytes、64 位十六进制 sha256 与逐文件清单;条目无 game/ 前缀、含 index.html 与
exports/README.md(体积/契约)。
- local_project_export_package_list_only_returns_recent_playtest_zips:包列表只返回
exports/playtest-package-*.zip,按修改时间倒序,忽略非 playtest 文件与非 exports 目录。
- local_project_export_package_list_skips_symlink_packages(cfg(unix)):符号链接试玩包不得列出(安全)。
- local_project_export_package_rejects_symlink_assets(cfg(unix)):assets/ 内符号链接素材必须
整包拒收,且不得留下试玩包(安全)。
- local_project_export_package_rejects_symlink_runtime_dirs_and_readme(cfg(unix)):README 与
运行时目录被符号链接顶替时必须拒收(安全)。
同批提交中另含上一轮已重建的 7 条(同一文件):
publish_stack_validation_{accepts_scaffolded_phaser4_vite_project,
reports_actionable_error_for_phaser3,requires_phaser_dependency_and_vite,
reads_semver_ranges_and_lockfile_versions,rejects_projects_without_npm_build_workspace}、
publish_export_skips_build_when_phaser_vite_entry_exists、
built_project_publish_payload_includes_uploaded_assets_and_prefers_dist_assets。
不适用 / 已覆盖:
- publish_export_skips_build_when_playable_entry_exists(原始版本)已由
publish_export_skips_build_when_phaser_vite_entry_exists 以 Phaser 4 + Vite 语境等价覆盖,不重复。
- 其余域(preview / assets / commands / windows / cli 等)缺口不在本 PR 交付面,未处理。
fixture 适配:unique_project_path 在 HEAD 为私有 fn,改用 crate::tests::canonical_test_tempdir;
随文件删除的 init_existing_html_project_at 与 fake_llm_game_draft 用最小内联 fixture 取代
(内联单文件可玩 HTML + 去掉 npm 工作区脚手架的工程)。
|
2026-10-04 01:18:29 +08:00 |
|
suzmii
|
0bf84e2886
|
消除 AGC 导出测试对 HOME 环境变量的依赖
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m6s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m3s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 6m9s
Project CI / Backend tests (pull_request) Failing after 3m57s
Project CI / Frontend tests (pull_request) Successful in 3m8s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m1s
Project CI / Repository checks (pull_request) Failing after 4m21s
Project CI / Native shell tests (pull_request) Successful in 7m42s
- export.rs:npm_export_tests 的 2 条用例(npm_package_contains_dist_project_root_assets_and_publish_readme、本批新增的 built_project_publish_payload_includes_uploaded_assets_and_prefers_dist_assets)不再用 std::env::var("HOME") 拼临时根,改用仓库既有约定的 crate::tests::canonical_test_tempdir
- 动机:Windows 只设 USERPROFILE、不设 HOME 时,std::env::var("HOME").unwrap() 会以 NotPresent panic;改后与本批另 5 条 publish_export_tests 的临时根口径一致
- 未动断言:两条用例的断言与语义保持不变,只替换临时根来源(canonical_test_tempdir 同样返回 tempfile::TempDir,root.path() 用法不变)
- 验证(同一命令 cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell -- --test-threads=1 project::export::):HOME 未设置(env -u HOME)→ exit 0,test result: ok. 12 passed; 0 failed;HOME=C:/Users/dongy → exit 0,test result: ok. 12 passed; 0 failed
- 顺带核对:project/verification.rs 仍有 1 处同名 HOME 写法,属其它模块范围,本次不动
|
2026-10-04 00:39:26 +08:00 |
|
suzmii
|
759ae616d4
|
Merge remote-tracking branch 'origin/master' into feat/game-works-management
# Conflicts:
# apps/ai-game-creator-shell/tests/gameDistributionPublishLive.test.ts
|
2026-10-04 00:24:45 +08:00 |
|
suzmii
|
6c2518b763
|
回补 AGC 发布前工程栈校验与跳过构建的导出测试
- export.rs:npm 导出用例改名并扩断言,覆盖根 assets 补入与 dist 同名优先
- export.rs:新增 5 条发布前工程栈校验用例(Phaser4+Vite 通过、Phaser3 报可操作错误、缺依赖与非 Vite 失败、semver 区间与 lockfile 版本、无 npm build 工作区失败)
- export.rs:新增 1 条端到端归一化 ZIP 用例(剥离 game 前缀、dist 产物优先、node_modules 与源码不入包、入口引用改相对)
- export.rs:新增 1 条已有可玩入口时跳过 npm run build 的用例
|
2026-10-04 00:16:59 +08:00 |
|
suzmii
|
daae35a1a1
|
AGC 发布版本标签改由工程内部版本派生,拆除 projectVersion 写链路
- shared contracts:resolveGameCreationAppProjectVersion 改为按 manifest.versions 条数派生,删除 isGameCreationAppProjectVersion,projectVersion 注释降级为遗留兼容位
- Rust shared-contracts:删除 resolve_game_creation_app_project_version / is_game_creation_app_project_version / GAME_CREATION_APP_FIRST_PROJECT_VERSION,project_version 注释改遗留位并重写往返测试
- AGC 发布面板:项目版本改为 useMemo 派生只读输入框,删除本地 state、失焦落盘与 onManifestUpdated 回调
- AGC 发布服务:删除 saveGameDistributionProjectVersion,提交版本号缺省改为按 versions 派生
- AGC 原生:发布成功回写与绑定回填不再写 project_version(置空),删除 update_game_distribution_project_version 命令
- AGC 命令注册与白名单:desktop.rs 注销命令、check-config.mjs 移除白名单条目
- AGC 前端装配:App.tsx 移除两处 onManifestUpdated 传递
- AGC 测试:publish/panel 两条测试改为覆盖派生口径,删除四条写回用例
- 注释对齐:game_publish_attempt.rs / project/manifest.rs / styles.css / shared-contracts 的 game_distribution.rs 把版本标签口径改为「由 versions[] 派生」,清掉 projectVersion 遗留位表述
- 文档:decision-log 追加本决策条目,两份 2026-10-02 计划加取代标注,新增 2026-10-03 里程碑与实施计划
|
2026-10-04 00:16:14 +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 |
|
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 |
|
suzmii
|
6edda2ae68
|
Merge remote-tracking branch 'origin/master' into feat/game-works-management
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 4m55s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m19s
Project CI / Backend tests (pull_request) Failing after 4m14s
Project CI / Frontend tests (pull_request) Successful in 2m48s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m36s
Project CI / Repository checks (pull_request) Failing after 3m50s
Project CI / Native shell tests (pull_request) Successful in 6m0s
|
2026-10-03 18:26:19 +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
|
72d6ea2180
|
Merge remote-tracking branch 'origin/master' into feat/game-works-management
Project CI / AI game creator shell Rust crates (pull_request) Successful in 3m5s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m28s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m5s
Project CI / Frontend tests (pull_request) Successful in 2m43s
Project CI / Backend tests (pull_request) Successful in 6m12s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m37s
Project CI / Repository checks (pull_request) Failing after 3m54s
Project CI / Native shell tests (pull_request) Successful in 5m59s
|
2026-10-03 17:06:04 +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
|
3aa3e33ceb
|
实现统一项目发行版本
Project CI / AI game creator shell Rust crates (pull_request) Failing after 56s
Project CI / Backend tests (pull_request) Failing after 23s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 5m7s
Project CI / Repository checks (pull_request) Failing after 21s
Project CI / Frontend 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
Project CI / Native shell tests (pull_request) Has been cancelled
以 projectVersion 作为 AGC 唯一用户版本,支持同版本重复提交和版本回退。
保留 publicationRevision 并发校验与旧客户端自动递增兼容。
|
2026-10-03 16:41:04 +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 |
|
suzmii
|
1621c29cf0
|
Merge remote-tracking branch 'origin/master' into feat/game-works-management
|
2026-10-03 15:43:20 +08:00 |
|
suzmii
|
b1e04e8a7b
|
修正发行资源归一化测试
Project CI / Backend tests (pull_request) Failing after 23s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 5m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m44s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m41s
Project CI / Repository checks (pull_request) Failing after 29s
Project CI / Frontend tests (pull_request) Failing after 1m38s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m46s
Project CI / Native shell tests (pull_request) Successful in 6m5s
使用真实 HTML 资源引用验证根绝对路径归一化,修复 CI 中的转义输入误报。
|
2026-10-03 15:04:45 +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 |
|
suzmii
|
667d1ad6dc
|
合并最新 master 到作品管理分支
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) Failing after 3m13s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 4m21s
Project CI / Frontend tests (pull_request) Failing after 1m39s
Project CI / Repository checks (pull_request) Failing after 1m26s
Project CI / Backend tests (pull_request) Successful in 6m50s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m0s
Project CI / Native shell tests (pull_request) Successful in 6m48s
|
2026-10-03 14:47:40 +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 |
|
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
|
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 |
|
suzmii
|
2eac0975df
|
修复发行资源路径与审核试玩 Cookie
Project CI / Backend tests (pull_request) Failing after 29s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m48s
Project CI / Frontend tests (pull_request) Failing after 1m11s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m18s
Project CI / Repository checks (pull_request) Failing after 42s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 4m13s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m15s
Project CI / Native shell tests (pull_request) Successful in 6m37s
归一化发行包根绝对资源引用并兼容已有发行包,修复正式运行时素材请求跑到本地 Vite 的问题。
审核预览仅拒绝真实平台 refresh Cookie,保留版本绑定 Token 和私有缓存隔离。
|
2026-10-03 13:26:23 +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 |
|
suzmii
|
44f02ee19b
|
完善游戏审核试玩与客户端版本更新
后台审核详情复用公开游戏详情样式,补齐发布者、冻结资料、素材换签和待审 ZIP 试玩。
AGC 保存已发布作品绑定,支持同一 gameId 更新版本并由用户填写目标版本号。
保留 SpacetimeDB 表结构不变,增加版本号请求校验、幂等边界和本地清单字段。
|
2026-10-03 12:35:57 +08:00 |
|
suzmii
|
783ca014ef
|
合并 master 到作品管理分支
|
2026-10-03 12:30:07 +08:00 |
|
k88936
|
10436a641c
|
注释:补充 ShouldContinue 变体的字符串类型设计说明
|
2026-10-03 12:21:39 +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
|
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
|
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
|
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 |
|