Commit Graph

3771 Commits

Author SHA1 Message Date
suzmii ef56bc0174 docs: 登记 codex_provider 的 #[allow(dead_code)] 限定例外
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 (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
仓库原有口径明文禁止新增 `#[allow(dead_code)]`(开发运维文档「Rust 编译告警门禁」、
development-workflow「验证路由」)。本次按用户决策登记**限定例外**,两处同步,避免文档与代码自相矛盾。

- 作用域:AGC 壳 `agent/codex_provider`(`app_server` = `agent/codex_app_server/**`,含凭据、模型目录与
  OAuth 交接;`cli` = `agent/codex_cli.rs`,含 CLI 请求路径)。其它 crate、其它目录、其它 lint 与 CI 不受影响。
- 理由:该子树在 AGC 交付口径下休眠(生产恒走平台会话 / DirectProject 路由,原生 app-server 与内置 CLI
  请求入口在 Windows 生产构建里没有调用方),而上游 master 正在活跃编辑这些文件,删除会与其在飞工作反复冲突。
- 失效边界:该子树内今后新增的 `dead_code` 不再被任何机器检查发现;`unused_imports` / `unused_variables`
  等其它 lint 仍必须真修(已实测:allow(dead_code) 压不住未使用的 `use`)。
- 退出条件:该子树被重新启用(恢复个人 Codex OAuth 登录态或原生 app-server 路径)或确定整体退役删除时,
  必须一并移除该 `#![allow(dead_code)]` 并删除登记条。
- 同时修订原「不得模块级 `#![allow]`」一句,指向唯一登记例外。
2026-10-07 14:00:36 +08:00
suzmii 3e13a6e407 合并 origin/master 到 chore/rust-compile-warnings:按 M/D/G 分桶解冲突
origin/master = 441be8d62(落后 143 提交);合并前本分支 HEAD = aeebbee28。
冲突 11 处,按「master 侧是否活跃」分三桶处理。

M 桶(master 改过该文件 → 取 master 版本,不把我们的删除加回去):
- agent/codex_app_server/mod.rs(master +348/-108)
- agent/codex_app_server/model_catalog.rs(master +38/-18:CatalogSource::Authenticated / source_for_credential / verify_authenticated_source)
- agent/codex_app_server/model_catalog/auth_handoff.rs(modify/delete → 保留 master 版,OAuth 轮换交接)
- agent/codex_cli.rs(master +190/-44)
- agent/codex_app_server/model_catalog/real_tests.rs:我们把该文件裁到 59 行以适配自建的 capture 签名;master 的 model_catalog.rs 恢复 4 参 capture 后取回 master 的 244 行用例,否则 --all-targets 报 2 处 E0061。

D 桶(master 未动过、我们删除的死码 → 保留删除):
- 合并前已删:patchset.rs、git_inspect.rs、repository_context.rs、generation/pass_artifacts.rs、agent/runtime_models.rs、debug.rs(+debug/debug_drafts.rs) 等。
- process_session/{io,lifecycle,persistence,recovery}.rs 与 process_session/tests/owner_fixture_cleanup.rs → 裁决为「保留删除」:master 在这 4 个文件里只改「死码的错误正文」;实测整棵子树在 AGC 生产构建里 69 条 dead_code、且只被 tests.rs 引用;生产只用到 recovery.rs 的 2 个 shutdown 函数,而那 2 个我们已搬进 process_session/shutdown.rs。

G 桶(双方都改、我们那侧非语义 → 以 master 语义为准,手工合并):
- agent.rs:取 master 的 claude_code_failure_to_turn_error(改名,codex_app_server/mod.rs:5323 依赖该再导出);保留我们的模块集合(provider_request_snapshot,去掉 runtime_models 与 dispatch 的再导出)。
- thread_manager/dispatch.rs:master 的 host_dropped_with_detail(panic 详情)+ 我们的 cfg(not(test))/cfg(test) 收口(测试态不读兜底结果,避免 harness 未用变量告警)。
- generation/llm_request.rs:取 master 的 AgentProgressEmitter(其唯一消费方 maybe_generate_platform_art_asset_step 已在我们那侧删除,随之成为残留,交由后续提交处理)。
- process_session/model.rs:master 的 8 处错误正文(WindowsProcessJob 的 last_os_error)**全部落在我们未裁的区间**,逐 hunk 叠加到我们的 382 行版本(结果 406 行;last_os_error 出现次数与 master 版一致,均为 13)。
- process_session/shutdown.rs:把 master 在 recovery.rs 里给 shutdown 广播加的诊断搬进我们的实现(`process_session.shutdown.send_failed processId=… detail=…`;收敛后的 LiveProcessSession 不再有 process_id 字段,进程身份取注册表 key)。
- docs/project-memory/shared-memory/pitfalls.md:两侧各新增一节,两节都保留。
2026-10-07 13:59:31 +08:00
k88936 441be8d621 Merge pull request 'Feat/支持fnm nvm' (#663) from feat/support-more-node into master
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 6m22s
Project CI / AI game creator shell Rust crates (push) Successful in 6m25s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m27s
Project CI / Frontend tests (push) Successful in 2m41s
Project CI / Backend tests (push) Successful in 10m17s
Project CI / AI game creator shell web tests (push) Failing after 4m26s
Project CI / Repository checks (push) Successful in 7m34s
Project CI / Native shell tests (push) Successful in 9m49s
Reviewed-on: #663
2026-10-07 13:08:49 +08:00
k88936 2a1e7fb373 Merge branch 'master' into fix/chat-history-style
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 (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-07 11:46:42 +08:00
kdletters 8ceada8690 合并 codex/agc-error-convergence-20261004:交付核心以 master 新设计为准并保留分支错误明细
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 5m43s
Project CI / AI game creator shell Rust crates (push) Successful in 4m52s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 5m40s
Project CI / Frontend tests (push) Successful in 2m48s
Project CI / Backend tests (push) Successful in 7m14s
Project CI / AI game creator shell web tests (push) Failing after 3m50s
Project CI / Native shell tests (push) Successful in 8m27s
Project CI / Repository checks (push) Successful in 7m9s
冲突处理:交付合同/租约相关现场取 master(#608 重构),分支侧错误明细在可安全保留处回补
编译修复:direct_tool_bridge 回执结算失败正文、direct_patch 指纹读取、direct_delivery 终态读取按 Result 形状对齐
前端修复:DirectProjectChatView 取 master,其余缺失的错误正文 import/参数回补
重新生成 AuthServiceUnavailable 绑定以匹配 Rust 声明
2026-10-07 11:33:18 +08:00
k88936 7ed3696959 修复nvm默认别名并补真实nvm沙箱验证
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m41s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m1s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m46s
Project CI / Frontend tests (pull_request) Successful in 3m17s
Project CI / Backend tests (pull_request) Successful in 7m25s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m52s
Project CI / Repository checks (pull_request) Successful in 6m9s
Project CI / Native shell tests (pull_request) Successful in 8m28s
- nvm 的 alias/default 只写主版本号(如 22),改为按同一 pin 子集在已安装版本里选最高匹配,避免按 (22,0,0) 精确匹配永远落空
- 新增 opt-in 真机测试 command_sandbox_real_linux_opt_in_runs_nvm_installation_prefix,在 bwrap 内跑真实 nvm 安装前缀的 node 与 npm
- 新增单测 nvm_major_only_default_alias_selects_the_installed_patch 守住主版本号别名
- 里程碑、decision-log 与 pitfalls 记录真实 nvm v0.40.8 + Node v22.23.3 验证与 default 别名口径
2026-10-07 11:12:49 +08:00
k88936 51e6d1d9b9 AGC命令沙箱原生支持fnm/nvm托管Node
- 新增共享窄叶校验 validate_node_installation_prefix,只接受含 bin/node 与 lib/node_modules/npm/bin/npm-cli.js 的完整 Node 安装前缀,拒绝 HOME、管理器根、宽泛目录和逃逸 symlink
- 开发构建枚举 fnm node-versions/<ver>/installation 与 nvm versions/node/<ver>,按 .nvmrc / .node-version 权威 pin、PATH、engines.node 偏好、活动版本、默认别名、最高版本选择
- .nvmrc / .node-version 能理解但未安装时返回 node-version-pinned-not-installed 失败关闭;engines.node 与无法解析的 pin 不阻塞
- Linux 命令沙箱只读挂载通过校验的完整 Node 安装前缀,并在内联环境剔除 FNM_MULTISHELL_PATH
- Linux npm 改以受信任 node <npm-cli.js> 启动,npm install 联网判定跟随真实启动形态
- 非 Node 程序在 Linux 受信任 PATH 前置 Node 工具链 bin,npx / corepack 等随 node 同版本
- 同步技术方案 V1.11.2、实施计划切片、里程碑规范、decision-log 与 pitfalls
2026-10-07 11:07:16 +08:00
suzmii 43c1b2fe2c 合并 origin/master 到 chore/rust-compile-warnings
合入 master 自 256e6fe34 起的 **159** 个提交(含小红书小工具导出、导出产物面板、发布会话网关等;master 改动 133 文件,本分支 119 文件,重叠 9 个)。

唯一冲突:`apps/ai-game-creator-shell/src-tauri/src/git_inspect.rs` 为 modify/delete(本分支删除、master 修改)→ 按裁决**保留删除**(git rm)。依据:该模块在 master 上仍只有 `mod` + glob 引入、零调用方;master 对该文件的修改只是把 3 处调用从 `should_skip_project_snapshot_path` 换成另一个判断函数 `should_skip_project_derived_path`(该函数在 `project/filesystem.rs` 有定义、共 10 处使用,与旧函数并存,并非全局改名)。

守卫 1:`git_inspect` 在 AGC src 内 **0 命中**;main.rs 未被 master 带回 `mod`/`use` 行;unmerged=0。

守卫 2:四个旧名文件(loop_orchestration/draft_validation/runtime_models/process_session::recovery)在合并树内**均不存在**,四个新名文件均在预期路径;无任何 `??` 条目。

守卫 3:本分支删/改过的 22 个符号全树扫描仅命中 15 处——全部是既有工具 id 残留(prompts 与两侧契约里的 `project.patchset`),无一处来自 master 新代码;master 新前端字符串调用的 3 个 Tauri 命令(append_local_permission_log / save_local_project_asset_file / reveal_local_project_asset_file)均有定义且仍注册。

本提交未附任何额外修改(只包含 master 侧改动 + 冲突解决);①/② 的修复另开提交。
2026-10-07 10:58:04 +08:00
k88936 d860b84a02 「回到底部」胶囊改为基于列表可见底边定位
- styles.css 把消息列表改成 flex 列容器并显式 gap: 0——原 gap: 14px 对块级容器无效,改成 flex 后会与子项的 margin 叠成双倍间距
- 列表子项 flex: 0 0 auto 防止内容溢出一屏时被纵向压缩,列表仍是唯一滚动区
- 胶囊 margin-top: auto:内容不足一屏时吃掉剩余空间顶到可见底边,内容溢出一屏时归零、交由 sticky bottom-3 上拉贴底
- DirectProjectScrollToBottomCapsule 增加稳定类名 project-chat-scroll-to-bottom、去掉 mt-1,并更新组件说明
- ADR 第 3 节与备选方案 2 同步新的定位方式
2026-10-07 10:50:04 +08:00
k88936 c95ea8af85 短历史一屏以内时收起悬空的「回到底部」胶囊
- useConversationScroll 新增 syncBottomFromLayout:按真实几何复核 isNearBottom,为真即恢复跟随、收起胶囊并清掉「有新回复」
- 布局补偿、turns 内容变化与 ResizeObserver/MutationObserver 回调都先走一次复核,内容塌回一屏以内不再依赖滚动事件
- 补回归测试:列表内容塌回一屏以内并触发布局变化,没有任何滚动事件也应收起胶囊
- ADR 第 3 节记录贴底判定不能只认 onScroll
2026-10-07 10:49:56 +08:00
k88936 89d0f507e6 修复连续翻页时历史加载行忽隐忽现
- 加载行卸载加入 300ms 隐藏滞回:填充视口的自动加载连续翻页,两次之间只有一次 effect 回流,立即卸载会把加载行一帧内拆了又挂
- conversationScrollPolicy.ts 新增 HISTORY_LOADING_INDICATOR_HIDE_DELAY_MS,与显示延迟 150ms 配对
- useDelayedFlag 增加 hideDelayMs 参数,值转假后延迟再隐藏,转真仍立即显示
- 补回归测试:连续翻页之间小于隐藏延迟的空隙不卸载加载行,真正结束后照常卸载
- ADR 第 1 节记录隐藏滞回的动机与阈值
2026-10-07 10:49:41 +08:00
k88936 7bcef53494 合并 origin/master 到 feat/adapt-xhs-skill:发布表单吸收平台版本号与买断定价,并合入播放会话网关与导出 Skill 更新
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m16s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m24s
Project CI / Repository checks (pull_request) Failing after 59s
Project CI / Backend tests (pull_request) Successful in 8m46s
Project CI / Frontend tests (pull_request) Successful in 2m31s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m27s
Project CI / Native shell tests (pull_request) Successful in 6m17s
- 发布表单 hook 保留本分支的 hook + 视图拆分,移植 master 的平台版本号回读(nextVersionNumber)、买断定价状态与提交校验,删除由工程内部版本派生的 projectVersion
- GameDistributionPublishFormView 接入只读「项目版本」与共享 PlatformGamePricingField,版本号未知时禁用提交
- DirectProjectComposer 同时保留本分支的草稿回填 / 回写 props 与 master 的 actionsPortalTarget 挂点
- 发布表单测试改用平台版本号 mock(nextVersionNumber: 1),补齐买断定价与缺省版本号禁用用例,并修正 Promise 类型标注
- decision-log.md 保留双方新增条目(小红书导出与 Skill 安装工具 + 播放会话前缀清 Cookie)
2026-10-06 23:28:57 +08:00
suzmii abafb50ef9 docs(agc): 修正矩阵里「release 档注入编辑器 feature」的说法(该组合只对 Windows target 注入)
Project CI / AI game creator shell Rust crates (pull_request) Successful in 6m6s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m54s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m47s
Project CI / Backend tests (pull_request) Successful in 9m12s
Project CI / Frontend tests (pull_request) Successful in 3m37s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m2s
Project CI / Repository checks (pull_request) Successful in 5m20s
Project CI / Native shell tests (pull_request) Successful in 7m8s
行级核实 `apps/ai-game-creator-shell/scripts/cargo-features.mjs:47-51`:`defaultEditorFeatures(target)` 只在 target 为 win32/windows 时返回 `cocos-editor-execute,unity-editor-execute,godot-editor-execute`,否则返回空列表 → CI 的 Linux runner 上 release gate 的 `tauri build` 不带编辑器 feature。

因此改写矩阵的 Native shell tests 行与检查面结论:编辑器 feature 代码在 CI 从不编译(只由本机 Windows + 编辑器 feature 口径覆盖);Linux 上被编到的是 godot/unity/cocos 三个 bridge(由 release gate 的插件随包 staging 与 Rust crates job 的 `agc:plugins:native-test` 编译)——本次 bridge 的 Linux `-D dead-code` 红因就在那里暴露。

同步修正「兜底条件」:现状是 Linux 档只覆盖默认 feature 的 bin 测试 harness 与插件 bridge 编译,`cfg(windows)` 块与编辑器 feature 代码两边都不覆盖。

本提交仍只改这一个文档文件;`npm run check:encoding` rc=0、`git diff --check` rc=0。
2026-10-06 20:32:00 +08:00
suzmii 8d7ac9c8ce docs(agc): 按 CI 实测修正「非 Windows cfg 块不被检查」的错误表述,并写入 AGC 壳编译矩阵
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
纠错:原文写「本机与 CI 都只编译 Windows…非 Windows 块内的名字解析永远不会被编译器检查到」是错的——CI 的 Linux lane 确实在编译 AGC 壳并跑测试(本次四个红因里三个就是被 Linux 档抓到的)。

改为按矩阵的准确说法:本机(Windows + 编辑器 feature)不编译非 Windows 块;CI 的 lane 1/2、lane 2/2(Linux 原生 target、默认 feature、bin 测试 harness + `--test runtime_prompt_bundle_build --test prompt_source_boundaries`)与 Rust crates / Repository checks 的 `check:generated-bindings`(`cargo test --locked … export_bindings`)会编译并运行 unix / linux cfg 代码;`cfg(windows)` 块在 CI 从不编译;编辑器 feature 只在 Native shell tests 的 release 档(`tauri build --features 默认编辑器 features --release`)编译且不跑测试;两侧口径互不覆盖。

给「孤例」结论加脚注,并记录 M1(`command_exec.rs:9-13` 的 linux cfg 裸名)判定:`mod command_exec;`(`src/main.rs:92`)无 cfg 且落在 lane 的编译面内 → 若当初跑过 CI,Linux 档会抓到。

补写两条事实:AGC 壳门禁 predicate 为 `#![cfg_attr(all(not(test), windows), deny(warnings))]`;Linux 档在默认 feature 下对壳报出的 54 条 `never used`(Windows 专用实现被整块剔除的产物)不纳入门禁,CI 也不注入 RUSTFLAGS/-D warnings。同时修正旧「门禁现状」行里过时的 predicate。

新增「CI 对 AGC 壳的编译矩阵」表(8 个 job:命令原文 / target / feature / 是否 --all-targets|--test)与证据出处(workflow 行号、run 3612 job 日志、check-native-shells.mjs / check-generated-bindings.mjs / build-release.mjs 行号)。

自检:本提交只改这一个文档文件(1 file changed, +26/-4);`npm run check:encoding` rc=0、`git diff --check` rc=0。
2026-10-06 20:30:18 +08:00
k88936 3e6d0f39e5 合并 origin/master 到 feat/adapt-xhs-skill:发布入口迁入导出产物面板并吸收发布绑定、内部版本与上传进度
Project CI / Backend tests (pull_request) Failing after 18s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m18s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m28s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m20s
Project CI / Repository checks (pull_request) Failing after 33s
Project CI / Frontend tests (pull_request) Successful in 3m7s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m55s
Project CI / Native shell tests (pull_request) Successful in 8m39s
- 陶泥儿 tab 发布面板去掉前端灰度:删除 readGamePublishAvailability 调用、发布权限占位与对应测试 mock,与 master 删除原生灰度命令保持一致,只在项目清单就绪前显示「正在读取项目清单」
- App.tsx 保留本分支导出产物面板架构,发布入口不再挂 Direct 聊天头;useTaonierTab 收敛 allowed/availabilityPending 状态并同步注释
- 发布表单 hook 合并本分支表单状态与 master 的发布绑定回读、AGC 工程内部版本派生、线上最近提交与上传进度阶段
- GameDistributionPublishFormView 接入发布状态面板、只读「项目版本」标签、发布阶段步骤与「更新游戏」等文案
- 合并发布表单与发布反馈测试:恢复封面/试玩包断言,补 readGameDistributionPublication mock
- agc-skills/manifest.json 取本分支新增的 platform-abstract、vite-export-xhs-minitool 与 master 的三处 sha256,version 提升到 2026-08-26.66
- decision-log.md 保留双方新增条目;技术方案文档补回双方新增章节;玩法链路文档取 master 重写后的发行合同
2026-10-06 20:01:16 +08:00
suzmii 3673f6f92b fix(agc): AGC 壳生产门禁按交付平台收窄到 Windows,修 Linux CI 红因
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 4m39s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m50s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 5m4s
Project CI / Frontend tests (pull_request) Successful in 2m36s
Project CI / Repository checks (pull_request) Failing after 3m34s
Project CI / Backend tests (pull_request) Successful in 9m4s
Project CI / AI game creator shell web tests (pull_request) Successful in 2m54s
Project CI / Native shell tests (pull_request) Has been cancelled
背景(CI run 3603 证据):lane 1/2 在 Linux 上报 `error: could not compile genarrative-ai-game-creator-shell (bin) due to 54 previous errors`,逐条是 `never used`(acl_repair_gate 的 AclRepairGateResult/AclRepairPolicy/ACL_REPAIR_POLICY/LeaderGuard、Windows 策略路径 normalize_windows_policy_path、编辑器 RPC managed_editor_rpc/execute_unity_editor_code/execute_godot_editor_code、process_session_bridge 的 verdict 枚举与桥服务、configure_windows_background_tokio_command 等)。这些项在 Windows 上都被真实调用(本地 Windows bin 口径 0 warning 可证),在 Linux 上因大量 Windows 专用实现被整块编掉而变成未用项。

修法:main.rs 顶部由 `#![cfg_attr(not(test), deny(warnings))]` 改为 `#![cfg_attr(all(not(test), windows), deny(warnings))]`,并把注释写清两个条件(not(test) = 隔离 test harness 实例假死;windows = 交付面是 WebView2/Windows,Linux 构建存在的未用项是“编译剔除”产物)。

CI 无外部 RUSTFLAGS/-D warnings 注入(已全仓核对 .gitea/scripts/package.json),因此 Linux 构建只会把它们当普通 warning,不会红。

同步更新 dev 运维文档「Rust 编译告警门禁」的 AGC 特例条目:记录 cfg(windows) 的来历与 54 条实测数字,并保留 not(test) 的原有说明。

验证(Windows,门禁仍生效):bin 口径 0 warning / EXIT=0;--all-targets EXIT=0(test harness 实例 336 条,全部属测试构建产物);cargo fmt --all --check、npm run check:encoding(5406 文件)、git diff --check 全 rc=0;零新增 #[allow]。

同批还包含:合并 origin/master(merge commit 2a3d1b3d6),满足 CI 守卫步骤 “pull request head 必须包含最新 base commit”(此前 Backend tests 因此 exit=1)。
2026-10-06 19:06:57 +08:00
suzmii 2a3d1b3d65 Merge origin/master into chore/rust-compile-warnings
- 合入最新 base(2 个提交,15 文件),满足 CI 守卫步骤要求的 "pull request head 必须包含最新 base commit"。
- 自动合并无冲突;重叠文件(claude_code_cli.rs / codex_app_server/mod.rs / direct_runtime/mod.rs / config.rs / pitfalls.md / 技术方案文档)均为两侧改动互补。
2026-10-06 19:05:25 +08:00
suzmii c3704072ac docs(agc): 同步 loop_orchestration 改名后的 3 处文档引用(路径 + 事实时态/失效行号)
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 (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
docs/technical/【技术评估】Responses API与Agents SDK迁移评估-2026-09-07.md:29:路径改为 generation/llm_request.rs,并把“仍保留一条文件驱动的确定性生成链”改为过去时(该链已随 Agent Runtime 退役删除,模块现只保留 LLM 文本请求与额度/进度错误面);其后的链路列表保持原样。

同文件:81:表格行内的 `loop_orchestration.rs` 改为 `generation/llm_request.rs`,表格结构未动。

docs/technical/【技术说明】AGC接第三方Provider的兼容性缺陷-2026-08-19.md:91:markdown 链接目标改为 llm_request.rs,并移除已失效的 `:536` 行号引用(该行号在 68 行的现行文件上不存在),链接文字标注原名以便追溯。

只改这 3 处;未新增承诺、未写时间表、未动其它文档内容。

检查:npm run check:encoding rc=0(5406 文件)、git diff --check rc=0。
2026-10-06 18:18:32 +08:00
lhk229 256e6fe346 清理已合入的GameAgent时间上限临时文档
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m51s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m48s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m28s
Project CI / Backend tests (pull_request) Successful in 9m21s
Project CI / Frontend tests (pull_request) Successful in 3m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m28s
Project CI / Repository checks (pull_request) Successful in 7m2s
Project CI / Native shell tests (pull_request) Successful in 8m45s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m15s
Project CI / AI game creator shell Rust crates (push) Successful in 4m34s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m15s
Project CI / Backend tests (push) Successful in 8m36s
Project CI / AI game creator shell web tests (push) Successful in 3m48s
Project CI / Native shell tests (push) Successful in 9m30s
Project CI / Repository checks (push) Successful in 7m41s
Project CI / Frontend tests (push) Successful in 2m57s
删除已完成的里程碑规范与实施计划
移除主规范中的临时文档链接,保留现行合同与验证边界
2026-10-06 11:17:10 +01:00
lhk229 9f1c5df446 规划移除GameAgent宿主运行时间上限 (#652)
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
Project CI / AI game creator shell Rust lane 2/2 (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: #652
Co-authored-by: lhk <ink29535@proton.me>
Co-committed-by: lhk <ink29535@proton.me>
2026-10-06 18:13:39 +08:00
suzmii b7a7860154 docs(agc): 给 Rust 告警门禁补“修剪后名实相符”的收尾判据
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 2m2s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 2m32s
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend 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 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
dev 运维文档「Rust 编译告警门禁」新增一条收尾判据:文件名与模块文档承诺的职责必须与删完剩下的内容一致;只剩单个通用工具函数的文件要并回同族模块或改名,不允许留下“名字是业务模块、内容却只剩一个与之无关的工具函数”的空壳。

该条同时点明本次两个实例的处理方式:repository_context.rs 内容并入 agent/redaction.rs、agent/generation/pass_artifacts.rs 内容并入 project/memory.rs,两个原文件均已删除。

检查:npm run check:encoding rc=0、git diff --check rc=0。
2026-10-06 18:04:59 +08:00
k88936 f3f52dc5e0 小红书导出技能:Chrome 61 能力改为硬性 ERROR,pack 自带白名单
- validate.mjs 恢复 CSS_UNSUPPORTED_PATTERNS / MODERN_RUNTIME_API,命中判 ERROR
- 删除「基线层 + 增强层」写法,references 明确 Chrome 61 为硬基线
- pack.mjs 复制白名单与遍历实现,不再 import validate.mjs
- SKILL.md 参数表补 validate / pack / vite.config 的默认值
- 修正 decision-log 中与本次相反的旧结论
2026-10-06 18:03:00 +08:00
suzmii 28373aabe3 docs(agc): 记录非 Windows cfg 块的静态审计盲区与结论
dev 运维文档「Rust 编译告警门禁」段末尾追加四条事实说明:

①盲区:本机与 CI 只编 Windows,`#[cfg(target_os = "linux"/"macos")]`、`#[cfg(unix)]` 等非 Windows 块内的名字解析不会被编译器检查,`--all-targets` 的 test harness 实例告警又不按废弃代码处理,因此“删了 glob/再导出、只有非 Windows 块还在用”在 Windows 口径下不可见(实例:command_exec.rs 的 linux cfg 块在批次一删掉 crate 根 `use command_sandbox::*;` 后四个裸名只在 Linux 目标下 E0425)。

②覆盖面与结论:全 crate 463 个非 Windows cfg 属性 / 68 文件 / 355 个最外层块;块内 364 个裸 crate 引用、98 个符号;提供方自带 cfg 的仅 6 行且全部消解;四类危险计数(悬空 / not(test) 越用 / windows-only use 被非 Windows 使用点依赖 / 跨平台谓词缺口)全为 0 → 本例是孤例,无待修项。

③兜底条件(若成立才做):若将来出现 Linux / macOS 交付面,CI 应增加对应目标的 `cargo check --all-targets` 作业;当前不新增作业。

④门禁现状:AGC 壳用 `#![cfg_attr(not(test), deny(warnings))]`(src/main.rs),其余 crate 用 `[lints.rust] warnings = "deny"`。

检查:`npm run check:encoding` rc=0(5408 文件)、`git diff --check` rc=0。

注:本次不 push,等用户一并确认后再推。
2026-10-06 17:50:49 +08:00
k88936 727aae5844 AGC 陶泥儿发布表单内联进左栏并把状态提升到面板根
- 陶泥儿 tab 改为左右两栏:左半内联发布资料表单,右半第二个会话 chatbox

- 去掉「发布到游戏广场」二次跳转与弹窗表单,主行动改为内容末尾的橙色「打包并发布」

- 打包并发布一次点击先按需构建打包(沿用进度 / 阻断弹窗),成功后直接提交发布

- 抽出 useGameDistributionPublishForm 与 GameDistributionPublishFormView,弹窗与内联共用同一份表单

- 发布表单状态提升到面板根 useTaonierTab,切 tab 不丢已填资料;只在首次进入陶泥儿 tab 时初始化

- 同步更新发布反馈用例与玩法链路文档
2026-10-06 17:48:58 +08:00
suzmii 09cc0a55c6 docs(agc): 写清 AGC 壳生产口径门禁与 harness 告警边界,并把 OAuth/AuthBridge 段改为已删除叙述
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 (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
dev 运维文档「Rust 编译告警门禁」:补 AGC 壳为何用 `#![cfg_attr(not(test), deny(warnings))]` 而非 `[lints]` 表(同 crate 无 lib 目标、`--all-targets` 会把同一个 bin target 再编一次)。

同节补 `--all-targets` 下 harness 实例告警的来源(`#[cfg(not(test))] fn main()` 被排除 → `generate_handler!`/`desktop::run()` 链不可达,2026-10-06 实测 339 条)与边界:不作为废弃生产代码处理、不在门禁覆盖内、`--all-targets` 无法归零;不做超出事实的承诺。

同节测量命令拆成生产口径(不带 `--all-targets`)与测试口径(带),并写明两条都必须带编辑器 feature,否则 `build.rs` 随包资源校验 panic。

同节覆盖范围与实测基线表更新:AGC 壳 bin 613 → 0(已启用生产口径门禁)、AGC 壳 `--all-targets` 1214 事件 / 1034 唯一 → 339。

技术方案文档 OAuth 契约冲突节:把「仍存在的实现与承诺」改为「当时存在的实现与承诺(已随 2026-10-06 决策删除)」,生产入口一条改为历史事实并注明相关符号已删除;保留 485ed50b2 提交号、PR #439 与章节锚点作为历史证据出处。

同段 :84/:96/:98/:104/:258 的决策与门禁叙述只做事实一致性核对,未改动措辞。

检查:`npm run check:encoding` rc=0、`git diff --check` rc=0、`npm run check:rustfmt`(4 个 workspace)rc=0。
2026-10-06 17:43:56 +08:00
k88936 a96c0e6209 AGC 小红书导出:validate 去 strict 与增强层告警,pack 加落点预警
- validate.mjs:scanJsSyntax 先 stripJsNoise 剥注释与字符串,`"#e8f4ff"` / `'#hit'` 不再误判为 ES2018
- validate.mjs:删除 MODERN_RUNTIME_API、CSS_MODERN_PATTERNS / CSS_MODERN_FEATURE 与 --strict,退出码只由 ERROR 决定
- pack.mjs:--zip-out 相对 cwd 且落在 <cwd>/.export/ 时打 workdir 警告,打印 cwd 与绝对落点
- SKILL.md:产物为项目根 .export/xhs-minitool.zip,game/ 子工程写 ../.export/...;参数表去掉 --strict
- 测试:增强层放行、JS 噪音不误报、真私有字段仍报、warning 也退出 0、workdir 预警
- manifest:vite-export-xhs-minitool 指纹与 version 同步到 2026-08-26.56
- decision-log.md:记录本次 validate/pack 收敛
2026-10-06 17:09:49 +08:00
k88936 df744ae155 新增 agc_install_skill_resource:宿主直落 Skill 附件,复用写入合同门
- 新增内置 MCP 工具 agc_install_skill_resource(skillName/relativePath/destinationPath),宿主直接读 AGC_SKILL_PACK_FILES 已审核字节
- 组装成 agc_write_file 的 {path,content} 转发客户端工具桥,复用同一份合同、lease、项目写锁与保护面校验
- read/install 共用 skill_resource_relative_path_is_unsafe;模型自带正文无旁路,正文不过模型上下文,不依赖原生 cp 审批
- direct-tools.json 增补工具描述与 destinationPath,direct.json engineering 指引改用本工具复制 Skill 文件
- 新增两条 install_skill_resource 测试并登记工具目录;同步技术方案与 decision-log
2026-10-06 16:47:32 +08:00
suzmii e0ea9d2c7f 文档收口:写入 Rust 编译告警门禁口径与 AGC 检查命令
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 3m54s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 3m50s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 4m56s
Project CI / Frontend tests (pull_request) Successful in 2m44s
Project CI / Repository checks (pull_request) Failing after 2m35s
Project CI / Native shell tests (pull_request) Failing after 5m29s
Project CI / Backend tests (pull_request) Successful in 10m36s
Project CI / AI game creator shell web tests (pull_request) Successful in 4m2s
- dev 运维文档新增「Rust 编译告警门禁」整段:口径、落法(workspace lints + 成员继承 + 独立 crate 自持)、依据(--deny=warnings、不改 RUSTFLAGS、CI 缓存不受影响)、覆盖范围、检查命令与实测基线(server-rs workspace 1 → 0、AGC 壳 613 条批次清理中、desktop-shell/三 bridge/4 个 exclude crate 均 0)。
- dev 运维文档在编译警告清理段尾补门禁口径:能直接修的一律修掉、与口径冲突优先改口径、不能修的登记关闭条件。
- dev 运维文档 AuthBridge 条目改为已决策:2026-10-06 不支持用户 Codex OAuth 登录态、统一走中转站,按决策表第一行删除链路,warning 随之归零。
- dev 运维文档 ts-rs 条目补「待上游」关闭条件;Vite chunk 条目补门禁范围与关闭条件。
- dev 运维文档 cfg(not(test)) 拆分边界补「拆分不作为消警手段」;allow 表述收紧为登记后最窄范围使用。
- dev 运维文档 AGC 检查命令(bin 与 --tests)补编辑器 feature,基线句由「复核通过」改为当次快照。
- shared-memory/development-workflow 验证路由补 Rust warning 门禁与「拆分不作为消警手段」。
- shared-memory/pitfalls 顶部新增条目:AGC 壳新工作树缺 gitignored 随包/源码侧产物时 build.rs 报「未声明文件」的真实成因与最小处理。
- AGC 主方案 OAuth 契约冲突节改为已决策(决策内容、日期、执行动作、保留项、关闭条件),SDK 串行工具节的 OAuth 状态同步。
2026-10-06 16:36:49 +08:00
k88936 58f8c2065f AGC 小红书导出 skill:测试按模块命名,取舍记录改回清单
- 隐藏测试 .vite-config.test.mjs 重命名为 .vite.config.xhs-minitool.test.mjs,与 pack.mjs → .pack.test.mjs、validate.mjs → .validate.test.mjs 的命名口径一致;
- .selective_rule.txt 去掉日期段落,把「二次清理」的条目并进 SKILL.md / zip-artifact-spec.md 对应条目,恢复为逐文件「删除与去处」清单;
- decision-log 补记 dist 收尾归 Vite 插件、pack 只读打 zip 的决策、失败语义与验证口径;
- skill-pack 指纹无需重算:本次改动均为隐藏文件与文档,manifest 仍为 2026-08-26.51。
2026-10-06 16:21:19 +08:00
k88936 eccaa5f79c 回退 sandbox 启动失败诊断日志,恢复 application.log 默认脱敏
- 回退 6311bb583:移除 sandbox 启动失败时采集子进程 stdout/stderr 的宿主日志及保留绝对路径的变体;
- application.log 恢复对所有行统一脱敏绝对路径的既有行为;
- 真实 npm 启动故障改从宿主 Node 环境修复,不改日志代码。
2026-10-06 15:41:58 +08:00
k88936 6311bb5837 为 sandbox 启动失败补保留源路径的宿主诊断日志
- `command.exec` 在 sandbox-ready 失败时先取走子进程 stdout/stderr,再终止受控进程组,避免 `Child` 回收时丢掉 bwrap/trampoline 的真实报错;
- 采集结果在有界时间(2s)和字节(8 KiB/流)内读空;新增 `sanitize_diagnostic_message_preserving_paths`、`append_application_log_line_preserving_paths` 与 `app_log_with_paths!`,只做凭据脱敏、保留绝对路径(bwrap `Can't find source path` 的路径就是唯一证据),写入宿主 `application.log`;
- 默认 `sanitize_diagnostic_message` 仍整行脱敏绝对路径,新增项按 `target_os = "linux"` 门控;诊断只进宿主诊断包,不进入模型可见错误、command log、receipt 或 Agent DB;
- 新增 `sandbox_launch_diagnostics_keep_source_paths_and_redact_secrets`,覆盖源路径保留、凭据脱敏与空白流不产出行;
- `pitfalls.md` 记录 sandbox 启动失败丢弃子进程 stderr 的排障经验。
2026-10-06 15:30:36 +08:00
suzmii d2e05dbeb7 Merge remote-tracking branch 'origin/master' into fix/agc-composer-layout
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m3s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m24s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m14s
Project CI / Frontend tests (pull_request) Successful in 3m48s
Project CI / Backend tests (pull_request) Successful in 8m5s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m0s
Project CI / Repository checks (pull_request) Successful in 7m30s
Project CI / Native shell tests (pull_request) Successful in 9m44s
合并 master be9f74f42(付费游玩泥点付费规范 #635 等):保留双方条目/内容
- 唯一冲突:`docs/project-memory/shared-memory/pitfalls.md` —— 本分支 2 条(2026-10-05「PR #607 复核修复」+「模型菜单的观感是组件自带的共享样式面」)在前,master 新增 2 条(「给 shared-contracts 请求 DTO 加字段」+「付费游戏播放会话前缀落在 /api/*」)紧随其后,**两侧 4 条都保留**(grep 逐条命中 1)
- 其余 286 个文件自动合并(master 侧含 server-rs / admin-web / 主站 / vite.config.ts 等,与本分支不重叠;`styles.css` 也是自动合并、无冲突)
- 门禁(本轮只合并、未改内容):`vitest run appSurface + chatDialogFrameLayout + conversationModelSelect` **258 passed / 9 skipped**;`npm run agc:typecheck` pass 3 / fail 0;`npm run check:encoding` 5418 files;`git diff --check` rc=0;prettier 已对合并后的 pitfalls 重新折行
2026-10-06 15:19:31 +08:00
kdletters 2b3585cd3c 放宽真实游戏链路的CC回合上限
将 DirectProject Claude Agent SDK sidecar 的单次回合上限从 8 提高到 16

记录真实客户端在试玩修复阶段触发上限的证据与未完成的重新发送验收
2026-10-06 15:09:17 +08:00
k88936 af19af0a2f 清掉错误类型相关的过时文档
- 删两份 ADR:`AGC命令错误结构化与错误报告口径`、`AGC认证失败的JS侧载体与抛出时机`;错误通道的现行口径只留在代码与该专题技术方案里;
- 删导出面板的【实施计划】与【里程碑】两份计划,落地情况回到技术方案里一句话;
- `docs/README.md` 去掉对上述四份的链接,技术方案里的失败通道段落跟着删;
- `decision-log` 去掉 2026-10-01 那一段,2026-10-05 那段的标题与四条决策改成「同步细节与文案归属」;`pitfalls` 去掉两份 ADR 的引用。
2026-10-06 14:32:16 +08:00
kdletters 2fb2d25a68 记录前端旁路 IPC 与状态写入失败
最近项目、全屏和 ACL 清理失败写入 WebView 诊断

补充旁路错误排障记录
2026-10-06 14:31:00 +08:00
kdletters bfdb11b01b 记录更新重启 IPC 失败
安装后客户端重启失败写入 WebView 诊断

补充更新链路排障记录
2026-10-06 14:25:41 +08:00
kdletters 7fac5d9264 保留任务与对话通知投递错误
资源任务、维护态和 Thread Manager 通知的 emit 失败写入诊断

保留插件项目路径串行更新的前序失败

补充异步通知排障记录
2026-10-06 14:20:34 +08:00
kdletters 0cd906700f 记录窗口控制 IPC 失败正文
最大化、订阅和窗口控制失败写入 WebView 诊断

补充窗口测试隔离边界
2026-10-06 14:13:50 +08:00
kdletters a56ec5b495 记录插件清理与权限审计旁路失败
保留 WebView IPC 与审计日志写入正文

补充旁路错误排障记录
2026-10-06 14:07:49 +08:00
kdletters cc11da1edd 保留插件 RPC 回写失败正文
宿主响应写入失败终止插件 RPC 循环并传给等待调用

补充插件通道排障记录
2026-10-06 14:03:32 +08:00
kdletters 458e0e2a16 补齐进程输出终止通道诊断
输出超限、ConPTY 和读取失败时保留终止控制发送错误
2026-10-06 14:01:24 +08:00
kdletters 6b4e161b5d 保留进程控制通道失败正文
状态落盘失败和关闭流程记录终止或 shutdown 发送失败

补充进程会话排障记录
2026-10-06 13:58:42 +08:00
kdletters 7c298a6899 收口 GUI IPC 事件投递错误
发布、插件、认证、偏好、错误报告和策划事件保留 emit 失败正文

补充 GUI 事件诊断边界
2026-10-06 13:52:49 +08:00
kdletters 98a6d0738c 记录 Direct GUI 事件投递失败
进度、活动回合和 manifest 事件的 IPC emit 失败写入应用诊断

补充 Direct 事件排障记录
2026-10-06 13:48:01 +08:00
kdletters c54c3f7400 修复 CC 执行过程展示
保留无参数无输出的 MCP 工具过程卡片

让完成回合的执行过程默认展开并支持重开查看

补充前端回归测试并同步工具卡片规范
2026-10-06 13:39:02 +08:00
kdletters 11ae36ea81 保留 MCP 解析错误正文
JSON-RPC -32700 响应附带解析器详情而不回显原始请求

补充 MCP 排障记录
2026-10-06 13:33:50 +08:00
kdletters 534fef57e2 保留资源预览失败正文
预览失败态显示宿主返回的脱敏原因

补充资源预览排障口径
2026-10-06 13:24:37 +08:00
kdletters 0b304c92a5 保留模型目录与编辑器未知错误正文
模型目录显示脱敏后的状态与服务端详情

UI 编辑器未知错误附带精确脱敏原因

补充相关回归测试与排障记录
2026-10-06 13:20:57 +08:00
suzmii f0cad9dddc 合并 origin/master(52c83cc2a,248 个提交)到 feat/game-purchase
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m28s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m26s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m41s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m56s
Project CI / Backend tests (pull_request) Successful in 9m4s
Project CI / Repository checks (pull_request) Successful in 7m13s
Project CI / Native shell tests (pull_request) Successful in 10m16s
Project CI / Frontend tests (pull_request) Successful in 2m26s
- 同步 master 侧 248 个提交:会员与泥点计费(PR #588 / #603)、创作者主页与关注粉丝(PR #638)、运行页刷新真重载(PR #640)、AGC 模板 templateVersion 递增(PR #643)等;确认 master 未触碰发行网关与 `api-server/src/modules/game_distribution.rs`。
- 冲突 1(server-rs/crates/module-runtime/src/domain.rs:1157-1162)`RuntimeProfileWalletLedgerSourceType` 两侧各自在末尾追加变体:保留 master 的 `MembershipUpgradeGrant` 为索引 16(线上已落库口径),本分支 `GamePurchase` 顺延为索引 17,并保留其「每账号每游戏一次扣费」注释。
- 冲突 2(server-rs/crates/module-runtime/src/domain.rs:1184-1188)`as_str()` 同时保留 `membership_upgrade_grant` 与 `game_purchase` 两个分支。
- 冲突 3(server-rs/crates/spacetime-client/src/active/mapper/runtime_profile.rs:95-101)bindings→领域枚举映射同时保留 `MembershipUpgradeGrant` 与 `GamePurchase` 两支,按新索引顺序排列。
- 冲突 4(server-rs/crates/spacetime-client/src/module_bindings/runtime_profile_wallet_ledger_source_type_type.rs:43-47)生成枚举按模块源码顺序合并为 …`MembershipUpgradeGrant`、`GamePurchase`;随后 `npm run spacetime:generate` 复核该文件与生成结果逐字节一致。
- 冲突 5(server-rs/crates/api-server/src/admin.rs:4849-4853)sats 索引映射改为 `16 => membership_upgrade_grant` 与 `17 => game_purchase` 两条并存。
- 冲突 6(server-rs/crates/api-server/src/admin.rs:6368-6461)索引断言并入 master 的 `[16] => membership_upgrade_grant`,并把 master 的「17 尚未映射」占位断言替换为 `[17] => game_purchase`;本分支的后台消耗统计两个用例原样保留。
- 冲突 7(server-rs/crates/api-server/src/runtime_profile.rs:219-226)来源文案格式化同时保留 `MembershipUpgradeGrant` 与 `GamePurchase` 两支,注释随 `GamePurchase` 保留。
- 冲突 8(docs/project-memory/shared-memory/decision-log.md:3-24)两条决策记录并列保留:本分支 2026-10-05「播放会话前缀在三处入口清空 Cookie」在前,master 2026-10-03「每日免费发放额为 0 时前端隐藏该池」在后。
- 保住 master 侧:发行响应 ETag/304/gzip(`release_asset_response_with_cache` 五参形态与 `release_asset_etag` / `if_none_match_matches` / `accepts_gzip_encoding` / `gzip_release_asset` / `release_asset_not_modified_response`)、共享加载面 `PlatformGameLoadingSurface` 及其使用方、三池钱包与会员档位目录改造。
- 保住本分支侧:付费作品 404 守卫(`price_mud_points > 0` 且位于 `load_package` 之前)、购买与播放会话网关路由、nginx×3 / Pingora / Vite 的播放会话 Cookie 清空与 `nginx-route-parity.matrix.json` 登记、viewer 感知公开详情、后台审核价格、`PlatformGamePricingField` 共享定价组件与两端接入、AGC 项目版本只读 + 平台派发下一版本号、schema 与迁移白名单、钱包来源 `game_purchase`。
- 验证:`git merge-base --is-ancestor origin/master HEAD` 返回 0;`check:encoding`、`check:doc-index`、`check:spacetime-schema`、`check:server-rs-ddd`、`check:rustfmt`、`check:npm-workspaces`、`check:game-distribution-dto-parity`、`check:game-distribution-price-limit-parity`、`check:pingora-route-parity`、`check:nginx-spa-routes`、根/admin-web/AGC typecheck、`git diff --check` 全绿。
- 测试:`cargo test -p module-game-distribution` 30 passed,`cargo test -p api-server game_distribution` 61 passed,`cargo test -p spacetime-module game_distribution` 7 passed;定向 vitest 28 个文件 252 个用例全通过。
- `npm run spacetime:generate` 除 11 个 procedure 文件的纯空白格式差异外无任何语义改动(`git diff -w` 为空),已保留 master 的生成产物形态,提交内无 schema/绑定语义变化。
2026-10-06 13:12:32 +08:00
kdletters 3d45c26b41 保留 CC 执行过程与失败前正文
无参数工具也展示开始事件,失败终态保留已完成工具与未完成增量历史

补充 CC 失败过程回归测试与排障记录
2026-10-06 13:03:00 +08:00