Files
ft/CodexOutput/upserver/P2AlphaTargetCheck/C0-独立方案审查.md

4.0 KiB
Raw Blame History

P2AlphaTargetCheck C0-目标状态核验最小方案:独立方案审查

日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本方案编写;此前参与为P2-α-A/B全链审查。本轮只读+hash重算+源码核查,未构建/跑DLL/操作Unity/调用任何正式或PF接口、未验证危险参数。

受审hash核对

P2AlphaTargetCheck/review-hashes.json:57/57重算全部一致。共享文档以本清单送审版本为准(B关闭时18项为历史增量,非漂移)。

总判定

通过。 可批准:仅此一次、零源码改动、成功上限2登录+2Get的核验执行。无P1/P2;P3三条不阻塞。

七项逐条

1. 复用现有工具合理:是。 本审查核实Preflight/Program.cs三分支现状::8 --import-approved-102、:9 --backup-pf-101-102、:10 --backup-101-102(默认拒绝无参调用)——目标分支存在且后两危险分支已被方案明确禁用。新增只读101工具需新分支+构建+验证,为省1登录/1Get不值——正确取舍。无重复工作(不重跑兼容测试/不重搜未定位键)。

2. 副作用与证据缺口描述准确:是。 关键三点全部源码核实:①Program.cs:18的NewlyCreated检查确在登录返回后(后置拒绝,非前置保护)——方案如实说明"服务端若账号不存在可能创建账号";②PlayerId为客户端规范化请求ID的定性正确(不夸大为服务端回显身份绑定);③"只读KV"未被夸大为系统零写——登录会话/元数据副作用、失败时"请求已发送但响应丢失记不确定"的口径诚实。

3. 构建与执行闭合:是。 专用输出目录C1-bin(新建、记录DLL/依赖hash、禁dotnet run隐式重建)落实了apphost教训;危险分支靠不传参隔离(单参严格匹配:10),不从代码上删除——零源码改动约束下的正确做法;工作目录/地址固定、无重试、失败保留部分输出、目录秒级碰撞即停——闭合。

4. 空闲与并发限制充分:是。 前后两次只读状态核验+claimed全量冻结;编辑器关闭则记录不强启;"本地空闲≠跨设备停写窗口"明确;不擅自Stop/退役许可/杀进程——正确。

5. 迁移前置限定准确:是。 C3条件表六行(目标占用/PF来源权威/身份映射/兼容性缺口/时间并发/失败恢复)如实区分"本轮能确定/仍需什么";"101空目标≠准许导入、102进度不可被旧PF覆盖"为硬结论。

6. 检查点与矩阵完整:是。 C0–C4职责分明(C1构建+状态冻结→C2一次采集→C3逐键对账→C4停在执行复核);T1–T7覆盖边界/可追溯/请求口径/数据完整/差异有效/运行状态/结论限度;"失败交付也是交付但不标验收通过";产品正式迁移决策明确留待后续写入方案、不阻塞本轮取证——正确分离。

7. 批准范围:批准上述限定核验;不批准导入101/覆盖102/Play(方案自身也未申请)。

P3清单(不阻塞)

  • P3-1:C2建议在命令行中记录采集的本地起止UTC到秒并与生成的<UTC>目录名互证(方案已要求记录起止时间,补一句"目录名时间须落在起止区间内"的核对,防时钟跳变歧义)。
  • P3-2:C3的102差异摘要建议同时记录"与20260928T025514Z末次闭环备份"和"与4C2结束对账基线"两个参照的键集合差(若相同则显式记"两参照一致",简化后续写入方案的引用)。
  • P3-3:若C2出现newCreate异常停止,建议交付中显式列出"该异常登录是否可能已产生服务器侧新会话/账号"的说明模板(方案已停住不清理,补一段标准说明文字供主会话裁决用)。

结论

通过C0方案。 主会话核hash(已代验57/57)逐条裁决后按C1–C4执行;执行复核仍归独立侧。本单元关闭仅为"目标快照核验",不构成101导入授权、不关闭整体P2-α/G4。