7.0 KiB
阶段4B2实施复核裁决与关闭
日期:2026-09-24。裁决者:主会话。受审报告:独立实施复核。
结论:接受限定范围的4B2实施,正式关闭4B2;没有待修P1/P2。 本轮只核查和维护文档,没有新增生产或测试代码。4B1保持关闭,4B3进入方案准备;整个4B/G4尚未通过,正常游戏存档尚未切换。
1. 基线与证据
主会话重新计算交付清单全部221项SHA256,221/221匹配、0差异。核查证据保存受审报告和清单自身hash以及逐文件预期/实际hash。报告独立性声明符合本轮分工:审查者未实施生产/测试代码,先前仅参与设计差异补审。
123项范围证据为85原样、38获批变更、0白名单外;ClubService只增加获批KV块。65个入口的直接扫描不能证明所有间接调用无副作用,沿用限定自审和真实模块/服务替身计数的组合证据。未将工作区既有无关修改追认为4B2交付。
独立复跑75组/1715断言、关闭失败三进程21断言、两个平台条件服务宿主各8组73断言、非编辑器工厂缺失探针通过;Unity编译0错误,完整B2-20为31真实模块、同对象双epoch、83断言,success/restored/fullB220均true。以上为审查者执行结果;本轮主会话未冒称再次执行全套测试。原作者1713断言、Unity局部912+完整83=995断言证据保留不改写。
2. B2逐条裁决
以下沿用交付矩阵的合同与证据路径,结论仅适用于合成传输及受控加载。
| 条目 | 主会话裁决 |
|---|---|
| B2-01 | 通过。PF默认和初始化时序保留;真实渠道全流程未覆盖,服务宿主在真实API前主动终止。 |
| B2-02 | 通过。后端先捕获;kv及非法值在SDK前拒绝;非编辑器无能力工厂。 |
| B2-03 | 通过。单认证→Get→31模块→受控通知;成功仅LoadedForValidation。 |
| B2-04 | 通过。新旧空档分型、短主档/活动孤档拒绝,不Apply、不补写默认档。 |
| B2-05 | 通过。19槽、旧键及别名、共存一致性、坏优先表示严格检查。 |
| B2-06 | 通过。codec坏值边界和未知键只读保留;不把未消费键当已迁移。 |
| B2-07 | 通过。真实模块空态、深复制与同对象A→B验证,采用局部与完整事务共同证据。 |
| B2-08 | 通过。所有Reset后Replace;失败/撤销不通知,清理失败Poisoned。 |
| B2-09 | 通过。至多两条epoch绑定初始化意图仅留内存,关闭丢弃。 |
| B2-10 | 通过。Agg受控await窗口订阅及finally释放,账号数据独立。 |
| B2-11 | 通过。PF各读写/定时/生命周期/Prefs入口前置拒绝,禁止副作用计数0。 |
| B2-12 | 通过。平台条件下KV只解析余额,无奖励/事件;不是真机验证。 |
| B2-13 | 通过。合成能力预检、单认证及固定Lease路由,无凭据外露。 |
| B2-14 | 通过。Lease发行/关闭/发送竞争和忽略取消的排水验证。 |
| B2-15 | 通过。当前401撤销、迟到401不污染新会话,PF原分支回归。 |
| B2-16 | 通过。跨账号/协调器关闭屏障与超时观察,不提前复用资源。 |
| B2-17 | 通过。Quit先同步撤销再await,有界观察不代表排水完成。 |
| B2-18 | 通过。OriginalError与CleanupFailed共存;逐枚举映射不冒充全组合端到端。 |
| B2-19 | 通过。4B1全23组保持;作者279/独立278分别记录,不据计数差推断缺测。 |
| B2-20 | 通过。独立31真实对象/双epoch/83断言,副作用0、同对象且全局恢复。 |
| B2-21 | 限定通过。要求的回归最终通过,但StorageError和3C L7首败仍是未解决问题;不认定测试稳定性已通过。旧NetworkTransport仍仅构建。 |
| B2-22 | 通过。独立实施复核、主会话221项hash核对、逐条裁决及本关闭文档完成。 |
3. 已知事项逐条裁决
| 报告事项 | 裁决与后续 |
|---|---|
| 1:KVSync StorageError、3C L7偶发失败 | 接受保留首败证据、独立列待查及不阻塞本次受控4B2关闭。不采纳“已证明非4B2引入/负载导致”的确定归因:源码字节一致与单独重跑通过只能排除相应源码漂移、证明间歇现象,不能排除共享运行环境或其他交互影响。根因均未确定。 |
| 2:旧NetworkTransport只构建 | 接受限定覆盖。代理会转发正式服,本轮不启动;没有该路径运行通过结论。 |
| 3:PF公共路径在真实API前故意失败 | 接受。受控隔离验证有效,不能等同真实渠道端到端登录通过。 |
| 4:非Android DTO兼容 | 接受测试宿主限定。生产遗留未触达分支未修复,不算本阶段新增能力。 |
3C首败位于KVStage3CTests/Program.cs:965的复合断言,检查AssertionStatus、ExecutionStatus、Completed和CleanedAccounts;目前日志不能区分哪个子条件触发。完整首败及成功重跑分别保留为review-3c-firstfail-20260924.log、review-3c-rerun-20260924.log。StorageError首败与重跑沿用原交付日志。后续需独立定位,再依据方案边界决定修复;不在关闭环节擅改3A/3C。
4. 三条P3逐条裁决
| 编号 | 裁决及落实 |
|---|---|
| P3-1 | 接受,已核对两个result.json:只有B2-C1-issuance-close-race从98变为100,Program.cs的if (issue.Result)分支增加成功发行后的处置断言;75组均在,+2有具体来源。保留作者1713、独立1715,不改原交付数字。4B1的278/279沿用原并发计数说明,不冒称本轮重新拆解其日志。 |
| P3-2 | 接受为运行前置。Unity CLI Loop验证前确认Editor 2022.3.62f2c1及DataPath=C:/projects/ft/Client/Assets;Editor关闭时先按操作入口启动。此项不要求修改业务代码。 |
| P3-3 | 接受,后端映射固定如下并带入4B3设计。 |
| 捕获值/实例 | 当前4B2公共入口结果 |
|---|---|
kv(精确小写) |
BackendNotEnabled |
playfab,普通实例 |
None,沿用PF |
playfab,受控实例 |
Input,禁止借受控实例转PF |
| 空/null、大小写变体及其他值 | BackendUnsupported |
| 配置对象缺失/配置键缺省 | CaptureSaveBackend默认playfab;显式非法值不自动改成PF |
5. 关闭后的边界
4B2闭合的是严格解码、31模块内存隔离和受控登录/退出链;不授予Done、IsLogin、普通写权限或正式玩法。4B3必须另立完整方案、独立审查和主会话裁决后才编码,不能把本报告当4B3实施批准。
正式启用仍需要4B3读写路由、4C消费结果处理、tickets有界历史、身份专项及4D场景验收;P2-α真实存量档兼容/迁移/备份/失败退出/人工恢复专项独立审查与用户产品确认仍是硬前置。正式地址固定http://s101.local:18080/;本轮无正式服请求、PlayMode、打包或Git提交,仅使用Unity CLI Loop,不使用UnitySkills。
旧受审材料、09-23 todoItem、hash清单与日志均保留;当前状态以本裁决、09-24 todoItem及共享入口顶部为准。