保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
4.1 KiB
给原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/。
先读:
- 你的
M2-正式接线依赖独立复审-修订2.md、原修订2方案和19项旧基线。 M2-修订2独立复审主会话裁决与CP1实施边界-2026-09-29.md,确认CP1两生产文件白名单、CP2未批准、三接口消费关系及P2/P3逐项裁决。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最终清理验收。
可复跑的合成命令(从仓库根,宿主不访问正式服):
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并逐条裁决。