# C3c 第五轮状态核验与缓存联动边界 2026-09-30。用户要求确认“四项之外的内容已经更新”的状态。本轮只核验审核/源码/交付记录,不实施生产代码。 ## 1. 已收到第五轮审核更新 独立报告《M2-C3c剩余SDK接线独立差异审查-2026-09-30.md》已追加“第五轮:四项服务端事实挂起后的可编码范围裁决”,章内标注16:58;实际文件更新时间与章节标注不同,以内容和hash识别,不能仅按文件日期判断先后。 本轮报告SHA256:`E0A9A124F98F36EED1CA902A14F6D890E5528A52D58B12C86183D2A26369560F`。原统一基线28/28、原C3c基线31/31、四项服务端交付清单13/13重新计算全部一致。报告新增第五轮不等于生产代码已变更。 ## 2. 第五轮逐项核验 唯一获审生产文件为`Client/Assets/Scripts/Services/KVUserService.cs`;测试限定原ServiceHost中M2MergedGameplayTests接入及新增C3ProfileCacheTests,真实KV/PF服务对照。 | 项目 | 第五轮意见 | 主会话核验 | |---|---|---| | GetPlayerLv | 恢复原缓存合同:命中原值、未命中1,SetPlayerLv不改 | 目标接受;与下一项存在直接依赖,不能只改默认值就开工 | | GetPlayLv | 维持现状不动,未加载继续InvalidOperationException,不提前接远端等级 | 行为目标接受,但“方法完全不改”与GetPlayerLv目标在当前代码上不能同时成立,见§3 | | GetPlayInfo | 空ID返回null;同一缓存引用;缺项建原默认名占位;本人同步更新并发一次事件;他人走已存在SearchFriend异步更新 | 接受该范围性审核结论。按code>0且info!=null消费昵称/头像;不把level字段纳入远端等级迁移,不重设计资料系统 | | SetPlayInfo(string,string,string) | 原替换缓存对象、不发布事件 | 接受,不改成更新旧引用或额外事件 | | ClearPlayInfos | 原清空 | 接受;不增加新缓存层 | | 测试 | 红测留痕、引用/事件/默认值/失败/SDK计数及PF对照,双条件宿主和CLI Loop | 接受;本轮测试文件尚不存在,未运行新测试,不把计划当通过 | SearchFriend原昵称/头像的这段已获范围性审核,不再一概列为等待新服务端公开资料合同。好友LevelB/时间、真实远端等级等仍属挂起范围。第五轮文中FriendService.GetFriendData实际应对应现有GetFriendList,按禁止修改好友列表方法解释,不另造方法。 ## 3. 一个必须澄清的实现联动 实际源码`KVUserService.cs:280–286`:GetPlayerLv未知玩家返回-1,GetPlayLv直接调用GetPlayerLv,再以level>=0决定成功或InvalidOperationException。 | 场景:未加载的他人ID | 当前行为 | 仅按第五轮字面修改GetPlayerLv后 | |---|---|---| | GetPlayerLv | -1 | 1,符合原PF缓存显示默认值 | | GetPlayLv | 失败Task,InvalidOperationException | 成功Task,返回等级1;违反“维持未加载失败”及“默认1不能污染异步查询”的同一报告要求 | 这是源码可直接推出的冲突,不涉及服务端接口、不需要线上测试,也不是新增业务问题。本人直读路径同样需防止因共用getter改变而被顺带移除;不能仅测试他人成功就认定行为不变。 **建议在同一第五轮边界中澄清**:“GetPlayLv不动”指保持当前外部行为、不接新远端;允许在同一个KVUserService.cs内最小解耦其取值方式,使其继续按修改前本人直读/缓存/未知-1及level>=0判断,不再消费显示用默认1。不得新增接口、管理器、等待、重试或归一化;当前负数处理与异常也不顺手修改。另一可行收窄是暂缓GetPlayerLv改动,但会留下已识别的默认值迁移差异。 本轮**不自行把建议升级为已审许可**。不因此撤销GetPlayInfo等已明确结论,也不要求重审四项服务端设计。只需在原裁决中消除该相互冲突的两条约束,保留完整评审后编码要求。 ## 4. 当前实施状态与剩余范围 - **已更新的是审核范围,不是代码已完成。** KVUserService仍为原待迁实现;C3ProfileCacheTests.cs不存在;受审源文件hash未变。 - 四项挂起:等级榜(含本人统计写)、好友列表LevelB/LastLogin与真实远端等级、公告、匹配;PlayerKVClient不改。四项接口提案已交付,不是已部署能力。 - 四项之外此前主干:独立KV登录/用户服务、个人存档、普通请求新UserID、问卷/邀请/邮件/商店/签到/活动等已有接线和离线验证记录;不等同所有线上业务已验收。 - 首场景双闸、开发冻结恢复、真实保存→退出→新进程恢复、Player/渠道验证及C4最终复核仍未关闭,不能说“四项之外全部完成”。 - 下一步在开发侧处理获审资料缓存/昵称头像范围;本次任务止于状态确认,未开始编码。缓存getter联动边界记录于本文件,不能按冲突文字机械实施。 ## 5. 本检查点操作 只读审核及源码、核hash、更新状态/入口/TODO/日志和本核验记录。生产/测试/服务器代码未修改,正式网络请求0,未运行新编译/测试、未Play/打包。现有工作树保留;不向审核或服务器会话发送消息。