Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-CP1原ZCode独立实施复核提示词.md
Liubing\LB 6813da149a feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。
保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。

验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。
包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
2026-09-30 19:19:05 +08:00

37 lines
4.1 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.
# 给原ZCode:M2 CP1限定实施独立复核
请在 `C:\projects\ft` 延续你自己的M2修订1/修订2审查上下文,执行CP1批末独立实施复核。只新增 `CodexOutput/upserver/B3BatchMigration/M2/M2-CP1独立实施复核.md`;不要修改生产/测试源码、受审材料、共享状态、TODO或开发日志。不进Play、不访问正式接口/账号、不写正式档、不打包。Unity只用CLI Loop,不用UnitySkills;正式地址固定 `http://s101.local:18080/`。
先读:
1. 你的 `M2-正式接线依赖独立复审-修订2.md`、原修订2方案和19项旧基线。
2. `M2-修订2独立复审主会话裁决与CP1实施边界-2026-09-29.md`,确认CP1两生产文件白名单、CP2未批准、三接口消费关系及P2/P3逐项裁决。
3. `M2-CP1实施交付与CP2输入-2026-09-29.md`、`M2-CP1交付hash.json`、`CP1-scope-verification.json`。逐项重算交付长度/SHA256,漂移即停止并报告;旧受审基线中两获批生产源码变化是预期,不能要求其编码后仍等于旧hash。CP1-before保留两源码和项目配置前像;diff.patch给本批源码/宿主差异。
逐项审查:
- 原handle是否真正来自同一Context/Owner且不暴露Cookie;prepared/closing/revoked/epoch及身份回调异常是否安全。
- 两入口是否共用Prepare/Decode/Apply主体;原LoadAsync的LoadedForValidation、Guard及失败关闭语义是否保留。
- Apply与notify完成、最终token/context/epoch/Guard检查、原对象获取、Guard释放、GameLoaded发布的次序及异常分支。不要只凭测试名称认定时序覆盖。
- TryGet与Revoke竞争、身份回调重入/后台关闭、同账号新epoch和旧回调能否误获/误写新Owner;锁内不得await,外部身份回调不得处于Context gate或Coordinator closeGate。
- Guard释放与最终Violations复核的间隙、释放后关闭故障的边界是否仍满足合同;发现需改Guard等白名单外内容时明确补审,不自行扩展。
- 生产改动仅Context+Coordinator,KVMgr/Guard原样;接手时已有19份Client改动保留。测试专用反射仅取对象作身份断言,未向生产添加测试钩子。
- 新增接口目前仅合成环境可达,不是正式接线已完成;CP2消费点是设计输入。最终无用接口必须删,不能把“未来会用”作为M2最终清理验收。
可复跑的合成命令(从仓库根,宿主不访问正式服):
```powershell
dotnet run --no-restore --project CodexOutput/upserver/KVGameLoadTests/KVGameLoadTests.csproj
dotnet run --no-restore --project CodexOutput/upserver/KVLoginContextTests/KVLoginContextTests.csproj
dotnet run --no-restore --project CodexOutput/upserver/B3BatchMigration/B02/Tests/Compatibility/B02RouteTests.csproj -- --all
dotnet run --no-build --no-restore --project CodexOutput/upserver/KVGameLoadTests/KVGameLoadTests.csproj -- --cleanup-failure prepare
dotnet run --no-build --no-restore --project CodexOutput/upserver/KVGameLoadTests/KVGameLoadTests.csproj -- --cleanup-failure schema
dotnet run --no-build --no-restore --project CodexOutput/upserver/KVGameLoadTests/KVGameLoadTests.csproj -- --cleanup-failure apply
```
先核源码和DLL交付hash,再决定复跑/构建;构建将改bin文件,报告区分“收到的交付”与“自己重建的产物”。首次缺assets时使用仓库 `CodexOutput/upserver/MinimalLoginTests/NuGet.Config` 做restore,不修改全局NuGet配置。不要把基于当前源码构建后的hash冒充收到时的基线。
主会话最终合成结果为84组1911断言、Context 23组279断言、B02 13组544断言及隔离清理失败3进程5/8/8断言;完整原始日志与Unity证据见交付清单。Unity force compile报告0错误/272警告、Success字段为null,另有前后非Play/非编译状态及错误日志。三接口只读反射探针被CLI Restricted规则拒绝,未通过、不绕过;请区别编译记录与运行验证,不声称Player构建通过。
报告给出CP1通过/有条件通过/不通过、P1/P2/P3及准确文件行号、你的实际复跑次数/组数/断言和未验证范围。CP1复核通过也不批准CP2编码。主会话收到后重新核交付hash并逐条裁决。