8.4 KiB
102真实运行记录:真实装备与新进程恢复通过,待实施复核
当前结果
102已真实登录并进入主界面,在原鱼竿界面将20001换为已有30003;原装备票据Confirmed,服务器Get确认30003;正常QuitStage完成关闭。新Unity进程120896、新缓存从服务器恢复30003已经通过,并再次正常关闭。R1仍待独立实施复核及已知异常处理,不关闭。
下一步在评审侧:复核本轮R1实施证据,并对本记录末尾建筑字段缺键默认值的最小修订给出明确结论。启动时CLI曾连接失败并请求用户确认服务,随后已恢复,环境问题已解除。uloop fix返回No lock files found,没有修改CLI安全设置或创建替代控制入口。
本轮审查与最小实现
独立报告及92项受审hash核对通过,见逐条裁决与实施批准。两项批准及三条P3全部落实。
相对92项基线,业务源码只有PlayerKVSaveSchema.Advert一处参数变化:允许合法显式JSON null,保留原字符串,缺字段和非字符串仍拒绝。其余变化是Preflight测试/初始化工具(Program.cs、csproj、新AdvertCompatibilityTests.cs/Import102.cs)和证据文档。没有改排行榜、签到、鱼竿经济或其他业务算法。
| 验证 | 结果及证据(均在KVGameplayLoopTests) |
|---|---|
| null边界专项 | 16断言通过,cdtime-red.log保留原失败,cdtime-green-final.log为最终通过 |
| 原102整档 | cdtime-source-schema.json:45键Valid、0错误、已有30003/20001;101另两项仍拒绝 |
| 离线4B2 | cdtime-b2-approved.log:75组1713断言,0失败 |
| Unity | M04 136、B2-20 83、B3A 34断言;装备链9组28断言,全部通过并恢复 |
| 许可/编译 | 15断言;Unity 0错误270警告 |
首败及工具编译错误保留。测试进程未处理异常曾锁住输出,确认本轮测试进程路径后结束,最终使用UseAppHost=false完成。CLI许可首脚本因Newtonsoft重复引用失败,同批误触Play立即Stop;日志仅记录两条插件警告、未见登录。改用确定45键常量调用既有PreparePermit,单独验证成功后才启动正式run。不得把此操作失误隐藏或计作成功验证。
102数据初始化与变更核对
PF来源、45个原值及hash沿用已审方案,未改一字值。imports/20260924T061443Z保存真实账号/服务器时间、候选Valid结果、导入前空KV、Set200结果、导入后备份和45行逐键布尔矩阵;无额外键。import-102.claimed保留,不可再次运行导入命令。沙箱首次login Network失败发生在任何Set之前;沙箱外成功的初始化仅一个Set。
原许可备份:imports/20260924T061443Z/after.json,SHA256 1374C7ED31EFB0EAC0EB6EDBF57276A61B8DE0CA1B222C86FB853EFEB9BF38DD。
首次真实run:runs/54200_639258133649707870/events.jsonl。5次本地write-attempt,3个不同键,全在45键范围;本地接受次数不是HTTP Set次数。真实装备的1张原票据在06:18:14Z Confirmed,06:19:17Z记录closed。没有抛竿、升级、购买或领奖。
服务器装备后备份:backups/20260924T061841Z/102.json,SHA256 9BECFC6ED1D2EF0905F9B4A448779D026D0A548C71F540B5C3CC2A7069C45F0D,仍45键,101仍空。逐字段差异在real102-run-summary.json:
NewPlayerDataDic.newData仅装备槽20001→30003;等级60、金币213645、珍珠445、钻石100保持。ShopPackBuyCount日序264→266;BattlePassRecordTask日刷新tick更新。- 主存档
vipL按原14天滚动窗口推进、ad的LoginDays(19)按登录推进、rt活动编号30301021→30301023。相关逻辑仍来自原PlayerData初始化、FishingStage登录事件和FishingEventData活动初始化,没有人工改值。
初始化后允许已有键的业务值自然变化;逐值完全相等只要求于导入核验时。没有自动重试Set;保留测试结果,不自动删除102。工具未写PF源存档;运行仍依赖PF外围身份,不能宣称已去除PF或全量统计/外围调用。
关闭与重启证据
正常IStageService切QuitStage,Ready先撤销,已有Bridge排水后closed,再Stop Play。原进程54200由uloop launch --quit正常退出(gracefully),新进程120896在14:20:37本地时间启动,项目Client、Unity2022.3.62f2c1。
编辑器原PreBoot场景dirty:先SaveScene(saveAsCopy=true)到PreBoot-before-restart.unity,与原文件SHA256均为C627A6F2EE128DE93508159979A155575696DFDBD1B5E40F702C480C1B4A2723;逐字节相等后重新打开原场景清除dirty才退出,没有丢弃独有序列化修改。原进程claimed文件未删除;第二次Play必须属于新进程,不得用清标记伪造重启。
新进程初始CLI连接失败,恢复后进行了完整验证:real102-newcache-before.json证明runs/120896_639258276377220393/cache在登录前不存在;第二次Ready Owner为94968f2b1c8c489eb35e13247df1c58c,不同于首轮;real102-restored-memory.json记录装备30003、等级60/金币213645/珍珠445/钻石100,与服务器一致。第二轮未进行装备操作,不是再次改值伪造恢复。恢复后只发生1次原主档的同值本地写;06:25:56Z正常closed,再Stop Play。
最终服务器备份backups/20260924T062616Z/102.json(SHA256 D951CBDC16234CEBD3F6EE8D8A3BE564E4BCD8D7D6EED4836E15DFE5245D1253)仍45键、与首次装备后逐值一致;101仍为空。活动许可已归档到第二次run的permit-used.json,根permit.json不存在;两个进程占用标记均保留。最终playing=false、Ready=false;静态Enabled仍保留本进程历史状态,不表示游戏还运行。普通用户启用门未开放。
已发现限制与最小后续修订建议(尚未编码)
- 排行榜建筑默认值偏差:真实登录后
PlayerData.InfiniteBuildingLevel对null调用Split导致异常,堆栈见real102-errors.json。原字段初始化为"0",旧InitData只在存在key时覆盖;新DecodePlayer缺键返回Building=null,Replace覆盖默认值。102没有该key,属于合法缺键而非损坏存档。这没有阻断本次鱼竿保存,但不应在正式关闭时忽略。 - 签到弹窗验证边界:可领奖时btn_close被原业务隐藏;本轮经CLI触发现有关闭回调,只DestroyUI,不领奖、不写签到数据。后续鱼竿包/选竿/装备均使用CLI模拟真实UI点击。此项不等于完全无测试辅助的端到端用户流程。
建议一次极小的缺键默认值修订,交实施复核时一并审:只把PlayerKVSaveSchema.DecodePlayer的局部string building=null改为string building="0";已有字符串(含空串)原样保留,显式null继续Malformed;不改Reset清空合同,不在getter吞异常,不往服务器补写新key。必须更新原PlayerSchemaTests把缺键默认null的错误断言改为0,并新增“缺键→真实Replace→InfiniteBuildingLevel为0”的固定M01 Unity验证,保留旧值不泄漏与显式null拒绝测试。此修订超出本次Advert方法白名单,尚未实施,待完整评审及裁决。
本轮仍不打包、不动4C、不做101其余兼容、不启用热换号或全量迁移。核心真实闭环证据已齐,但不能据此忽略排行榜异常或直接关闭R1/4B3/G4。
给独立评审AI的提示词
请先核对KVGameplayLoopTests/real102-implementation-review-hashes.json,阅读原R1方案/实施批准、102兼容审查与主会话裁决、本运行记录以及real102-run-summary.json。本轮只新增《阶段4最小真实玩法闭环R1实施独立复核-2026-09-24.md》和自有证据,不改共享源码、入口/TODO/日志,不重复写101/102,也不重新执行导入。
请分别回答:①92项基线后的唯一业务变更Advert参数是否符合批准;②45键原值导入/逐键矩阵及实际3键初始化变化是否符合授权;③真实UI装备、原票据Confirmed、两次正常关闭、新进程/新缓存服务器恢复证据是否充分;④隐藏签到关闭回调的测试辅助与排行榜异常对R1验收的影响;⑤是否批准上节DecodePlayer缺键默认值单方法修订及对应原断言/真实消费者回归范围。需要具体P1/P2/P3与接受/修订后接受/退回结论,不以代码存在代替运行证据,不因核心闭环通过忽略已知异常。主会话收到后核hash、逐条裁决,按批准范围修复和验证,再处理正式关闭。