Commit Graph

6805 Commits

Author SHA1 Message Date
suzmii aa36e691a7 Merge origin/master (0576f0a3c) into chore/rust-compile-warnings:第二轮同步(游戏共创/作品 Fork 等 186 提交)
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
冲突分桶:预检 `git merge-tree --write-tree HEAD origin/master` 返回 0 冲突 ⇒ M/D/G 三桶本轮无需人工分桶,
全部走自动合并;本轮未触碰 codex 区域(`agent/codex_app_server` / `agent/codex_provider` 的挂载与
HEAD 逐字一致),未改 `.gitea/` workflow,未改 `scripts/check-rust-warnings.mjs` 与其判定语义。

同步后收口两处 master 侧遗留:

1. `game_fork.rs` 的两处用例断言调用 `project_has_runnable_prototype`,而该函数随 master 的
   `b04aceb57`(AGC 陶泥儿打包链路落地与 exports 全退役)删掉 `project/export.rs` 一起消失
   ——**master 自己的树就没有定义**(`git grep project_has_runnable_prototype origin/master`
   只有 2 处调用 + 文档,没有定义),所以 master 的 bin 测试 harness 会 E0425。
   本分支同步时就地按最小集恢复该谓词(与 `32714298b` 提升为 `pub(crate)` 的那份逐字同义),
   且只服务本文件用例 ⇒ 按本仓「仅测试使用的项收窄到 `#[cfg(test)]`」的既定口径放进 `game_fork.rs`
   的测试模块,不新增 `#[allow]`、不恢复 `project/export.rs` 整块模块、生产口径零影响。

2. 取 master 版本带来的回流告警登记进 `scripts/warning-baseline.json`:
   `game_distribution_publish.rs | snapshot | unused_variables`(匿名公开读函数
   `get_public_platform_json` 的 `snapshot` 形参在该文件里没被用,随 master 的
   `dab99e82a`「Fork 真实阶段事件 + 公开作品详情读取」进来;master 侧同样报)。
   基线现为:agc-windows **17** / server-rs **0** / agc-linux **72**(本地只能验前两档)。
2026-10-07 21:21:07 +08:00
suzmii 0576f0a3cc Merge PR #622: 游戏共创(作品 Fork)——共创授权与改编血缘、创作族谱、取件与改编闭环
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 3m44s
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
合并方式:merge commit(保留历史,不 squash)。已知回归:AGC 发布面板的共创档位 UI(授权三态/必填 changeSummary/继承只读/工程源包同意/共创栏)本次未随之上线,待按 local://publish-reattach-plan.md 补接;网页上架流程仍可配置档位。
2026-10-07 21:04:17 +08:00
suzmii 888ea76cb2 Merge origin/master (b1c89fbba) into chore/rust-compile-warnings:按「让路 master + 最小集恢复」收口跨文件契约冲突
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
解冲突口径(本次同步 master 16 个提交):

- `agent/generation/canvas_generation.rs`、`command_exec.rs` 两个冲突文件不再整文件取一边,改为按
  hunk 三分法:master 的功能 hunk 全量移植;我们的清理只在 master 调用方不依赖时才保留。
  未恢复整块模块 / 整文件,未新增任何 `#[allow]` / `#[expect]`。
- 成对回退我们的「摘掉 brief 传参空转」清理:master #628 等新代码仍按带 briefs 的契约调用生成链,
  故 cg 的 8 处签名与 6 个调用方(direct_runtime / direct_tool_bridge / commands / commands/desktop /
  asset_generation_tasks)回到 master 形状,并按最小集恢复 `main.rs` 的 `AgentRoleBrief` /
  `AgentGroupBrief`(未恢复其它已删模块)。
- master #628 已收敛切片用途判定:客户端不再暴露/发送 `sliceCount`,本次跟 master 走(
  `PlatformArtAssetGenerationOptions` 不再有该字段),只保留结果侧 256 上限门。
- command_exec 的 `project_command_actual_target` 采用 master 的 `Vec<OsString>` 字节精确契约,
  同时保留我们「调用点全在 Linux 编译面」的 `#[cfg(target_os = "linux")]` 收窄(与 master 调用方不冲突)。
- 脚本缺陷修复:`scripts/check-rust-warnings.mjs` 编译失败不再可能假通过(cargo 退出码非 0 一律 exit 1,
  并把 stderr 尾部提到前面打印;去掉 `warnings.length === 0` 条件)。
- 取 master 版本带来的回流告警 2 条(`main.rs` 两个 brief 结构体的字段未被读)已登记进
  `scripts/warning-baseline.json`(agc-windows 16 条 / agc-linux 71 条,server-rs 0 条);
  按既定口径「不修上游告警」,只做记账。
