Files
ft/CodexOutput/upserver/阶段4B2实施复核裁决与关闭-2026-09-24.md

78 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阶段4B2实施复核裁决与关闭
日期:2026-09-24。裁决者:主会话。受审报告:[独立实施复核](阶段4B2独立实施复核-2026-09-24.md)。
**结论:接受限定范围的4B2实施,正式关闭4B2;没有待修P1/P2。** 本轮只核查和维护文档,没有新增生产或测试代码。4B1保持关闭,4B3进入方案准备;整个4B/G4尚未通过,正常游戏存档尚未切换。
## 1. 基线与证据
主会话重新计算交付清单全部221项SHA256,221/221匹配、0差异。[核查证据](KVGameLoadTests/checkpoint5-review-ruling-hashes-2026-09-24.json)保存受审报告和清单自身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逐条裁决
以下沿用[交付矩阵](阶段4B2交付与验收矩阵-2026-09-23.md)的合同与证据路径,结论仅适用于合成传输及受控加载。
| 条目 | 主会话裁决 |
|---|---|
| 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及共享入口顶部为准。