2.8 KiB
2.8 KiB
阶段4B1方案裁决与实施批准
日期:2026-09-23。用户要求“审查完成,阅读文档,进行下一步”。已读取《阶段4B分期与4B1方案独立审查-2026-09-23.md》:分期PASS、4B1方案PASS,无P1/P2。主会话重算受审基线18项SHA256全部一致。
裁决:接受4B分期及4B1完整方案,批准按原§6白名单实施4B1。只新增两个生产文件/meta及KVLoginContextTests,维护相关文档;不进入4B2/4B3、不接游戏、不访问正式服、不打包。 方案原文保留受审版本,以下为实施补充解释。
P3逐条裁决
| 编号 | 裁决及实施要求 |
|---|---|
| P3-A | 采纳Close后IsCurrent=false、历史快照仍可枚举的显式测试。审查建议中“再Prepare被拒”按既有单次任务合同解释为不启动新准备、不恢复授权:若此前已调用Prepare,仍返回原Task(可能是历史Prepared成功),不能同时要求返回新的Cancelled任务;只有Close先于第一次Prepare时返回Cancelled。测试同时断言任务引用一致、0新增请求和IsCurrent=false。Prepared只记录当时结果,不能代替当前归属判断。 |
| P3-B | 全采纳:PrepareAsync及结果XML注释明确失败/取消需等待底层传输和Close真正收尾,忽略取消可能长期挂起;调用者不能用超时或new实例绕过关闭屏障。 |
| P3-C | 采纳XML说明和调试诊断:重复传入不同token仍返回首个Task,不替换生命期;记录固定不含身份/值的Debug诊断并以internal计数供测试验证。不使用可能中断调试/终止测试进程的Debug.Assert,不抛异常改变已审幂等返回合同。 |
文件边界与执行步骤
- 新增PlayerKVLoginContext.cs、PlayerKVLoginPrepareResult.cs及meta;context拥有session,私有持有4A bridge/handle,结果不暴露它们。
- 新增显式编译真实源码的KVLoginContextTests,TCS闸门覆盖B1-01~B1-16及P3补充;保存每次运行完整输出、真实退出码与独立run。
- 4A/42/86/29/Review/3C离线回归,KVLiveTests只build,Unity CLI Loop身份核对与编译;源码白名单hash与脱敏检查。
- 限定自审、逐项交付矩阵、外部实施复核提示词、每检查点日志与共享状态。4B1实现完成仍待独立实施复核,不自动关闭或继续4B2。
禁止修改原方案列出的既有生产文件、旧测试/csproj、游戏入口/存档/业务初始化、服务器或包。旧测试已为显式Compile;KVLiveTests虽为通配符但已包含账户依赖,新文件无新库需求,继续仅构建验证,实际结果以构建为准。
正式地址固定 http://s101.local:18080/;仅离线synthetic.invalid替身测试,默认生产传输不发请求;Unity只使用Unity CLI Loop,不使用UnitySkills;无Git提交/发布。