66 lines
7.0 KiB
Markdown
66 lines
7.0 KiB
Markdown
# 4B3A交付与验收矩阵
|
||
|
||
状态:**限定实现与主会话自验完成,待独立实施复核;4B3A尚未关闭。** 4B1/4B2已关闭,4B3B/C未批准编码,整个4B/G4未通过。
|
||
|
||
## 1. 本次交付
|
||
|
||
依据[方案](阶段4B3分期与4B3A固定存档入口方案-待评审-2026-09-24.md)、[独立设计审查](阶段4B3分期与4B3A方案独立审查-2026-09-24.md)及[主会话逐条裁决与实施批准](阶段4B3分期与4B3A方案审查裁决与实施批准-2026-09-24.md)。开工39项材料和2101源码hash全部一致、7项未来路径不存在。
|
||
|
||
本次实现固定句柄的读、写、Flush、票据等待四个internal static入口;结构化键结果区分读取失败、有效缺键和存在值。入口先服从B2加载guard,后续交由原handle处理,原结果/票据/任务透传,不重新选择账号。目的在于为后续逐业务迁移提供明确入口,本阶段没有接通普通玩法保存。
|
||
|
||
原有文件仅PlayFabMgr新增块。新增键结果、Editor合成验证host、Editor固定反射转接三个C#文件及各自meta;其余为新测试和审查材料。2101项原源码中仅PlayFabMgr变动,删除新增块后原字节完全一致;旧B2交付221项中也仅该文件变化。证据:[范围核对](KVSaveRouteTests/checkpoint4-boundary-audit.json)。不把此前工作区累积改动归为本轮。
|
||
|
||
## 2. 实测结果
|
||
|
||
| 项目 | 本轮结果 | 日志(均在KVSaveRouteTests/) |
|
||
|---|---|---|
|
||
| 新入口最终默认/Android/PlayerProbe | 每条件13组544断言,0失败、退出0 | checkpoint4-route-default.log、checkpoint4-route-android.log、checkpoint4-route-player.log;checkpoint4-route-exits.json |
|
||
| 新入口检查点3原始验证 | 每条件13组508断言 | checkpoint3-route-default/android/player.log;新增36断言来自限定自审补测 |
|
||
| Unity CLI Loop编译 | 0错误、0警告 | checkpoint3-unity-compile-permitted.log |
|
||
| Unity固定入口 | 34断言;auth=2/Get=2/Set=1;restored=true,formalRequests=0 | checkpoint3-unity-route.log |
|
||
| Unity B2-20 | 31真实模块、同对象双epoch、83断言;restored=true;禁止副作用计数0 | checkpoint3-unity-b220.log |
|
||
| 4B2离线/关闭故障 | 75组1713断言;三个独立进程5+8+8断言 | checkpoint3-b2-offline/cleanup-prepare/cleanup-schema/cleanup-apply.log |
|
||
| 4B2 ServiceHost | 双条件各8组73断言;PlayerProbe通过 | checkpoint3-service-false/android/player.log |
|
||
| 4A/4B1 | 18组226断言/23组279断言 | checkpoint3-regression-KVGameBridgeTests/KVLoginContextTests.log |
|
||
| 原核心回归 | Contract 42;Coordinator 29;Review通过;3C离线8/8 | checkpoint3-regression-对应项目名.log |
|
||
| KVSync | **首次85/86,重跑86/86,根因未定** | checkpoint3-regression-KVSyncTests.log和-rerun.log均保留 |
|
||
| KVLive/NetworkTransport | 仅build通过,未运行真实服代理 | checkpoint3-build-KVLiveTests.log;checkpoint3-network-build-with-dependencies.log |
|
||
|
||
Unity执行同时核对外层Success、内层success/restored;不只看CLI退出码。Editor isPlaying=False见checkpoint3-unity-state.log。真实IO合成测试及Unity CLI因沙箱File.Replace/子进程限制,经自动审批在非沙箱执行;未发正式请求。最初失败日志未覆盖。
|
||
|
||
## 3. B3A-01~19逐条验收
|
||
|
||
测试名为Program.cs/WriteCases.cs中的方法名;完整运行日志含C1/C2/C3显示名。以下“通过”均指作者自验,独立实施复核待完成。
|
||
|
||
| 编号 | 实际证据/边界 | 作者结果 |
|
||
|---|---|---|
|
||
| 01 | ReadContract:存在/缺键/空串、大小写/空格/Unicode/128边界;Get计数不增加 | 通过 |
|
||
| 02 | ReadContract/Guards:null/空/129、guard优先、失败Found/Value为null | 通过 |
|
||
| 03 | NonReady/Storage/TransportFaults/Stale:真实Conflict/Unknown/IO故障/401及旧handle;其余底层状态沿用旧回归 | 通过,非全状态facade端到端重造 |
|
||
| 04 | LocalOnly:remote接受有票据、发送前本地可读、未把Accepted视为远端确认 | 通过 |
|
||
| 05 | LocalOnly:remote→localOnly保留旧pending;localOnly→remote新值发送 | 通过 |
|
||
| 06 | LocalOnly/Guards:null值、非法key拒绝;空串保留不删除 | 通过 |
|
||
| 07 | Storage:本run唯一tmp目录制造实际失败,sequence/revision/uncertain=false、无票据及重试;finally非递归清理并断言 | 通过;uncertain=true沿用旧KVSync五阶段故障+直接return审计 |
|
||
| 08 | Watermark:Superseded/Confirmed计数;后写不被旧水位确认、后续独立确认 | 通过 |
|
||
| 09 | TransportFaults:响应丢失/401为Unknown、一次发送、失败读取非默认值 | 通过 |
|
||
| 10 | TicketOwnership/Stale:null/外来Owner/同账号新epoch拒绝,历史票据不授权新Owner,Wait不发Flush | 通过 |
|
||
| 11 | CancelDrain/TicketOwnership:观察取消不撤销底层,Close等待忽略取消的传输排水;预取消不承诺未发送 | 通过 |
|
||
| 12 | Stale:跨账号/同账号新epoch、四入口拒绝;B缓存/请求/示例回调共享内存不变 | 通过;仅示例回调,非全业务迁移 |
|
||
| 13 | CloseRace:16轮Read/Write/Close竞争,只观察A准入或拒绝;CancelDrain覆盖Flush未完时Close等待 | 通过,非穷尽线程交错证明 |
|
||
| 14 | Guards:四入口拒绝、ReadLocal=1/Update=1/Sync=2;PF/Prefs为0 | 通过 |
|
||
| 15 | Surface与范围审计:未创建PF组件,未调用Instance;原PF字节不变 | 通过 |
|
||
| 16 | 新宿主默认/Android/PlayerProbe,旧ServiceHost双条件/PlayerProbe;静态源码仅定义与Editor调用 | 通过;未验证Player链接/裁剪 |
|
||
| 17 | Unity固定case34断言、资源Close后restored=true、非PlayMode、编译0错误0警告 | 通过 |
|
||
| 18 | 上表旧全量回归;KVSync首败保留,KVLive/Network仅build | 最终回归通过;间歇问题仍待定位 |
|
||
| 19 | 范围/hash、限定自审、交付提示词已备;独立实施报告与主会话关闭裁决尚缺 | **待独立实施复核及关闭裁决** |
|
||
|
||
## 4. 已知限制与下一步
|
||
|
||
- KVSync坏revision测试本轮首败StorageError,复跑通过;此前3C L7间歇失败本轮未重现,两项根因均未定。沙箱权限诊断只解释新测试的已定位权限失败。
|
||
- NetworkTransport原命令缺4B2既有依赖;附带既有RegressionSupport/Dependencies.targets构建成功,没有改旧csproj。原失败日志仍在。
|
||
- A不提供跨异步全程的guard租约;现有Owner负责排水。B负责回调/共享可变内存归属;C负责加载后写权限、生命周期和切换顺序。四入口当前无普通业务调用者。
|
||
- 没有真实渠道、支付、广告、Player包、链接裁剪或正式启用证明。正式地址仍http://s101.local:18080/,本轮正式请求0,无PlayMode、打包或Git提交。
|
||
- P2-α真实存量档迁移/备份/恢复专项独立审查及用户产品确认仍是正式启用硬门。
|
||
|
||
下一步外部按[实施复核提示词](其他AI审查提示词-4B3A实施-2026-09-24.md)出报告。主会话核对[交付hash](KVSaveRouteTests/checkpoint4-delivery-hashes.json)、逐条裁决后才关闭A;关闭且无需补审时自动进入B完整方案准备。
|