# 阶段4A构建依赖差异独立审查 日期:2026-09-23。审查者:用户指定外部AI(ZCode会话)。范围:仅审4A开工检查发现的构建文件白名单遗漏(三个csproj各加一条`PlayerKVLocalReadResult.cs`显式引用);不重开3C或完整4A设计。本轮只读+新增本报告;未修改代码/csproj/共享文档,未访问正式服,未使用子Agent。 ## 受审文件SHA256 | 文件 | SHA256 | |---|---| | 阶段4A构建依赖最小差异方案-2026-09-23.md | `76C61B848ABDD33786012677D141F94EF933B5DE106A24A4FE4D1F69912DD0EC` | | 阶段4A开工依赖核对-2026-09-23.json | `C98C10384F3AD1703D30BFEADEC1FD3B0FC3575BB2D5C499ABDD1FDB2E45DD28` | | KVSyncCoordinatorTests.csproj | `EDD94D2C694A2A960F94EF7F8B1B0529114F9573F989A51C57CCFE57889D8C4D` | | KVSyncCoordinatorReviewTests.csproj | `27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6` | | KVStage3CTests.csproj | `27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6` | 三个csproj当前hash与核对JSON逐项一致(Review与Stage3C两文件字节级相同,hash相同属预期,非记录错误)。基线核验:`KVSyncCoordinatorReviewTests`本审查实际运行通过(退出码0)。 ## 裁决 **PASS——三处构建依赖确属必要、路径与Link正确、边界足够、验收补充充分;无P1/P2。**建议主会话落盘裁决并按原4A任务书(前置门增补本差异评审项)实施。 ## 逐项核对 **1. 依赖是否真实/有无遗漏项目:确认,无遗漏。** - SDK风格项目只自动编译项目目录内源码;Client源码仅经显式`Compile Include`进入。4A为Owner新增返回`PlayerKVLocalReadResult`的只读接口后,凡显式编译Owner而缺新文件的工程必然编译失败。依赖真实。 - 全仓库检索`PlayerData`源码引用(csproj):除受影响3项外,`KVContractTests`/`KVSyncTests`(阶段2/3A显式清单,不含Owner)、`KVSyncReviewTests`(仅3A三文件:SyncModels/CacheStore/SyncState,本审查已核——不含Owner,不受影响)、`KVLiveTests`(通配符+显式S101AccountSession,见观察1)——**无第4个需要改动的项目**。Unity侧经自身管线编译,新文件按原4A白名单带meta,无需csproj。 **2. 路径与Link名称:正确。** `../../../Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs`与三个文件中既有行(如第14/16行Owner引用)的相对层级逐字一致;`Link="Production/PlayerKVLocalReadResult.cs"`与既有`Production/`命名模式一致;"Owner引用相邻位置"插入不影响其余条目。 **3. 边界不变:成立。** 差异仅扩大4A文件白名单+每文件一行Compile;不动Program/断言/TFM/NuGet;不给旧测试加Bridge引用;生产边界仍限"Owner新增只读接口+独立结果类型"(已审4A设计§4.4);3C历史manifest/result/log/hash不动;明确禁止共享props/targets/条件编译/类型复制/通配符规避。 **4. A12补充是否足够:足够,附一项建议。**"KVSyncCoordinatorReviewTests现有测试全部保留并通过"+"三个csproj差异只含一条Compile"核验,连同既有42/86/29/3C离线/Unity门,覆盖了全部受影响工程的回归。本审查已实测ReviewTests基线通过(改动前证据存在)。旧/新hash记录要求已在差异方案§3约束中。建议见观察2。 **5. 无需改3C历史证据/无需再访正式服:成立。**csproj变化不影响任何3C run产物;4A全部合成替身;正式fixture已确认无遗留(3C补修复复核已盘空)。 ## 观察(P3,不阻塞) **观察1|KVLiveTests通配符隐式扩集。** 该项目以`PlayerData/*.cs`通配符编译,4A两个新生产文件(Result+Bridge)会被自动纳入:Result无依赖;Bridge依赖Owner/会话,通配符+既有显式S101AccountSession引用齐全,可编译(本审查实测其当前`dotnet build`0错误)。无需为本差异改它,但其编译集合在4A落地后隐式增长。建议4A实施记录注明,并在A12证据中补一条**`dotnet build`(仅构建,不运行——它是阶段2正式服联调项目)**通过的证据。 **观察2|Review/Stage3C两csproj字节相同。** 当前两文件内容完全一致(显式清单相同),hash相同。若后续任一项目独立演化,hash即分化;仅提示审查工具不要以"hash相同"判异常。 ## 结论 差异最小、必要、正确;无遗漏项目;边界与验收充分。**PASS。**主会话可落盘裁决、把4A任务书前置门补入本差异评审项后批准实施。