# 给原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并逐条裁决。