From 515b681d24e9738b10736731fb5b20dc952e3b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Wed, 7 Oct 2026 23:36:06 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E6=B8=B8=E6=88=8F=E5=88=86=E5=8F=91):=20?= =?UTF-8?q?=E7=BB=99=20lineage=20JSON=20=E5=AD=97=E6=AE=B5=E7=95=99=20rena?= =?UTF-8?q?me-refactor=20TODO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - shared-contracts 的 GameDistributionGameSummary.lineage 与 TS 契约同名字段各留 TODO(rename-refactor)。 - 待网页读面 .lineage 用法与测试夹具同批切换后,把该 JSON 字段改名 network(公开契约破坏性改名)。 - 实施计划同步标注该待办。 --- .../【实施计划】游戏分发发布面clean cut与术语对齐-2026-10-07.md | 2 +- packages/shared/src/contracts/gameDistribution.ts | 1 + server-rs/crates/shared-contracts/src/game_distribution.rs | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/project-memory/plans/【实施计划】游戏分发发布面clean cut与术语对齐-2026-10-07.md b/docs/project-memory/plans/【实施计划】游戏分发发布面clean cut与术语对齐-2026-10-07.md index 208b23339..e6e9a2155 100644 --- a/docs/project-memory/plans/【实施计划】游戏分发发布面clean cut与术语对齐-2026-10-07.md +++ b/docs/project-memory/plans/【实施计划】游戏分发发布面clean cut与术语对齐-2026-10-07.md @@ -116,7 +116,7 @@ cargo test -p spacetime-client --manifest-path server-rs/Cargo.toml - 前缀冲突:`GameDistributionLineageNode` ⊂ `GameDistributionLineageNodeSnapshot`、 `GameDistributionForkSource` ⊂ `GameDistributionForkSourceInput/Result`;改名只动手写源文件, `spacetime-client/src/module_bindings/` 由绑定生成,绝不手改或全局替换。 -- `GameDistributionLineage` 只改类型名,JSON 字段名保持 `lineage` 不变,避免读面破坏性改名。 +- `GameDistributionLineage` 只改类型名,JSON 字段名保持 `lineage` 不变(Rust DTO 与 TS 契约已留 `TODO(rename-refactor)`),待读面(`.lineage?.generation` 用法与测试夹具)同批切换后再改 `network`。 - 模块不在线、无历史数据:hard cut,不写迁移、不留兼容路由或旧 DTO 别名。 ## 9. 证据(回填) diff --git a/packages/shared/src/contracts/gameDistribution.ts b/packages/shared/src/contracts/gameDistribution.ts index ca03726e7..839570101 100644 --- a/packages/shared/src/contracts/gameDistribution.ts +++ b/packages/shared/src/contracts/gameDistribution.ts @@ -377,6 +377,7 @@ export type GameDistributionGame = { * 不新增索引,api-server 只发键不遍历。 */ coCreationCount?: number; + // TODO(rename-refactor): 字段名 lineage 与类型 GameDistributionNetwork 不一致,待读面切换后改名 network。 /** 血缘摘要;根作品或旧数据为 null/缺省。 */ lineage?: GameDistributionNetwork | null; /** diff --git a/server-rs/crates/shared-contracts/src/game_distribution.rs b/server-rs/crates/shared-contracts/src/game_distribution.rs index 0ec6a06a1..991dab73e 100644 --- a/server-rs/crates/shared-contracts/src/game_distribution.rs +++ b/server-rs/crates/shared-contracts/src/game_distribution.rs @@ -243,6 +243,8 @@ pub struct GameDistributionGameSummary { /// 读取方按 `0` 兜底。 #[serde(default)] pub co_creation_count: u64, + // TODO(rename-refactor): 字段名 `lineage` 与类型 `GameDistributionNetwork` 不一致;待网页读面 + // (`.lineage?.generation` 用法与测试夹具)同批切换后改名为 `network`——公开契约破坏性改名。 /// 该作品的改编来源;母版为空。 #[serde(default, skip_serializing_if = "Option::is_none")] pub lineage: Option,