2026-10-07 21:01:34 +08:00
suzmii 6c5f2175c4 Merge remote-tracking branch 'origin/master' into feat/game-fork
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 4m25s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m11s
Project CI / Frontend tests (pull_request) Failing after 1m38s
Project CI / AI game creator shell Rust crates (pull_request) Failing after 5m39s
Project CI / Native shell tests (pull_request) Failing after 3m46s
Project CI / AI game creator shell web tests (pull_request) Failing after 42s
Project CI / Repository checks (pull_request) Failing after 4m54s
Project CI / Backend tests (pull_request) Successful in 10m28s
# Conflicts:
#	apps/ai-game-creator-shell/scripts/check-config.mjs
#	apps/ai-game-creator-shell/src-tauri/src/commands/desktop.rs
#	apps/ai-game-creator-shell/src-tauri/src/desktop.rs
#	apps/ai-game-creator-shell/src-tauri/src/game_distribution_publish.rs
#	apps/ai-game-creator-shell/src-tauri/src/project/export.rs
#	apps/ai-game-creator-shell/src/components/game-distribution/GameDistributionPublishFormView.tsx
#	apps/ai-game-creator-shell/src/components/game-distribution/useGameDistributionPublishForm.ts
#	apps/ai-game-creator-shell/tests/gameDistributionPublishForm.test.tsx
#	docs/project-memory/shared-memory/pitfalls.md
#	docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md
#	server-rs/crates/api-server/src/modules/game_distribution.rs
#	server-rs/crates/shared-contracts/src/game_distribution.rs
#	server-rs/crates/spacetime-client/src/game_distribution.rs
#	server-rs/crates/spacetime-client/src/module_bindings.rs
#	server-rs/crates/spacetime-client/src/module_bindings/game_distribution_create_game_input_type.rs
#	server-rs/crates/spacetime-module/src/game_distribution.rs
#	server-rs/crates/spacetime-module/src/migration.rs
#	src/components/game-distribution/MyGamesPage.test.tsx
#	src/components/game-distribution/MyGamesPage.tsx
#	src/services/gameDistributionClient.test.ts
2026-10-07 20:56:50 +08:00
suzmii 32dab26426 chore(scripts): 入册 agc-linux 告警基线(CI 首采,69 条)
Project CI / Backend tests (pull_request) Failing after 39s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m15s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 7m9s
Project CI / Frontend tests (pull_request) Successful in 3m56s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m54s
Project CI / Repository checks (pull_request) Failing after 23s
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
来源:run 3729 的 ai-game-creator-shell-rust-lane-2 里新增步骤 “Run AGC shell Rust warning check (Linux)” 的首采输出(该步骤首采模式逐条打印清单、不判失败)。键=路径|符号|lint(不含行号),共入册 69 条;自本条起 agc-linux 档从“首采”转为“只拦新增”。
2026-10-07 20:40:21 +08:00
suzmii 3b59ab3d26 作者本人(owner=1)一律算共创者侧并带上来源标记;游玩页返回改为按来处(新参数 backTo=站内路径,含刷新/深链,站外值拦掉)
Project CI / Backend tests (pull_request) Failing after 34s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m24s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m8s
Project CI / Repository checks (pull_request) Failing after 40s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m26s
Project CI / Frontend tests (pull_request) Successful in 3m5s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m57s
Project CI / Native shell tests (pull_request) Successful in 9m14s
2026-10-07 20:28:13 +08:00
suzmii dfded78508 窄屏清单改单列 224(不截断);共创广场 hero「立即试玩」改「浏览作品」 2026-10-07 20:27:09 +08:00
suzmii a5138d2eca fix(scripts): 补上首采模式逐条打印(上一次编辑未覆盖到)
Project CI / Backend tests (pull_request) Failing after 37s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m44s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 7m46s
Project CI / Repository checks (pull_request) Failing after 28s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 8m14s
Project CI / Native shell tests (pull_request) Successful in 11m10s
Project CI / Frontend tests (pull_request) Successful in 4m3s
Project CI / AI game creator shell web tests (pull_request) Failing after 4m15s
prettier 把 for 循环重排成无花括号形式,导致上一次插入点没匹配上:现在真正逐条打印 [首采] 路径:行 | lint | 符号 + 条数与入册命令;--json 的 report[name].collected 已带上完整条目。实测:临时移除 agc-windows 基线条目 → 首采打印 14 行、exit 0;还原后 14/14 exit 0。
2026-10-07 20:25:21 +08:00
kdletters b1c89fbbae 默认模型目录补上 claude-opus-5-5 的 Claude Code CLI 绑定
Project CI / AI game creator shell Rust crates (push) Successful in 5m5s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 8m28s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 7m34s
Project CI / Frontend tests (push) Successful in 3m26s
Project CI / Backend tests (push) Successful in 8m3s
Project CI / AI game creator shell web tests (push) Failing after 3m38s
Project CI / Repository checks (push) Successful in 7m30s
Project CI / Native shell tests (push) Successful in 9m17s
module-runtime:from_upstream_models 为上游模型 claude-opus-5-5 额外生成一条 agentMode=cc + protocol=anthropic 的目录项,保留原 Codex 条目与默认项,超出目录项数上限时不再追加
module-runtime:新增 claude_code_default_binding 与单测,覆盖 cc 条目生成、协议配对与非该模型不额外生成
docs/project-memory/shared-memory/pitfalls:记录本地目录全是 codex 的现象、默认绑定口径,以及本地 8082 跑的是另一个 worktree(harness 分支)这个环境陷阱
2026-10-07 20:24:26 +08:00
suzmii 8db5861f15 feat(scripts): 告警检查首采模式逐条打印清单(并把条目放进 --json)
collectOnly(尚无基线条目的 profile,如首次 CI 的 agc-linux)以前只打印条数,导致首轮日志里拿不到可入册的键;现在逐条打印 `[首采] 路径:行 | lint | 符号` 并在末尾给条数 + 入册命令,同时在 --json 的 report[name].collected 里带上完整条目;非首采路径的打印与退出码语义不变。
2026-10-07 20:24:15 +08:00
suzmii ce22a682e5 fix(scripts): pre-push 保留原钩子末行、告警检查改按内容触发;文档补基线白名单纪律
.husky/pre-push:refs 先落临时文件→告警检查用 --refs-file 读→exec < 还原 stdin→最后一行仍是 npm run check:pre-push-master -- "$@"(git-hooks.test.mjs 断言逐字不变,故 check:git-hooks 仍绿)。文档:基线 = 告警白名单(显式入册/可审计/可回收)、与 #[allow] 的区别(白名单只吞键相同的那一条)、审计入口 git log -p scripts/warning-baseline.json、SKIP=1 是整段跳过而非入册机制;并修正“feature 分支不跑”的过时表述。
2026-10-07 20:19:15 +08:00
suzmii 823e668c9e feat(scripts): pre-push 钩子对所有分支按内容触发告警检查;CI 挂到已有缓存的 Rust job
本地:.husky/pre-push 无条件调用 node scripts/check-rust-warnings.mjs --only-if-changed(脚本按 refs 判断本次推送是否触碰 *.rs/Cargo.toml/Cargo.lock,不碰则打印一行并 exit 0);推 master 才做 repository parity 的既有约定保持原样。package.json:把 check:rust-warnings 从 lint 链里摘掉(避免 master 推送跑两次、也不拖慢 repository-checks),脚本保留供手工与 CI 使用。CI:ai-game-creator-shell-rust-lane-2 加一步 --profile=agc-linux,ai-game-creator-shell-rust-crates 加一步 --profile=server-rs(两 job 已有 cargo fetch + sccache 缓存);repository-checks 不动。文档同步接法、失败模式与应急放行(GENARRATIVE_SKIP_RUST_WARNINGS=1)。
2026-10-07 20:15:18 +08:00
suzmii 931901069c 游玩页也透传共创来源标记:从共创侧详情进游玩页(及游玩页刷新/再跳)保持 from=co-creation,玩家侧不带;来源写入收敛到导航层 currentCoCreationSource 一处
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m34s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m34s
Project CI / Repository checks (pull_request) Failing after 26s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m46s
Project CI / Frontend tests (pull_request) Successful in 3m15s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m6s
Project CI / Native shell tests (pull_request) Successful in 7m53s
2026-10-07 20:11:17 +08:00
suzmii 5665eaa26a 族谱卡宽统一加宽(清单卡=画布卡,224/148 同一下发);容器改透明、阴影移到卡片;常量按真机重测 265/247/12
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 / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
2026-10-07 20:03:12 +08:00
suzmii 3420eb2cd1 fix(scripts): 告警检查默认复用仓库常规 target 目录(热依赖),并写明 CI 侧代价与待定接线
默认 target 目录改为 cargo metadata 报的 target_directory(开发者本来就在用的、依赖已热),保留 GENARRATIVE_WARNCHECK_TARGET_DIR 覆盖供 CI 使用;fresh 完整性断言仍是安全网(本 profile 的包没被重编就 exit 1 报测量不完整,不会静默给出新增 0)。热目录实测:agc-windows 7.9s、server-rs 9.0s。文档补一句:CI 挂在 repository-checks(有工具链与依赖、不会红,但无 cargo 预热缓存,估 25-40 分钟),接线方案待定。
2026-10-07 20:01:35 +08:00
suzmii 8e2b81007a fix(scripts): 让 Rust 告警取数确定性(挂进 npm run lint;clean 本 profile 包 + fresh 完整性断言 + 精确包集 + first-party 过滤)
接法:挂进 npm run lint(CI 的 Repository checks 与推 master 时的 pre-push 共用那条命令),不新增 job/hook;此前自造的 pre-push 触发接线(.husky/pre-push 改动、scripts/pre-push-rust-warnings.mjs、额外 CI job)已撤。
确定性:profile 专属 target 目录 + 对本 profile first-party 包逐个 cargo clean -p <包名> + 取数后 fresh 完整性断言(每个包必须出现 compiler-artifact 且 fresh=false,否则 exit 1 报测量不完整);只收 first-party 路径前缀下的告警。
修掉两个口径 bug:包集把 AGC 壳下的 vendor/ 路径依赖误算成自己(改精确目录判定);normalizeId 只取 id 的 # 片段导致server-rs 27 个同版本成员碰撞(断言永远为假)。
否决“整体清空 target 目录”:实测 AGC 壳清空后需重建 tauri/webkit 全链依赖 15-25 分钟。
实测:A 干净 agc-windows 1/1·14/14 exit 0、server-rs 27/27·0/0 exit 0;B 播种 unused import → agc-windows 15 条/新增 1、server-rs 1 条/新增 1,均 exit 1 并逐条打印;C 撤销 → 均 exit 0;负向测试(GENARRATIVE_WARNCHECK_SKIP_CLEAN 漏清一个成员)→ 26/27 + 测量不完整 → exit 1。
基线:agc-windows 14 条 / server-rs 0 条 / agc-linux 首采(首次 CI 只采集不判失败,需一次 --update-baseline)。
文档:dev 运维「Rust 编译告警门禁」同步接法、首采、开关、否决清空的原因与局限。
2026-10-07 19:57:17 +08:00
suzmii 8458113c94 修导航高亮:从共创侧进的详情/族谱/对比也高亮「共创」(复用入口来源标记,判定收敛在一处)
Project CI / Backend tests (pull_request) Failing after 22s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m17s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m30s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m27s
Project CI / Repository checks (pull_request) Failing after 26s
Project CI / Frontend tests (pull_request) Successful in 3m13s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m32s
Project CI / Native shell tests (pull_request) Successful in 8m50s
2026-10-07 19:45:55 +08:00
kdletters 47655d880c cc 工具未就绪不再让模型自述
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m41s
Project CI / AI game creator shell Rust crates (push) Successful in 4m42s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m40s
Project CI / Frontend tests (push) Successful in 2m29s
Project CI / Backend tests (push) Successful in 7m18s
Project CI / AI game creator shell web tests (push) Failing after 3m51s
Project CI / Repository checks (push) Successful in 7m43s
Project CI / Native shell tests (push) Successful in 10m4s
claude_code_cli:解析 SDK system/init 的工具清单与 agc MCP 状态并写入 agent.direct_codex.claude_init 日志,让"工具到底有没有下发"变成可查证据
claude_code_cli:init 明确 failed/missing/connected-但无工具且本轮没请求过工具时,判成可重放的 McpUnavailable 并按既有上限自动重试,不再把"我没有任何可调用的工具"这种回复当成功
claude_code_cli:pending/connecting/看不到状态只留证据不判死,真调用过工具的一轮不翻案
claude_code_cli:新增单测覆盖 connected / failed / missing / connected 无工具 / pending / 无 mcp_servers 六种 init 事实,并补 McpUnavailable 的重试策略断言
docs/project-memory/shared-memory/pitfalls:记录同版本"能用工具"与"自称没工具"并存的现场、受控探针结论与现行口径
2026-10-07 19:40:09 +08:00
suzmii efe6138ede 共创页卡片指标改「被共创 N 次」;图谱下父代子代清单改响应式多列;总览图标改 Minimize;详情页两按钮改名开始游戏/开始共创
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 19:36:00 +08:00
lhk229 27e385785f 修正美术包 API 指南、AGC 调用与切片用途判定 (#628)
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
AGC 美术包此前把内容、风格和排布要求放在未被提示词消费的元数据中,并要求恰好四张切片、按返回顺序分配用途。本 PR 完成以下三项修正:

- [x] API 文档:修正整个 `generationInputs` 的定位、保存与读取方式、接口保留/重建规则及已知消费者。任意元数据不会自动进入提示词,服务端行为和校验约束保持不变。
- [x] AGC 请求:美术包将原 brief 和内容、风格、排布要求写入实际消费的 `iconDescriptions`;普通图标入口继续原文单项透传。参考图、比例和尺寸使用正式参数,同步工具说明与随包 skill。
- [x] 客户端切片处理:美术包和直接生图工具不再暴露或发送 `sliceCount`,取消固定四片和按序赋义;按实际产物保存、登记和返回。切片目录按源图集隔离,文件名使用中性序号,普通清单指向真实总图。

四类素材需求只表达内容覆盖,不能证明四个连通区域或固定语义顺序。两个工具返回总图、完整切片路径及资源身份,预览逐项标注路径,未内嵌的图片列出路径供 Agent 查看。Agent 看图识别实体、状态和用途后再接入或处理;有效总图零切片时仍交付并保留告警。

本轮切片改造仅限客户端:服务端 API、请求侧 sliceCount 契约、切分算法和计费行为不变。不新增为数量不符找回、补切或凑数的工作流。保留文件完整性、平台身份、资源预算、事务与重生成恢复;兼容历史四用途产物和旧数量参数账本,旧请求正文、幂等键及 operation 不改写,候选身份不唯一时要求对账。完成结果快照补存切分声明,避免重放丢失响应字段。

验证:

- API 文档阶段:MCP 25 项、External editor API 30 项测试及 OpenAPI 约束等价检查通过。
- 本轮:317 项定向 Rust 测试通过(生成 118、Direct 运行时 93、工具桥 44、MCP 32、账本 6、提示词 24)。覆盖新请求完全省略字段、0/2/4/6 片、目录隔离、完整资源投影、动态事务回滚、旧请求和旧输出槽恢复;已受理任务恢复不新增生成 POST。
- cargo check、rustfmt、skill-pack:check、文档索引、变更文件编码及 git diff --check 通过。
- 未调用真实付费 Provider,未做客户端视觉试玩;PR 保持草稿,等待视觉及产品验收。

Closes #525

Reviewed-on: #628
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-10-07 19:35:20 +08:00
suzmii b846f04dab chore: 加 Rust 告警的 pre-push + CI 基线感知检查(单一脚本 + 基线)
目的:不再用 Werror,改为「推送前 + CI」的显式检查,并且只拦**基线之外的新增**告警,
这样上游新代码的存量不会挡住任何人,本地开发构建也不会因为告警变红。

单一真源(本地与 CI 调同一份实现):
- 新增 `scripts/check-rust-warnings.mjs` + `npm run check:rust-warnings`:
  用 `cargo check --message-format=json` 收集告警,键 = `路径|符号|lint`(**不含行号**,抗上游行号漂移),
  与 `scripts/warning-baseline.json` 比对:新增 → 退出码 1 并逐条打印;存量减少 → 只提示可更新;
  更新用 `--profile=<name> --update-baseline`。
- 新增 `scripts/pre-push-rust-warnings.mjs`:读 pre-push 的 ref 行,**只在本次推送触碰
  `*.rs`/`Cargo.toml`/`Cargo.lock`** 时才跑(无关推送不受影响);Windows 跑 `agc-windows`+`server-rs`,
  Linux/macOS 只跑 `server-rs`。
- `.husky/pre-push`:把 ref 行落一份临时文件供两段检查共用,然后调用上面的脚本(原有的
  `check:pre-push-master` 保持不变)。
- `.gitea/workflows/project-ci.yml`:新增 `rust-warning-check` job(`runs-on: genarrative-ci`,Linux),
  跑 `--profile=server-rs --profile=agc-linux`,复用 Rust lane 的隔离编译缓存,只 `cargo check` 不 build。
- `scripts/warning-baseline.json`:`agc-windows` 14 条(上游 `b04aceb57` 等引入,逐条见
  `local://commit-1a86675f4-inventory.md`);`agc-linux` 433 条(从 CI lane 日志抽取去重,**刻意取超集**,
  含测试实例产物,首轮 CI 的多余项只显示为「存量减少」不判失败);`server-rs` 0 条。
- 文档:dev 运维「Rust 编译告警门禁」改写为现役口径(目的/命令/基线更新/覆盖分工与缺口/局限),
  旧 Werror 段落标注为历史;development-workflow 的门禁句同步改写。

覆盖分工:CI 覆盖 `server-rs` + AGC 壳 **Linux** 档;AGC 壳 **Windows 生产口径**(GTK/ring 无法在
Linux 交叉编译)**只由本地 pre-push 覆盖**。局限:`--no-verify` 可绕过;本机 target 目录污染要先
`cargo clean -p`;CI 不跑 clippy;基线只保证「不新增」。
2026-10-07 19:22:29 +08:00
suzmii 9a844f69a0 revert(agc): 撤回为 Werror 服务、且改动了上游代码的两处
按决策「不要替上游作者修」:这两处改动的唯一目的是让自己的 `deny(warnings)` 不把上游新代码的存量
告警判死,撤销 Werror 后不再需要,且它们动了 master 的文件,故整体撤回。

- revert 1a86675f4:把 master 本轮新代码带来的 14 处告警(`b04aceb57` 等的 exports/bootstrap 退役
  留下的无消费者实现)恢复原样——`project/bootstrap.rs`(113 行)、`project.rs` 的 `mod bootstrap;`
  与 glob 再导出、`project/verification.rs` 的薄包装、`command_exec.rs` 的两个 bootstrap 函数、
  `game_package_upload{,/runtime}.rs`、`export/draft/taonier/{mod,registry,script}.rs` 全部回到 master 状态。
- revert 694b54506:撤掉上面那批里 `resolve_project_bootstrap_spec_at` 的
  `#[cfg(all(target_os = "linux", test))]` 收窄;两个 revert 相抵后该函数就是 **master 原文**,
  `command_exec.rs` 里 Linux 用例仍能编译(此时它只是 Windows 侧的一条告警,不是错误)。

注:CI 修复提交 `ad33d42bc`(process_tree 夹具的硬编码测试路径)**保留**——那是收敛重命名造成的
真实故障(Linux 测试会失败),与 Werror 无关。

这 14 条告警已逐条入册 `scripts/warning-baseline.json` 的 `agc-windows` / `agc-linux` profile,
归属与风险分级见 `local://commit-1a86675f4-inventory.md`。
2026-10-07 19:22:19 +08:00
suzmii a80e7e8e89 revert(agc): 撤掉 Rust warning 门禁的 Werror 接线(AGC deny(warnings) + 各 crate 的 [lints])
按决策:不再用编译器把告警变成错误(`deny(warnings)`/`-D warnings`),改为「本地 pre-push + CI 的
基线感知 warning check」(见下一个提交)。本提交只做撤销,不引入新机制。

- revert 9fbab1a92:删掉 `apps/ai-game-creator-shell/src-tauri/src/main.rs` 顶部的
  `#![cfg_attr(all(not(test), windows), deny(warnings))]` 及其 9 行说明注释(含 3673f6f92 之后的收窄版本)。
- revert c1ad1a19f:删掉 `server-rs/Cargo.toml` 的 `[workspace.lints.rust] warnings = "deny"`、
  27 个成员 crate 的 `[lints] workspace = true`、4 个被 exclude 的独立 crate 与
  `apps/desktop-shell/src-tauri`、三个编辑器 bridge 各自的 `[lints.rust] warnings = "deny"`。
  **保留**该提交里与门禁无关的清理:`server-rs/crates/api-server/src/llm/mod.rs` 中零引用的
  `TEST_AGC_MODEL_DEFAULT_ID`(revert 会把它恢复出来,这里重新删掉,避免新增一条告警)。
- revert 296502333:撤回两处「为让 deny 下的 Linux CI 变绿」而做的 cfg 收窄
  (godot `verified_module_path` 的 `#[cfg(any(windows, test))]`、unity `tests/protocol.rs` 的
  Windows-only import/helper 的 `#[cfg(all(windows, target_arch = "x86_64"))]`)——它们只服务于 Werror,
  撤销后这些文件回到 master 状态,多出来的 Linux 侧告警由基线覆盖。

验证(Windows,取数前 `cargo clean -p genarrative-ai-game-creator-shell`):
- AGC 壳生产口径 bin:EXIT 0 / **14 条告警**(就是上游 `b04aceb57` 等引入的那批,已入册基线);
- `server-rs --workspace --all-targets`:EXIT 0 / 0 告警;
- tip 上 `git grep -n 'deny(warnings)'` 仅剩文档里的历史说明。
2026-10-07 19:21:59 +08:00
suzmii ad33d42bc7 fix(agc): 修 process_tree 夹具的硬编码测试路径(Linux lane 2/2 红,收敛引入)
Project CI / Backend tests (pull_request) Failing after 20s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 6m31s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m25s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m54s
Project CI / Repository checks (pull_request) Failing after 30s
Project CI / Frontend tests (pull_request) Successful in 3m34s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m20s
Project CI / Native shell tests (pull_request) Successful in 9m8s
CI run 3708(head 694b54506)8 个 job:6 成功 / 2 失败。本提交修其中**我们引入**的那一条。

失败 1(我们引入 → 已修):AI game creator shell Rust lane 2/2 → shard 3/4 有 1 例失败
- 用例:agent::codex_provider::app_server::process_tree::tests::shutdown_stops_the_owned_background_writer_and_preserves_proof_scope
- 原始报错:`called Result::unwrap() on an Err value: Elapsed(())`;shard 内重跑该用例仍失败(非偶发)。
- 根因:process_tree.rs 的夹具用 `--exact` 复跑本测试二进制,路径是**硬编码**的
  `const FIXTURE = "agent::codex_app_server::process_tree::tests::owned_tree_process_fixture"`
  (process_tree.rs:307-308,master 原文;该文件本体与 master 逐字节相同)。codex provider 收敛把本模块
  挂到 `agent::codex_provider::app_server::` 下后,`--exact` 匹配 0 个用例 → 子进程不写 marker、
  不打印 TREE_READY → 父进程 `tokio::time::timeout(5s, …).unwrap()` 超时 → Elapsed(())。
- 修法(最小):该字符串同步为新模块路径,并补 2 行说明这个耦合。不改夹具逻辑、不删/不放宽用例、不用 #[allow]。
- 本地验证(Windows + 编辑器 feature):`cargo test -- process_tree::tests` → 3 passed / 0 failed;
  其中 `shutdown_proves_entire_owned_job_exit_and_keeps_sibling_running` 修复前 FAILED(同 Elapsed(()))、
  修复后 ok。cfg(unix) 的那条本机不编译,但走同一夹具常量,机制一致。
- 同类排查:全 crate 共 11 处「硬编码测试路径」字面量,逐条核对后**只有这一处**因本分支的模块搬迁失效
  (`direct_tools_mcp` / `builtin_plugins` / `command_exec` / `command_sandbox_trampoline` /
  `environment_check::web_creation::ownership` / `windows` 的路径本分支未改名,仍与真实模块一致)。

失败 2(上游自带 → 未修,只给证据):AI game creator shell web tests → `directThreadChat.test.ts`
- 失败用例 `DirectProject 聊天 reducer > 系统条目与未识别的 item 类型不进聊天视图`:
  `AssertionError: expected [ { itemId: 'sys-1', …(5) } ] to have a length of +0 but got 1`
- 证据:① 本分支与 origin/master 在 `apps/ai-game-creator-shell/{src,tests}` 与 `packages/**` diff 为空
  (零前端改动);② master 自己的 run 3715(head 9cd290362)同一 job 同一用例同一断言同样失败
  ⇒ master 自带红色,与本分支无关;不擅自改、不合别人的分支。

验证(取数前 cargo clean -p genarrative-ai-game-creator-shell):bin EXIT 0 / 0 warning;
--all-targets EXIT 0(harness 实例 382);check:rustfmt / check:encoding(5549 文件)/ git diff --check 全 EXIT 0;
六组测试 6 / 17 / 74 / 1 / 65 / 4 全部 0 failed;另 process_tree::tests 3 passed。
2026-10-07 18:39:14 +08:00
suzmii d9cba5e402 详情页差异改由「入口上下文」驱动:导航层按当前一侧写 from=co-creation,玩家侧(游戏 Tab/广场/搜索/收藏/我的游戏/默认深链)不看血缘与共创标签、开始共创弱化;登录态只决定能否共创
Project CI / Backend tests (pull_request) Failing after 34s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m48s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m1s
Project CI / Repository checks (pull_request) Failing after 25s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m10s
Project CI / Frontend tests (pull_request) Successful in 2m30s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m32s
Project CI / Native shell tests (pull_request) Successful in 7m24s
2026-10-07 18:06:21 +08:00
suzmii ffd7510143 feat(游戏共创): 公开投影新增 coCreationCount(公开可见的全部后代数)
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
会议口径:共创页卡片要突出「共创次数(= 该作品有多少个子项目/衍生作品)」。前端已按 `coCreationCount`
接字段(TS 侧先声明 ⇒ 上轮 **dto parity 变红**:`GameDistributionGame 多出未登记字段/变体:coCreationCount`),
本提交把服务端补齐并让 parity 回绿。

- **字段**:公开投影新增 `coCreationCount`(Rust `co_creation_count: u64`)= **该作品子树里「公开可见的全部后代」
  数,不含自己**;沿血缘边 BFS 整棵子树,只数「未软删除 + 已公开」的后代(与 `forkCount` 同一批规则
  `module_game_distribution::counts_as_public_derivative`,只是深度不同)。已删/未公开的后代不进任何一层计数;
  **中间作品不可见也不断链**(它可见的后代仍计入祖先);血缘环/自引用按 visited 去重,自己永不计数。
- **与 `forkCount` 并存、互不推导**:`forkCount` = **直接**子代(「被改编 N」),`coCreationCount` = **全部**后代
  (「共创 N」);同卡上前者 ≤ 后者。
- **发出范围**:公开投影**恒发**(公开目录、公开详情、我的收藏、主题成员 `roots` 都走同一个 `public_game_payload`);
  **无后代时发 `0` 而不是缺键**;作者侧同形响应不发(与 `currentVersion`/`ratingSummary` 同类)⇒ 前端读取建议
  `coCreationCount ?? forkCount`。
- **算法与成本**:在 spacetime **只读事务内现算** —— 先建一次 `PublicDerivativeIndex`(父→直接子代边 + 可见性集合),
  再对本页每行做一次 BFS 子树计数(visited 去重);目录/详情/收藏/主题各自事务内建一次。
  **不新增表/列/索引、不落物化计数,api-server 只发键不遍历**;边际成本 O(作品数)(当前 51)。
- **契约/门禁**:parity 的 `public_game_payload` 构建器 `mustEmit` 把 `coCreationCount` 与 `forkCount` 一起钉住
  ⇒ **parity 由红转绿(EXIT 0)**;TS 契约里两字段注释改为最终口径。
- **文档**:主规范公开投影一行写明两字段口径、BFS 算法与成本。
- **测试**:+4(根带 3 直接子代、其中一个再带 1 孙代 ⇒ **`forkCount == 3`、`coCreationCount == 4`**;无后代两键恒发且为 0;
  不可见后代不计且**中间不可见不断链**;环/自引用安全)→ `module-game-distribution` **153 passed**。

门禁:`cargo check --all-targets` 0;`cargo test -p module-game-distribution` **153 passed**;
`cargo test -p api-server game_distribution` 见下文;**`check-game-distribution-dto-parity` 0(66 组 / 19 构建器 /
15 手拼类型)**;`check:spacetime-schema` 0(98 表);`cargo fmt --all -- --check` 0;`git diff --check` 0。
2026-10-07 18:02:13 +08:00
k88936 9cd290362c Merge pull request 'fix/#663回归问题' (#665) from feat/support-more-node into master
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m28s
Project CI / AI game creator shell Rust crates (push) Successful in 4m11s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m51s
Project CI / Frontend tests (push) Successful in 3m14s
Project CI / Backend tests (push) Successful in 7m50s
Project CI / AI game creator shell web tests (push) Failing after 4m22s
Project CI / Repository checks (push) Successful in 7m51s
Project CI / Native shell tests (push) Successful in 10m9s
Reviewed-on: #665
2026-10-07 17:54:36 +08:00
suzmii e349bc696a 族谱画布打磨:角标搬回封面下方并去掉 ▶N/世代重复项、可读下限 0.8 且横向铺满、视图形态改分段控件、缩放图标改 ±(卡片常量按实测重标 260/222/24)
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 17:51:49 +08:00
suzmii 30ea1ee246 详情页按观看者角色分游客/共创者:游客不渲染血缘图与族谱入口、不显示共创标签,「开始共创」降为次要小按钮(isCoCreator 谓词驱动) 2026-10-07 17:51:40 +08:00
suzmii c99d92665c 共创页 hero 文案对齐:卡片已无动作按钮,改说「点开作品详情里的开始共创」
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 17:47:25 +08:00
suzmii cc9c3f7be1 共创升为侧边栏顶层入口(桌面+窄屏),删游戏页子页签;共创页卡片加「共创 N」次数角标(coCreationCount 优先、回退 forkCount)
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 17:44:15 +08:00
lhk229 b4dd80621e 合并 CI 领取冲突修复 (#671)
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
修复已回滚的任务分配冲突导致网关永久锁定,同步回归测试及运维文档。
2026-10-07 17:20:29 +08:00
lhk229 d7ddf5fbc1 修复 CI 领取冲突导致网关永久锁定
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust 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
识别 Gitea 已回滚的任务分配冲突,允许 runner 正常重试。
保留未知响应与未完成领取的保护,增加脱敏原因日志。
补充冲突重试及错误边界测试,同步部署文档与共享记忆。
2026-10-07 09:20:04 +00:00
suzmii 694b545062 fix(agc): 修 Linux-only 悬空引用 D1,并补同类静态排查(非 Windows cfg 块)
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m16s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 5m9s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m7s
Project CI / Frontend tests (pull_request) Successful in 3m34s
Project CI / Backend tests (pull_request) Successful in 8m30s
Project CI / AI game creator shell web tests (pull_request) Failing after 2m58s
Project CI / Repository checks (pull_request) Successful in 6m47s
Project CI / Native shell tests (pull_request) Successful in 9m33s
D1(由 1a86675f4 引入):该提交删掉了 master 定义的 `resolve_project_bootstrap_spec_at`
(原 command_exec.rs:645 + 生产包装 :2500),但同文件 `#[cfg(test)] mod tests` 里
`#[cfg(target_os = "linux")] #[test] fn npm_command_targets_node_plus_npm_cli_on_linux`
仍在调用它(command_exec.rs:2641)⇒ Linux 测试目标必然 E0425;Windows 生产口径看不见(cfg 盲区)。

修法(取"按真实使用面收窄"这一支):按 master 原文恢复该函数,并加
`#[cfg(all(target_os = "linux", test))]`:
- 比同文件先例 `project_command_actual_target` 的 `#[cfg(target_os = "linux")]` 更窄——那个函数
  Linux 生产仍在调用(沙箱启动路径),这个的唯一生产调用方 project/export.rs 已被 master 删除,
  只剩本文件用例调用,故按实际使用面写成 all(target_os="linux", test),避免在 Linux 生产里留下一枚死函数。
- 引用侧有效 cfg = `#[cfg(test)] mod tests` + `#[cfg(target_os = "linux")]` 用例 = all(test, target_os=linux),
  与定义侧一致 ⇒ 「引用 1 处 / 定义 1 处(同 cfg)」。
- 函数体与 master 逐字相同;未删用例、未删断言、未用 #[allow]。

同类排查(1a86675f4 里删掉/收窄的每一项符号 × 引用 × 定义 × cfg):
1. GAME_PACKAGE_UPLOAD_PROGRESS_EVENT(常量及其再导出)→ 删除;tip 引用 0 ⇒ 无悬空。
2. run_project_bootstrap_command_at → 删除;引用 0 ⇒ 无悬空。
3. project/bootstrap.rs 整模块(BOOTSTRAP_PACKAGE_MAX_BYTES / ProjectBootstrapResult /
   read_bootstrap_file / run_project_bootstrap_at)+ project.rs 的 `mod bootstrap;` 与
   `pub(crate) use bootstrap::*;` → 删除;`bootstrap::` 与 `run_project_bootstrap_at` 引用均为 0 ⇒ 无悬空。
4. run_project_verification_with_commit_at → 删除;引用 0 ⇒ 无悬空(下游
   resolve_project_verification_spec_with_cwd_at 另有 taonier/build.rs:82 与 xhs_minitool/build.rs:46 调用,未受影响)。
5. TaonierArtifactPackage 再导出 → 移除;3 处引用全在 build.rs(定义/返回类型/构造)⇒ 无悬空。
6. read_form → 删除;引用 0 ⇒ 无悬空。
7. ensure_staging_path_in_dir → 收窄为 `#[cfg(test)]`;引用 3 处 = 定义 + 同文件 `#[cfg(test)] mod tests`
   两处 ⇒ 兼容(test ⊆ test)。
8. NpmScript.package_json_relative 字段 → 收窄为 `#[cfg(test)]`;读取处两处用例断言(cfg(test))+ 构造处
   亦已 cfg(test) ⇒ 兼容;同名自由函数仍属生产并被 script.rs:76 使用。
9. resolve_project_bootstrap_spec_at → 本次按 D1 处理(见上),引用/定义各 1 处且 cfg 一致。

静态复查(方法自定):对 AGC 壳全部 321 个 .rs 建「定义名 → cfg 链」与「use 绑定名」表,按 `#[cfg]`
属性 + 花括号深度重建每行的有效 cfg 链,筛出非 Windows 块(target_os=linux/macos/…、unix、
not(windows))共 7315 行,再统计三类危险计数:
- ① 悬空(master 有定义、tip 无定义的名字在非 Windows 块仍有引用):3 名 9 处命中,逐条核对全为假阳
  (`"git"`/`"running"` 是字符串字面量;`process_identity` 是模块路径的另一符号)⇒ **0**。
- ② windows-only 定义被非 Windows 块引用:3 名 23 处,全为假阳(`is_empty` 是 std 方法调用;
  `platform_art_windows_directory_open_policy`、`resume_suspended_tokio` 位于嵌套的
  `#[cfg(windows)] { … }` 块内,是启发式未下钻)⇒ **0**。
- ③ not(test) 越用:3 名 4 处,全为假阳(`main`/`startup` 是字符串;`set_external_agent_runner_config_dir`
  的 cfg 是 `any(not(test), unix)`,unix 测试构建中存在,且命中行是该定义行本身)⇒ **0**。
说明:`cargo check --target x86_64-unknown-linux-gnu` 在本机跑不通(GTK/webkit 的 -sys 与 ring 需要 Linux
工具链,pkg-config 无法交叉配置),故 Linux 侧证据以静态法给出;master 侧的非 Windows 改动由 master 自己的
Linux CI 兜底。

验证(Windows + 编辑器 feature;取数前 `cargo clean -p genarrative-ai-game-creator-shell`):
AGC bin EXIT 0 / 0 warning(18 条 serde 宏提示非 lint);AGC `--all-targets` EXIT 0(harness 实例 382 条);
`npm run check:rustfmt` / `npm run check:encoding`(5549 文件)/ `git diff --check` 全 EXIT 0;
六组测试 6 / 17 / 74 / 1 / 65 / 4,全部 0 failed。
2026-10-07 17:11:38 +08:00
suzmii 21582cedc2 连线锚点:每条边(含扇出)钉住父底中点/子顶中点;规范补锚点定标(真机 14 端点 Δx=0.00)与紧凑卡 182
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 17:07:14 +08:00
suzmii 0aaa8bbf6c 紧凑卡常量按窄视口实测收紧:390/360 宽下两行标题实测 196px ⇒ 182/+20
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 17:02:12 +08:00
suzmii 1a86675f4c chore(agc): 清掉本轮 master 新代码带来的 14 处生产口径告警(最小修,无 #[allow])
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
背景:本 PR 的 AGC 壳 warning 门禁只覆盖「Windows 生产口径」,master 侧没有该门禁;本轮同步进来的代码
(陶泥儿导出/发布链路退役、bootstrap 退役)留下 14 处 never used / unused import。已逐条与上一轮合并点
`d5e26a68f` 比对确认:**不是我们删除造成的连带**,全部是 master 本轮自己新引入的。

逐条(文件:行 → 处理):
1. game_package_upload.rs:19 unused import `GAME_PACKAGE_UPLOAD_PROGRESS_EVENT` → 从再导出列表移除。
2. game_package_upload/runtime.rs:11 `GAME_PACKAGE_UPLOAD_PROGRESS_EVENT` 常量 → 删除;生产调用点已被
   b04aceb57(exports 全退役)删除。
3. game_package_upload.rs:73 `ensure_staging_path_in_dir` → `#[cfg(test)]`;生产调用点同样被 b04aceb57 删除,
   当前只剩本文件的用例调用。
4. command_exec.rs:645 `resolve_project_bootstrap_spec_at` → 删除。
5. command_exec.rs:2500 `run_project_bootstrap_command_at` → 删除;唯一调用方 project/export.rs 已被 master 删除。
6. project/bootstrap.rs → 整文件删除(唯一入口 run_project_bootstrap_at 失去唯一调用方),并移除 project.rs 的
   `mod bootstrap;` 与 `pub(crate) use bootstrap::*;`。
7. project/verification.rs:662 `run_project_verification_with_commit_at` → 删除;两个调用方(project/export.rs、
   xhs_minitool/build.rs)均已由 master 改动删除;下游文档里对它的 intra-doc 链接改为不带链接的描述。
8. export/draft/taonier/mod.rs:25 再导出 `TaonierArtifactPackage` → 移除;结构体本身仍被 read_artifact_package 使用。
9. export/draft/taonier/registry.rs:88 `read_form` → 删除;全仓无调用方。
10. export/draft/taonier/script.rs:22 `NpmScript.package_json_relative` 字段 → `#[cfg(test)]`(只有用例读取;
    未删除任何用例或断言)。

不使用 `#[allow]`,不删除业务校验与用例,不引入假引用。AGC 壳生产口径恢复 0 warning / EXIT 0。
2026-10-07 16:59:13 +08:00
suzmii 47b5a17f54 合并 origin/master 到 chore/rust-compile-warnings(第二次同步):按 M/D/G 分桶解冲突
origin/master = e6933762d(落后 106 提交);合并前本分支 HEAD = 1612ee944。
冲突只有 5 处,codex 区域 0 冲突。

M 桶(master 改过的文件 → 取 master 版本,不把我们的删除加回去):
- agent/codex_app_server/**(mod.rs、model_catalog.rs、model_catalog/auth_handoff.rs、real_tests.rs)、
  agent/codex_cli.rs、agent/codex_provider_proxy.rs、build_support/codex_bundle.rs 均与新 master 逐字节相同。
  其中 real_tests.rs / codex_bundle.rs / direct_project_identity.rs 一并取 master 版本,清掉了本分支先前
  在这几个文件里留下的多余 diff(口径:codex 区域一行不删不改)。
- 唯一保留的 codex 侧差异是 codex_app_server/mod.rs 的 1 行:resolve_direct_codex_project_authority
  的 `pub(super)` → `pub(in crate::agent)`。挂载到 codex_provider 后 `pub(super)` 对兄弟模块
  direct_tools_mcp.rs 不可见(E0603),这是收敛必需的适配,不是清理残留。

D 桶(master 未动过、我们删的死码 → 保留删除):patchset.rs、git_inspect.rs、
process_session/{io,lifecycle,persistence,recovery}.rs、generation/pass_artifacts.rs、
agent/runtime_models.rs、debug.rs(+debug/debug_drafts.rs)、process_session/tests/owner_fixture_cleanup.rs 等。
⚠ 复核发现 D 清单里 3 个文件本轮被 master 改过(`git log a8ae81720..origin/master -- <path>` 非 0),逐条判定:
  - repository_context.rs(ad0877219:should_ignore_directory 的 "exports" → ".export"):该函数所在的
    仓库扫描实现已在更早的退役批次(6d5436541)判为不可达并删除,全仓已无该符号 → 改动无处生效,保留删除。
  - generation/pass_artifacts.rs(b04aceb57:黑板字符串去掉「发布包装:exports/README.md」):内容已并入
    project/memory.rs(fbea59251),全仓已无该字符串 → 无需承接,保留删除。
  - generation/draft_writer.rs(b04aceb57 −16:删掉 exports/README.md 写入):属 legacy draft 生成链,
    已在 22540a874 整体退役;全仓 grep 0 引用,恢复只会留下未挂载的孤立文件 → 保留删除。

G 桶(双方都改、我们那侧不改变行为 → 以 master 语义为准):
- agent/generation/trace.rs:唯一冲突块里 master 只把 "exports/README.md" 从产物清单里删掉,而该函数
  (append_local_artifact_write_step)已由我们在退役批次里整段删除 → 保留我们的删除。
- useGameDistributionPublishForm.ts:master 本轮删除该文件(b04aceb57),我们侧只有上一轮同步带来的错误
  正文改动 → 取 master 语义(删除)。

其余文件由 git 自动合并。本提交不含新写的功能改动:收敛形态与残留清理见后续提交。
2026-10-07 16:58:52 +08:00
suzmii 37395894c5 图谱卡常量按广场卡实测重算(214/20、每行 10 字、紧凑 210)+ 规范同步卡统一口径
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 16:56:58 +08:00
suzmii 5905eaabf9 图谱卡改用广场卡组件(GameCard):卡面去掉动作按钮、整卡点击进详情、角标走卡面 badge 槽;共享卡纯加法扩展(结构化子集+badges+className)
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 16:50:40 +08:00
suzmii 832c1787f9 主操作行不再内联状态文本:状态/警告改走平台 toast(复用 PlatformRuntimeStatusToast + portal 宿主),手动面板改 portal 浮层,行内子项不收缩不换行
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 16:28:34 +08:00
suzmii 9329b0f842 收干净两处残留:封面内层 min-height 归零让 img 盒等于 16:9 封面盒;全屏 overlay 画布按视口减去头部+工具栏吃满一屏(口径写进规范)
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 16:18:22 +08:00
suzmii afb538ca8f 样式与规范:搬出卡片的按钮脱离卡内作用域并按平台度量对齐、封面强制 16:9 铺满、全屏 overlay 样式;同步 §3.6.1 交互口径
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 16:12:45 +08:00
suzmii a3fc88d3ab 控件与全屏:滚轮改竖向平移(Ctrl缩放/Shift横移)、适应窗口改名总览、ZoomOut/ZoomIn 图标、全屏查看族谱改 portal 真全屏 overlay
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 16:12:37 +08:00
suzmii dba4734e01 修复图谱点不动:只有超过拖动阈值才 setPointerCapture/拦默认,纯点击走原生 click
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 16:00:50 +08:00
suzmii 1612ee9446 docs: 补充 PR #650 合并 master 后的实测基线复核
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
同机同 feature、先 `cargo clean -p genarrative-ai-game-creator-shell` 再取数:
- server-rs workspace(--all-targets):0
- AGC 壳 bin 生产口径:0
- AGC 壳同 feature + --all-targets:bin test harness 实例 351 warning 事件(全部落在 master 侧
  既有文件,agent/codex_provider 子树内 0 条),仍属文档「边界」所述的 harness 产物。

原表记的是 2026-10-06 的 339,这里不覆盖历史快照,只补一条带日期的复核。
2026-10-07 15:52:12 +08:00
suzmii c6677e1323 清理:删除零引用的 CoCreationHotDerived 及其 .co-creation-hot* 样式(热门衍生栏已并入图谱页子代块)
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 15:51:52 +08:00
kdletters e6933762d2 cc 回合静默超时改为宿主自动重试
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
claude_code_cli:一次用户回合最多尝试 3 次,只有"静默超时 + 本轮没请求过任何工具"才自动重放,硬上限与已请求工具的超时仍交回用户
claude_code_cli:抽出 claude_direct_turn_once / ClaudeDirectTurnFailure / claude_direct_failure_action,重试策略变成可单测的纯函数
claude_code_cli:每次重试前落一条 role=system 过程行(正在自动重试(第 N/M 次)),停下时也说明原因,避免"没有重试"又被读成静默兜底
claude_code_cli:失败详情尾部的重试次数标记由分类器还原成结构化 attempts 并摘除,用户可见的"已尝试 N 次"与实际尝试次数一致
claude_code_cli:新增三条单测覆盖重试策略矩阵、静默超时/工具已请求的判定、attempts 结构化与标记不外泄
docs/project-memory/shared-memory/pitfalls:记录现象、CLI 自身不重试的真实二进制证据、现行重试口径与验证方式
2026-10-07 15:48:07 +08:00
k88936 93897b88ac Merge pull request 'Feat/adapt taonier' (#661) from feat/adapt-taonier-skill 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: #661
2026-10-07 15:45:54 +08:00
k88936 23fa91895d Merge remote-tracking branch 'origin/master' into feat/adapt-taonier-skill
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 15:34:04 +08:00