docs(upserver): 归档阶段裁决与批量迁移待办
This commit is contained in:
67
CodexOutput/upserver/101真实玩法与迁移档恢复业务包-待评审-2026-09-28.md
Normal file
67
CodexOutput/upserver/101真实玩法与迁移档恢复业务包-待评审-2026-09-28.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# 101真实玩法与迁移档恢复:完整业务包方案
|
||||
|
||||
2026-09-28,主会话;状态:待一次完整独立方案评审。**目标:101已导入的历史档能真实登录,完成一次普通抛竿、拉杆收鱼、收下奖励,保存并在新Unity进程恢复。** 本方案默认生产代码零改动,复用已关闭4C2的运行入口。不能把102已成功视为101也已通过。
|
||||
|
||||
## 1. 范围与执行方式
|
||||
|
||||
- 一个业务包包含准备、登录、玩法、保存、正常退出、重启恢复及对账;不再把备份、许可、运行准备各自拆成独立评审阶段。
|
||||
- 完整方案评审后由主会话核相关hash、逐条裁决;取得本包一次运行授权后连续执行。一次授权覆盖下述备份、两个游戏进程和最多一次付费抛竿,不逐步重新申请。需用户手动操作或启动CLI时只请求必要协作。
|
||||
- 内部检查点写开发日志。完成后一次汇总交付复核;发现明确超出本方案的业务改动,才提交针对性补充方案。
|
||||
- 固定 `http://s101.local:18080/`,仅Unity CLI Loop,不用UnitySkills、不打包。游戏只用101,102仅现有备份工具附带登录/Get,不在游戏使用或写102。
|
||||
- 不重导、不合并、不补发、不更改引导/活动/随机鱼/装备以绕过门。生产源码、配置、场景、预制体均不改;允许在本业务证据目录保存只读采样脚本、命令结果、许可归档和对账结果,不新增通用框架。
|
||||
|
||||
## 2. 已知事实和前提
|
||||
|
||||
导入已由 [D5裁决](P2AlphaImport101/D5-执行复核裁决与关闭.md) 限定关闭。历史参考是 `P2AlphaImport101/runs/20260928T073630Z-345b3ee1f47a419abf876bf5b5506d89/after.json`,55键逐值等于固定PF源。该文件只用于对比,不直接作为游戏permit的backupPath:现有许可要求备份位于 `KVGameplayLoopTests` 下。
|
||||
|
||||
同run/account.json证明NewlyCreated=false、InternalId=2、CreateTimeUtc=2026-09-16T12:58:05.860603Z;不能当成刚创建的新玩家。历史主档等级62、金币36550472、体力7275、装备20001、地图102、倍率索引3;实际倍率、活动和玩法资格必须在运行时读取,不能根据旧档推定。FishingChallengeData历史值为字符串null;两类历史空态兼容已经通过独立复核。
|
||||
|
||||
`KVGameplayLoopSetup`已有101/102许可支持;v3负责一次钓鱼,v1负责恢复登录。游戏登录仍先执行PF身份登录,再执行s101登录和KV加载,存在PF域名解析依赖;不能宣称本包游戏完全不访问PF。PF存档写入不在本包授权范围,发现即停止并调查。恢复登录可能产生既有登录保存/跨日写,不能称整个恢复进程只读。
|
||||
|
||||
## 3. 备份、许可与数据边界
|
||||
|
||||
复用锁定的 `P2AlphaImport101/D1-bin/Preflight.dll --backup-101-102`,从项目根运行。DLL SHA256=`AAA1276630E8633C131072DDF638639B92F60134A0425E17616A4A5A2A436607`,355328字节。禁止调用任何import分支。每轮备份为101/102各1登录+1Get,无KV Set/Delete;登录自身仍有账号元数据副作用。
|
||||
|
||||
计划四轮完整备份:S0游戏前、S1登录稳定且尚未抛竿、S2收下并正常退出后、S3新进程恢复并正常退出后。成功路径合计8登录+8Get用于备份,另计两次游戏登录、游戏加载Get和所有实际保存Set;分开记录,不能把工具计数当游戏总请求数。失败只补必要的一轮状态取证,不自动重复业务动作。
|
||||
|
||||
S0必须55键与D导入after原值一致,身份/关键档/配置匹配且解码有效;不一致则保留现状,说明差异后停止本次既定运行,不覆盖历史进度。保存S0原件、hash、键表。v3许可使用S0下101.json和它的55键集合;这是允许现有登录链访问/保存已备份键的上限,不是允许点击55种业务。新键写入保持原拒绝规则。
|
||||
|
||||
允许的游戏动作只有登录、一次普通付费钓鱼、收下、退出。钓鱼期间保留现有更严格写门:NewPlayerDataDic、实际地图鱼档Map_5_{area}、BattlePassRecordTask、MiniBPKeyNew、EventLuckGameRecord、EventLuckMagicPlayfabData,且必须在S0键集中。S0→S1的登录规范化/跨日差异单列来源,不混为钓鱼奖励;出现无法解释的键变化或写入则停止,不扩大白名单。未知/未消费键应原样保持。
|
||||
|
||||
用户运行确认时需保持101其他客户端停用直至本包结束;不沿用已结束的导入15分钟窗口。102不要求停用,其附带快照只报告观测值,不能把其他客户端可能产生的变化归于本次101游戏。
|
||||
|
||||
## 4. 连续执行步骤(内部检查点,不是五次评审)
|
||||
|
||||
| 检查点 | 连续执行内容 | 通过证据 |
|
||||
|---|---|---|
|
||||
| 0 开始 | 裁决方案、记录本包授权;核焦点hash、实际API、Unity空闲/无活动permit;保存旧claims清单;读取S0。使用无旧本包claim的新进程,必要时正常关闭旧进程再启动。 | 批准范围、S0、进程身份、原claims、CLI状态齐全。 |
|
||||
| 1 首次登录 | PrepareFishingRewardPermit(101,S0,55键);一次Play,等待登录/受控加载/首页稳定。禁止先操作签到或抛竿。采样游戏状态、准入环境、保存状态,读取S1并完成登录差异归因。 | Ready=true/Error为空、加载成功;登录保存确认;S1与运行时主档相符。 |
|
||||
| 2 一次玩法 | 主会话完成动作前采样后才通知用户:手动抛竿→拉杆→收鱼,成功停在奖励界面;失败不重试。记录实际鱼/装备/地图/倍率、扣费和奖励票据、奖励画面/数据后,再协作点击收下返回首页。 | 仅一次付费动作;原扣费票据确认;fishing-reward-confirmed先于presented;收下回首页;原票据与最终值可关联。 |
|
||||
| 3 保存退出 | 等既有保存确认,经QuitStage正常退出并确认closed/drained;归档v3许可,保留claim。取得S2并对账,再正常关闭Unity、确认旧进程已退出。 | 不靠强制Stop/杀进程模拟退出;未确认票据为0或有明确失败终态;S1→S2业务差异可解释。 |
|
||||
| 4 重启恢复 | 新进程、S2的101备份建立v1许可,登录且不操作玩法/领奖/装备;核对恢复值,再正常退出,取得S3、归档许可和证据,汇总交付。 | 恢复金币/体力/鱼档/任务进度与S2一致;登录附带变化单独归因,最终无活动permit、旧新claims保留。 |
|
||||
|
||||
进程退出有场景保存对话框时请用户处理,不强杀;CLI未连接时请用户Start Server,不无限轮询。这些是执行协作,不追加方案轮次。游戏失败后的安全退出也走已有保存/drain;不能为了凑齐闭环重建许可重扣一次费用。
|
||||
|
||||
## 5. 必须保留的准入与失败处理
|
||||
|
||||
复用 `UserService.KVFishingReward.cs` 的全部实际门:普通付费鱼、非免费/重试/决斗/固定列表/活动类型,无特殊鱼技能;无冲突引导、巡游/收集目标/存钱罐/砍价/进行中挑战,频次与倍率/刺鱼解锁合格;事件配置和Guidance投影匹配。自然鱼只在动作中选择,事先不能保证抽中合格鱼;拦截照常停止,不能修改随机结果。
|
||||
|
||||
PF解析失败、账号不符、加载失败、配置漂移、准入拒绝、并发迹象、Set失败/Unknown或写门拒绝:保存现有日志和快照,停止后续玩法。扣费已确认而奖励失败则如实记账,不自动补发/重试。服务器结果不明不重放Set。快照也失败则明确证据缺口,不当作没写入。恢复失败不把S0重新导入。
|
||||
|
||||
本方案不授权任意故障修复代码。若查明必须改业务逻辑,集中记录实际阻塞及最小差异,完整评审补充后再改;一般CLI参数、证据采样或日志路径修正按原范围处理并记日志,不单独开方案。
|
||||
|
||||
## 6. 验收和交付
|
||||
|
||||
1. 101实际加载既有55键档,关键运行时数据与S1一致;历史null不再抛异常;未回退空档/PF旧进度。
|
||||
2. S1是在动作前冻结;S1→S2核对体力/消费累计、金币、鱼数量/重量、钓鱼次数和实际任务变化,关联扣费/奖励票据与服务器结果。获取到公式输入才做独立重算;缺项如实列明,不能用同一结果自证公式正确。
|
||||
3. 奖励确认后显示,收下真实回首页;S2保存成立,新进程恢复成立,S3差异有归因。登录跨日变化不能掩盖玩法未保存。
|
||||
4. 无第二次付费、无导入/覆盖102、无放宽门/删claim/打包;所有非预期业务操作(如误点签到)记录,不能标成纯净单动作验证。
|
||||
5. 一份交付记录汇总实际命令、进程、4快照、票据/日志/关键截图、逐键对账、授权与边界、缺口;一次独立执行复核后主会话关闭。本包最多证明101这条真实链,不代表26模块外键、全活动、热换号、完整4B3B/C或G4完成。
|
||||
|
||||
证据放在 `CodexOutput/upserver/Gameplay101Validation/`,运行产生的原有permit/run/backup沿用现有目录并在交付索引引用,不复制庞大历史材料。受审hash仅冻结本方案、直接依赖及历史参考,见同目录 `review-hashes.json`;共享状态/日志不纳入冻结清单,更新检查点无需滚动重封全部项目。
|
||||
|
||||
## 7. 交给评审AI的提示词
|
||||
|
||||
请独立审查本完整业务包,先核 `Gameplay101Validation/review-hashes.json`,再核对涉及源码与4C2既有闭环。重点检查:101既有账号与55键备份;v3/v1边界;PF身份依赖;登录写和钓鱼写的区别;动作前S1;一次扣费与奖励/退出确认;新进程恢复;备份工具附带102只读;失败后不重导/重放/绕过准入。
|
||||
|
||||
给出通过/有条件通过/不通过,逐条问题、严重级别、依据与最小修订。只将真实阻断项作为开工条件,不因文档样式或内部检查点另设实施前复核阶段。只读审查,不运行Unity或正式接口,不修改主会话共享文档。请只落盘 `Gameplay101Validation/完整业务包独立方案审查.md`。此次没有新生产代码,方案批准后直接连续运行并统一复核;不得假设未知运行结果已经成立。
|
||||
44
CodexOutput/upserver/3C补修复终审裁决与4A准入-2026-09-23.md
Normal file
44
CodexOutput/upserver/3C补修复终审裁决与4A准入-2026-09-23.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# 3C补修复终审裁决与4A准入
|
||||
|
||||
日期:2026-09-23。主会话裁决。用户指令:“复核完成,继续下一步”。
|
||||
|
||||
## 1. 3C正式结论
|
||||
|
||||
**接受用户指定外部AI的实施复核,R1–R5关闭,3C通过,阶段3(G3)恢复关闭。**
|
||||
|
||||
依据:[阶段3C补修复独立实施复核](阶段3C补修复独立实施复核-2026-09-23.md),报告SHA256为D39DAE878C48F9987C7BE6F1788927491B010D9CBCF4B188D25CF4ADD7668C19。
|
||||
|
||||
本轮重新计算了repair-final-source-hashes.json内全部10项:测试宿主Program、csproj及8份生产源码均匹配。Program完整SHA256为66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A。报告首行缩写hash有笔误,以同格完整hash及本轮实际重算为准,不修改外部报告原文。
|
||||
|
||||
| 项目 | 裁决 |
|
||||
|---|---|
|
||||
| R1 实际收尾和自动清理门 | 关闭:linked CTS、等待body/Close、不确定原运行禁止自动cleanup;失败后不等未结束票据挡住Close |
|
||||
| R2 manifest与路径边界 | 关闭:严格schema/重复字段、固定账号/精确key/run绑定、拒绝路径和链接、登录前验证 |
|
||||
| R3 原始结果不可升级/覆盖 | 关闭:持久化原判、CreateNew原产物、补清理独立结果 |
|
||||
| R4 值隔离/Owner重建/Delete实测 | 关闭:精确值、新Cookie/Owner、102后读101、删除前存在 |
|
||||
| R5 组合故障与诊断缺项 | 关闭:真实C子进程Get、Unknown不重发、主档异常策略和真实状态诊断 |
|
||||
| F2 外部实施复核 | 完成:外部复核接受、无新P1/P2、逐项矩阵确认,并独立复跑8/8与42/86/29 |
|
||||
|
||||
接受外部复核关于Unity证据仍有效的裁决:最终变化仅在Unity工程外测试宿主,8份生产源码未变;外部已对最终版本独立复跑生产回归。正式run已清理,无需为了本次文档裁决重复访问正式服。
|
||||
|
||||
三项P3按非阻塞观察保留:
|
||||
|
||||
1. Latest-*.log是可覆盖指针,per-run结果才是不可变证据。
|
||||
2. runs含故意损坏的离线负例,通用扫描必须区分,不能把解析错误当正式遗留。
|
||||
3. Confirm只在成功Flush后等待已终结票据;后续改动不得破坏此前提。
|
||||
|
||||
## 2. 4A准入结果
|
||||
|
||||
**3C前置门已满足;4A原设计审查继续有效。开工检查新发现构建文件白名单遗漏,先做最小差异评审,尚不修改代码。**
|
||||
|
||||
已审设计要求新增独立PlayerKVLocalReadResult.cs,并让PlayerKVSessionOwner引用它。现有3个链接Owner的独立csproj使用显式Compile清单,没有该新增依赖。按原白名单只改生产Owner后,这些测试项目无法解析新结果类型,A12回归不能完成。
|
||||
|
||||
静态证据:[4A开工依赖核对](阶段4A开工依赖核对-2026-09-23.json)。尚未修改源码或制造编译失败;这是构建依赖推导,不是现有3C缺陷,不撤销3C通过。
|
||||
|
||||
任务书明确规定:“发现接口缺口先落盘差异方案并评审,不能临时扩展文件白名单。”本次需要增加3个csproj白名单,故不把用户“继续”解释为免除其规定的设计差异审查。
|
||||
|
||||
下一步只评审 [4A构建依赖最小差异方案](阶段4A构建依赖最小差异方案-2026-09-23.md)。通过并裁决后,本会话直接按4A检查点实施,不重做整套设计评审。
|
||||
|
||||
## 3. 仍然保持的范围
|
||||
|
||||
4A只做会话桥接和Owner安全只读接口,合成传输验证A1–A12;不接UserService/PlayFabMgr/玩法、不改服务器/包、不删SDK、不访问正式业务KV、不打包。正式API仍为http://s101.local:18080/。游戏真实存档迁移仍须4B/4C及后续验收。
|
||||
49
CodexOutput/upserver/3C补验收与4A方案审查裁决-2026-09-23.md
Normal file
49
CodexOutput/upserver/3C补验收与4A方案审查裁决-2026-09-23.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 3C补验收与4A方案审查裁决
|
||||
|
||||
日期:2026-09-23。裁决者:主会话。依据:《3C补验收与4A方案独立审查-2026-09-23.md》。本轮确认审查并同步文档,未修改代码、未执行测试或访问正式服。
|
||||
|
||||
## 1. 审查版本核对
|
||||
|
||||
在修改方案文档前核验以下SHA256,与独立审查记录全部一致:
|
||||
|
||||
| 对象 | SHA256 |
|
||||
|---|---|
|
||||
| 3C复核更正与补验收 | `20CEA4BA6B274BBD108E7B931DAE5FCEDF457D0A803A0343622A33D274DFBFD5` |
|
||||
| 阶段4分期与4A方案 | `4A04700D9CA97992C6E0D25B2614DFA7AF6EECD99EFC4C3756FC134704C28D06` |
|
||||
| 4A待审任务书 | `AF2E5217FE1DA1DFFCBC89CF707BE37EFCCEA89358C61768C824976673686F8E` |
|
||||
| 3C Program.cs | `3C89DA087AA3841ADBA79A11BB2BAC724FD8F5F429D2124F826185EBBDDA64DA` |
|
||||
|
||||
本文裁决后的方案修订会改变文档hash,不影响上述已审版本的追溯。独立审查原文保持不变。
|
||||
|
||||
## 2. 双裁决
|
||||
|
||||
- **A:3C修复设计通过,批准按限定范围实施修复。** R1/P1、R2/P1、R3/P2、R4/P2、R5/P2全部确认成立,目前仍未修复,不恢复3C/G3通过。
|
||||
- **B:4A设计通过,编码暂不放行。** 设计无新增P1/P2,必须先完成3C修复、逐行补验收和用户指定外部AI复核,再完成主会话裁决并批准4A任务书。
|
||||
- 原运行、回归和Unity历史证据保留,不等于修复后复验结果;当前无正式数据损坏的实测证据。
|
||||
|
||||
## 3. 六项P3逐条裁决
|
||||
|
||||
| 编号 | 裁决 | 实施说明 |
|
||||
|---|---|---|
|
||||
| A-S1 | 采纳 | 正式编排建立linked CTS,传递到登录/Owner/直接传输,超时后停止接收后续变更、请求取消并等待全部操作与Close真正收尾。取消是请求,不能假设忽略取消的Handler已结束;测试用闸门证明顺序。超时/Unknown的原运行仍禁止自动cleanup,即使本地传输已收尾;只有后续显式cleanup可尝试补救。 |
|
||||
| A-S2 | 采纳 | manifest持久保存原运行断言状态、最终结果和不确定状态;尚未完成也不得按成功处理。原result/log不可覆写。补cleanup生成独立产物,只更新清理事实,不把原失败或未完成运行升级为通过。 |
|
||||
| A-S3 | 采纳 | 用拒绝重复JSON属性的JObject严格解析,再逐字段白名单/类型映射;读取前验证路径,登录前完成全部schema/key/路径校验。合法cleanup输出待删key的SHA256清单,不回显明文,不额外增加用户确认步骤。 |
|
||||
| B-S1 | 采纳 | 在A2/A3增加初始Get/Create失败后重开验证:失败owner完成收尾后清空桥接活动位;后续合法Open可用。若Close失败,保留关闭失败状态,不能无条件清空并继续Open。 |
|
||||
| B-S2 | 采纳 | A8增加ReadLocalSnapshot与在途Flush并发:验证baseline→pending→localOnly合并视图,且读取不改变在途批次或发送次数。 |
|
||||
| B-S3 | 采纳 | 同时存在归属失效/关闭与非Ready时,`StaleOrClosing`优先于`NotReady`;读取前、读取后及处理NotReady时均按该优先级检查。 |
|
||||
|
||||
以上是现有方案澄清,不扩展架构或修改范围;无需为了这些已裁决P3单独再开一轮设计审查。修复实施后的独立复核仍是强制门。
|
||||
|
||||
## 4. 优先级和边界
|
||||
|
||||
R3严重度保留P2,但执行优先级按P1处理,与R1/R2同为正式服重跑前的阻塞项。实施顺序保持R2→R1/R3→R4/R5→离线验证和限定源码审查→新正式正常路径→回归/Unity/逐行证据→外部复核。
|
||||
|
||||
3C仅允许修改`CodexOutput/upserver/KVStage3CTests/Program.cs`、必要时其csproj、新增该目录证据,主会话维护实施记录和入口文档。不得修改生产代码、既有42/86/29测试、服务器、游戏入口或Unity项目配置。旧run证据只读保留。
|
||||
|
||||
正式API固定`http://s101.local:18080/`,账号101/102仅使用本次manifest登记fixture;离线安全门通过后才能显式执行新正式run,正式服不制造故障。
|
||||
|
||||
4A文件白名单仍由其任务书约束,本裁决不提前允许修改Owner或新增生产桥接类。
|
||||
|
||||
## 5. 下一步
|
||||
|
||||
下一步由主会话实施3C R2及R1/R3安全修复,逐个检查点保存开发日志;在补验收和外部复核完成前,状态保持“3C修复进行/待验收,4A设计已通过待前置”。
|
||||
75
CodexOutput/upserver/3C补验收与4A方案独立审查-2026-09-23.md
Normal file
75
CodexOutput/upserver/3C补验收与4A方案独立审查-2026-09-23.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# 3C补验收与4A方案独立审查
|
||||
|
||||
日期:2026-09-23。审查者:用户指定的独立审查AI(ZCode会话)。性质:只读审查,仅新增本文件;未修改代码、共享入口文档,未访问正式服,未使用子Agent。
|
||||
|
||||
## 审查对象SHA256
|
||||
|
||||
| 文件 | SHA256 |
|
||||
|---|---|
|
||||
| `阶段3C复核更正与补验收-2026-09-23.md` | `20CEA4BA6B274BBD108E7B931DAE5FCEDF457D0A803A0343622A33D274DFBFD5` |
|
||||
| `阶段4存档接线分期与4A方案-2026-09-23.md` | `4A04700D9CA97992C6E0D25B2614DFA7AF6EECD99EFC4C3756FC134704C28D06` |
|
||||
| `阶段4A实施任务书-待评审-2026-09-23.md` | `AF2E5217FE1DA1DFFCBC89CF707BE37EFCCEA89358C61768C824976673686F8E` |
|
||||
| `KVStage3CTests/Program.cs` | `3C89DA087AA3841ADBA79A11BB2BAC724FD8F5F429D2124F826185EBBDDA64DA`(与更正文档记录一致,即上一轮终验所验收版本) |
|
||||
|
||||
## 双裁决摘要
|
||||
|
||||
- **裁决A(3C复核更正与修复设计):通过。** R1–R5五项发现全部有源码依据,严重度评定恰当;修复任务书方向足够,附3项P3补充(A-S1~A-S3)。补验收完成前3C不得恢复"通过"。
|
||||
- **裁决B(4A方案可实施性):通过。** 接口租约、桥接所有权、Close屏障、旧句柄失效、取消语义均正确且在现有生产接口内可实现;A1–A12覆盖充分,附3项P3补充(B-S1~B-S3)。**4A编码批准仍被3C补验收前置门阻塞**(任务书前置门已正确列出)。
|
||||
|
||||
无新发现的P1/P2(R1–R5系对既有代码的确认,非本审查新增缺陷)。
|
||||
|
||||
## A:3C复核与补验收——R1–R5逐条确认
|
||||
|
||||
**R1/P1:确认成立。** 源码:`Program.cs:533` `action().WaitAsync(TimeSpan.FromSeconds(20))`仅取消等待不终止任务;`Live()`的L1/L2经`Run`包装(行283/287);`LiveAccount`内`CreateAsync(..., default, ...)`(行310)无生命周期token,无外部取消通路;超时后孤儿任务继续在途变更,而`finally`的`CleanupCore`(行296–301)与其并发;`HadUnknownWrite`由孤儿路径置位(行319–320)可能晚于`WriteArtifacts`。触发:正式网络慢于20s的组合步骤。影响:清理与迟到写重叠、结果文件失真。P1恰当。
|
||||
|
||||
**R2/P1:确认成立。** 源码:`ValidateManifest`(行516–523)——`!k.StartsWith(m.Prefix)`在Prefix为空串时恒真;Prefix无格式约束(任意前缀+以其开头的任意≤128键均可过);keys无唯一性与精确后缀校验;`RunDirectory/CacheRoot`仅要求`InsideRuns`未绑定与manifest同一run;`InsideRuns`(行525–529)不拒绝重解析点/链接;`JsonConvert.DeserializeObject`不拒绝重复JSON属性与未知字段。触发:被篡改/损坏的manifest+操作者运行`--cleanup`。影响:可授权删除非fixture key(含业务key)。P1恰当。
|
||||
|
||||
**R3/P2:确认成立。** 源码:`CleanupCore`行363 `Completed = !HadUnknownWrite && CleanedAccounts==2`,不依据断言失败;`Cleanup`(行332–341)独立进程以`failed=0`起点重跑并`WriteArtifacts`(行340→554–556)**覆盖原result.json与log**。影响:失败运行可被表现为成功且原始失败证据被销毁。P2成立;鉴于证据覆写后果,建议主会话将其修复按P1优先级排序(不改变分级)。
|
||||
|
||||
**R4/P2:确认成立。** 源码:`LiveAccount`行328–329只断言`Count==2`与键存在,不核对值;L2后不重读101;verify用`DirectGet`(裸Client)而非新登录+新Owner重开同缓存(矩阵L4缺失);删除目标`Keys[2]`从未先确认存在(碰撞预检全缺失⇒live删除的是从未写入的键,删除路径未被真实行使)。P2恰当。
|
||||
|
||||
**R5/P2:确认成立。** 源码:`OfflineChild`c分支(行145–150)仅Open+Inspect,无Get/Ready断言(重开未Get状态必为NotLoaded);`ConservativeUnknown`重开Owner使用新RecordingHandler(行230–231)无计数,行233`mutationCount==1`只覆盖首只handler,重开后不重发未证实;`CorruptionPolicy`缺"主档缺失+bak/tmp遗留→RecoveryRequired";live编排Unknown退出替身(矩阵L7)不存在;行102诊断`SnapshotDto("101", d, PlayerKVSyncStatus.Ready)`硬编码Ready,live诊断缺state/ticket/epoch真实字段。P2恰当。
|
||||
|
||||
### 修复设计的三点补充(P3,建议随裁决采纳)
|
||||
|
||||
- **A-S1(R1)**:修复应把owner生命周期token接到编排级linked CTS,使孤儿传输被确定性Cancel并经Close drain收尾,而非仅等待其自行结束;替身用例须用闸门同步证明"超时→停止→传输收尾完成→才允许清理"的顺序(不使用Sleep)。
|
||||
- **A-S2(R3)**:原运行的断言状态须持久进manifest(当前manifest无该字段,补清理无法据原运行判定Completed);补清理只生成独立补救产物,原result/log保持只读。
|
||||
- **A-S3(R2)**:"未知字段/重复属性拒绝"需显式严格解析(JObject白名单字段映射;JsonConvert默认行为不满足);建议`--cleanup`在登录前完成全部校验,并输出将删除key的SHA256清单(不回显明文)供操作者核对。
|
||||
|
||||
## B:4A方案可实施性
|
||||
|
||||
| 审查点 | 结论 |
|
||||
|---|---|
|
||||
| Owner只读接口租约 | 正确。复用Owner准入门(含closing/closed/归属校验);`State.ReadLocal`自带原子状态检查并返回独立拷贝(3A实现已核);读后复查归属;不新建第二State、不改3A状态机 |
|
||||
| 桥接重复拥有session | 无。明确"持有引用不拥有、不Dispose、登录控制器在Close完成后销毁";单一所有权成立 |
|
||||
| Close挡住新Open | 成立。桥接串行屏障+3A文件租约(Busy)双保险;A4覆盖"忽略取消传输"等待场景 |
|
||||
| 旧句柄写新账号 | 被阻止。固定句柄+逐操作验证OwnerInstanceId/epoch(A6);"仅全局epoch不足"判断正确——延后回调必须持固定句柄 |
|
||||
| 取消等待误取消收尾 | 无。Open排队取消仅取消该等待者;Close异常保留失败状态并拒绝后续Open,锁未释放不被误作可重用 |
|
||||
| 文件白名单 | 足够。`internal CreateAsync(handlerFactory)`注入点已存在(3B验证过同程序集编译),无需新增公共传输入口;修改`PlayerKVSessionOwner.cs`属已验收文件最小增量,A12要求3B回归保持通过且未允许文件hash不变 |
|
||||
| 生产现状断言抽查 | 全部属实:`UserService.cs:306`HexNumber、`SurveyService.cs:56`、`FriendService.cs:375`、`FishingBehaviorB.cs:770`(async void)、`FishingTurntablePanel.cs:517/585`无条件`isDataSynced=true`、`DataCenter.PlayerData.cs`LoadPlayerData/NewPlayerDataDic、Coordinator tickets只增不清退 |
|
||||
| 4B/4C约束反噬4A接口 | 未发现。固定句柄、空KV阻塞策略、票据语义均可由现有+4A新增接口承载 |
|
||||
|
||||
### 三点补充(P3)
|
||||
|
||||
- **B-S1**:建议A2/A3扩展——`CreateAsync`失败(如初始Get失败)后桥接活动位必须清空,后续Open不被卡死。
|
||||
- **B-S2**:建议增加"句柄ReadLocalSnapshot与在途Flush并发"用例:读应得到baseline→pending→localOnly合并视图且不干扰在途批次。
|
||||
- **B-S3**:`ReadLocalSnapshot`错误分类中`StaleOrClosing`与`NotReady`并存时的优先级建议明确(建议StaleOrClosing优先,避免旧句柄被误报为数据未就绪)。
|
||||
|
||||
## 证据类型区分
|
||||
|
||||
- **历史运行证据**(保留为执行事实):offline 7/7、live 3/3、42/86/29、Unity编译——不证明矩阵逐项满足;更正文档对此的定性正确。
|
||||
- **静态推导**:R1–R5全部为源码级推导(本审查逐行确认);均为"源码可达风险与覆盖缺口",不是已发生的数据事故;未观察到正式服数据损坏。
|
||||
- **尚未实测**:R1迟到写与清理重叠(合成复现方法:受闸门控制的延迟handler使L1超过20s,断言清理开始前传输已收尾——按更正文档§3.2在修复后执行);L7替身;修复后的全部矩阵与新的正式正常路径run。
|
||||
|
||||
## 需主会话确认的事项
|
||||
|
||||
1. 采纳A-S1~A-S3、B-S1~B-S3为实施说明。
|
||||
2. R3修复优先级建议按P1对待(证据覆写后果)。
|
||||
3. 重申:3C补验收(含修复、逐行矩阵、外部复核)完成前,不得以4A设计通过为由批准编码;4A任务书前置门已正确列出该条件。
|
||||
4. 更正文档§4关于"八文件历史基线"的自我更正(S101AccountSession仅本阶段hash)属实,无需再动。
|
||||
|
||||
## 结论
|
||||
|
||||
- **A:通过**(R1–R5确认,修复设计足够+3项P3补充;3C恢复"通过"须待补验收闭环)。
|
||||
- **B:通过**(4A方案可实施+3项P3补充;编码批准以3C补验收闭环为前置)。
|
||||
- 本审查无新增P1/P2。
|
||||
162
CodexOutput/upserver/B3BatchMigration/B01-design-hashes.json
Normal file
162
CodexOutput/upserver/B3BatchMigration/B01-design-hashes.json
Normal file
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"createdUtc": "2026-09-28T10:08:57.6522702Z",
|
||||
"purpose": "B01完整方案独立审查;项目根相对路径;共享状态和可更新执行TODO不冻结;清单不代表修改授权",
|
||||
"count": 30,
|
||||
"items": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3BatchMigration/B01-通知提示与已读状态批级方案-待评审.md",
|
||||
"sha256": "3F9B1DAAE6D81546CD8B36ECD5DA1DF359BD27842B91A51F290504179812F2E0",
|
||||
"bytes": 15840
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3BatchMigration/B01-独立方案审查提示词.md",
|
||||
"sha256": "3B689024ACD52A4733AD9CCC0E17D6C4D14E8FA471938227874A90563E59C0B1",
|
||||
"bytes": 1719
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3BatchMigration/调用分类与现状映射.json",
|
||||
"sha256": "4537878A379D010104CD8C5A66997794095B02279D9F532BBB0433335EEFE768",
|
||||
"bytes": 155605
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3BatchMigration/分类统计.json",
|
||||
"sha256": "8E142B41D4A1CB92EF09DFC267777053B97DF9ADCFE2F1741CA651ECFAC848F7",
|
||||
"bytes": 836
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3BatchMigration/current-scan/calls.json",
|
||||
"sha256": "BA3720B8C802E2B85FB7F7FA1C8DE1D527B3E1C81D48EB068073DD905880C51E",
|
||||
"bytes": 917099
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3BatchMigration/current-scan/source-hashes.json",
|
||||
"sha256": "C1D533D806AEF33537AAE58BD9A5F850C810891C48F056C49D9499F0E45AD02E",
|
||||
"bytes": 276004
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/calls.json",
|
||||
"sha256": "12588092ECE71E12FDFD829B0A65F23EFA53241F49C527067B0ADDE423E47C61",
|
||||
"bytes": 913483
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/Program.cs",
|
||||
"sha256": "542C2A6EE08EBC88E71A61C423587FEB9335DF16232FC134F4F22328B4BE865E",
|
||||
"bytes": 5303
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/bin/Debug/net9.0/B3DesignAudit.dll",
|
||||
"sha256": "B01AC846E3DD015A36744597872E46861981C4950E7D955C76324EF486D99722",
|
||||
"bytes": 17408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/流程修正主会话意见-审查侧裁决-2026-09-28.md",
|
||||
"sha256": "F77EC297607BEF1D9687F0B5778EC6585D9B083C87D148655ECA722726B0390F",
|
||||
"bytes": 5436
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/流程修正主会话意见-待审查裁决-2026-09-28.md",
|
||||
"sha256": "21F7F1F1B853E18B598F4B5817EC051FC92FBC5A06B58D4E25E4EFC7930A61D8",
|
||||
"bytes": 9195
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3分期与4B3A固定存档入口方案-待评审-2026-09-24.md",
|
||||
"sha256": "FA5EB445C77C9F11E3EEE71BEE8007A5A25AB76761DD4F75EFF93B23360B7022",
|
||||
"bytes": 21798
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/SettingService.cs",
|
||||
"sha256": "5D139BE63E13A3D3248D866C46A2D07F9D0917F624E0073D9CF7FE5E05C561D8",
|
||||
"bytes": 5337
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/ILocalNotificationService.cs",
|
||||
"sha256": "B5763A9CCB4A0C079916345F7D41371A4B9E73B706D5B45468C18345D7EBFEE5",
|
||||
"bytes": 6672
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/ClubService.cs",
|
||||
"sha256": "DC94626E1F386F17FCCA3D3C12D357FE95CEE8E5F50A943E73770399F3B2CD42",
|
||||
"bytes": 43338
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Setting/SettingNotificationsGradePopupPanel.cs",
|
||||
"sha256": "177E9F1F6B680CF76A8C0C94653A4C02DAB23DDB56D4A85CEA525C3F01A3F1E0",
|
||||
"bytes": 672
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Setting/SettingNotificationsPopupPanel.cs",
|
||||
"sha256": "783F3973B240BB8BC6C0EAB6449610079C9B59B0666E73A1D101465DEC75E3E1",
|
||||
"bytes": 634
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Setting/SettingPopupPanel.cs",
|
||||
"sha256": "AF64C5E1CADAD9C543E98A8406F92576A76574F35B8556BBB295EF5A6429D8CF",
|
||||
"bytes": 8854
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/GiftNoticePanel.cs",
|
||||
"sha256": "A1737674CAEBDD91F4EA2F18C488CDC62F186D948D3D49B4EA316E459C2D86CC",
|
||||
"bytes": 2440
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Social/FishingSocialPanel.cs",
|
||||
"sha256": "1E33FBD3CF6EF76C20CF76FA7EF12028A31EE062EF4C1EA26EB2A701AC85DD6E",
|
||||
"bytes": 7122
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DebugFunc.cs",
|
||||
"sha256": "F7968007D44382D6DF17E1239FDA9FBA37BAEA40F5FD608D9412561BC0368107",
|
||||
"bytes": 36052
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "768C2935FA702ACAA7E6F20FA9E82A883E3863B3104ACFD519DFFEBA3A890C83",
|
||||
"bytes": 65923
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "E75C8BEDE21878286EF4E247BB3BE24CE81B81BFD1EEB3106E7B10468FFA9195",
|
||||
"bytes": 15712
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/SubBoostrap.cs",
|
||||
"sha256": "B62354B0761DCCD445A19C25D7379ACB71FFF2FD47D07BEB2101E5A79889D381",
|
||||
"bytes": 18341
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/LoginStage.cs",
|
||||
"sha256": "D95641EEB076B75D86F57855F71B4F83894519CC6F3890F1919490FB2FF45C45",
|
||||
"bytes": 6152
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs",
|
||||
"sha256": "45300AA455CF43C07286A442E7A2C8534B3654C4AEB8316CA5EB3A20593AEA0D",
|
||||
"bytes": 6963
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"bytes": 13612
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs",
|
||||
"sha256": "C9C76A16F61CBC3CC748A0F44B581508B4178E7F322C43C8F05E2FC8707345DC",
|
||||
"bytes": 1471
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "FBDB253D3415E35D7D30F867DA057A84E91EAA7DE2FE74094707C517CB8B51A1",
|
||||
"bytes": 76183
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs",
|
||||
"sha256": "710A0050277BE07AC781F976945D8D2DDF7704EA616D0BF83797ABA2FA6530EA",
|
||||
"bytes": 6874
|
||||
}
|
||||
],
|
||||
"expectedAbsent": [
|
||||
"Client/Assets/Editor/KVPromptStateValidation.cs",
|
||||
"Client/Assets/Editor/KVPromptStateValidation.cs.meta",
|
||||
"CodexOutput/upserver/B3BatchMigration/B01Tests"
|
||||
]
|
||||
}
|
||||
15
CodexOutput/upserver/B3BatchMigration/B01-封板核验.json
Normal file
15
CodexOutput/upserver/B3BatchMigration/B01-封板核验.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"verifiedUtc": "2026-09-28T10:08:58.0972395Z",
|
||||
"manifestCount": 30,
|
||||
"hashMismatches": 0,
|
||||
"absentCount": 3,
|
||||
"classified": 224,
|
||||
"uniqueStableIds": 224,
|
||||
"sourceFilesChecked": 2108,
|
||||
"sourceFilesChangedSinceScan": [],
|
||||
"selectedStableIds": [
|
||||
"B3-C170",
|
||||
"B3-C177",
|
||||
"B3-C178"
|
||||
]
|
||||
}
|
||||
9
CodexOutput/upserver/B3BatchMigration/B01-独立方案审查提示词.md
Normal file
9
CodexOutput/upserver/B3BatchMigration/B01-独立方案审查提示词.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# B01独立批级方案审查
|
||||
|
||||
请只读审查C:\projects\ft的4B3B首批“通知提示与俱乐部已读状态”。先读上级《流程修正主会话意见-审查侧裁决-2026-09-28.md》,本目录《执行TodoList.md》《B01-通知提示与已读状态批级方案-待评审.md》及《调用分类与现状映射.json》《分类统计.json》。以《B01-design-hashes.json》独立核SHA256和长度;当前源码快照在current-scan,旧calls.json不得覆盖。
|
||||
|
||||
这是正式业务代码准备方案,不是新Editor单次许可,不启用正式KV;B→C门保持。本批3处存档调用须连同通知异步及多个UI上游审查,不以“少于30处”判不通过,也不能因末端一行保存就认定简单。8运行文件、1固定Editor测试入口及本批独立测试目录为候选白名单,尚未批准编码。
|
||||
|
||||
重点:固定实例/固定Owner、不在回调后Resolve新服务;合法缺键与拒读区别;普通本地Accepted及可能提交错误;授权await、异常finally、旧UI/红点副作用;B2同实例Reset/Replace;设备通知与账号提示的分工;C未来绑定是否可行;整个升级/社交/奖励链仍未开放,不能越界宣称完成。检查方案§6全部验收能否实现且不靠测试替代实现;对原有非Editor编译问题区分新增回归。
|
||||
|
||||
输出总裁决、hash结果、逐条问题和最小修订、是否可实施及批准边界。只落盘报告到本目录《B01-独立方案审查.md》,不改共享入口/方案/代码,不运行Unity/真实API/测试账号,不生成许可或打包。主会话随后核hash并逐条裁决。流程内实现错误修复无需逐调用补审,合同/范围变化才补审。
|
||||
119
CodexOutput/upserver/B3BatchMigration/B01-通知提示与已读状态批级方案-待评审.md
Normal file
119
CodexOutput/upserver/B3BatchMigration/B01-通知提示与已读状态批级方案-待评审.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# B01:通知提示与俱乐部已读状态批级方案
|
||||
|
||||
2026-09-28,主会话;待完整独立方案审查,未批准编码。本批属于4B3B的业务接线准备,**不是4B3C正式启用**。按F01–F12统一流程,一份方案、一轮方案审查、连续实施、一轮批末实施复核。
|
||||
|
||||
## 1. 当前分类与选批
|
||||
|
||||
复用既有B3DesignAudit扫描器,不修改扫描源码,在独立目录current-scan生成当前快照。旧223处全部可映射:B3-C050原PlayerData.SavePlayerData的写已提取到SerializeAndSavePlayerData,源调用保持;新增B3-N001是PlayFabMgr.StartKVGameplayLoopSync中的内部计时调用,源于之前Editor验证接线。本轮没有新增生产调用。
|
||||
|
||||
| 分类 | 当前数量 | 含义 |
|
||||
|---|---:|---|
|
||||
| 首批候选 | 3 | B3-C170、C177、C178,本方案详审 |
|
||||
| 待迁移分类 | 200 | 按业务/读取/生命周期/交易等分派,未完成各自上游完整审计 |
|
||||
| 已有限定处理、正式仍待 | 4 | 复用已有R1/4C/Editor证据,不能宣称正式路径全部完成 |
|
||||
| 保留PF待专项 | 13 | 旧PF兼容/身份/SDK/公共资料,不改成本人KV |
|
||||
| 本次排除 | 4 | GM路径,后续单列,不等于永久允许不迁移 |
|
||||
|
||||
逐项见《调用分类与现状映射.json》,旧ID保持稳定,当前扫描ID另列。方法名候选不是语义调用关系;当前224处也不是全部可机械替换的任务。扫描仍不涵盖所有反射/UnityEvent绑定和新的显式KV调用,不能以数字清零关闭B。
|
||||
|
||||
三个选择比较:
|
||||
|
||||
- 本批选择**通知提示/已读标记**:非消费、固定键;覆盖合法缺键、内存提交顺序、异步系统授权和多个UI入口,适合复用固定句柄的第一组业务合同。
|
||||
- 不按“前30个Update”选:足迹涉及高位保持与社交奖励,问卷涉及网络响应与奖励,不能因末端一行保存就混入低风险批。
|
||||
- 不先做定时器/加载发布:属于C,依赖B操作归属;不绕过原B→C门。
|
||||
|
||||
本批不改通知系统权限含义、经济公式、奖励、身份、俱乐部网络API或其他红点。ShowNotice仍是“已展示/处理过提示”而不是“操作系统已授权”;IsOpenClubRed写"1"仍表示已读,内存IsOpenClubRed=false。
|
||||
|
||||
## 2. B/C边界与固定归属
|
||||
|
||||
本批只实现固定Owner下的业务方法和调用者持有原服务的规则。**不修改SubBoostrap/LoginStage/UserService注册,不开放SaveBackend=kv,不获取4B1私有handle,不从PlayerKVGameplayLoop取句柄,不生成v4许可。** B验收使用既有合成session/Bridge;默认PF构造与已有受控Editor玩法保持。
|
||||
|
||||
复用PlayerKVGameSessionHandle与PlayFabMgr.ReadKV/WriteKV,不再造会话管理器/通用Registry/动态当前账号路由。为DefaultSettingService、ClubService提供internal固定KV构造入口:参数是非null、当前可读的既有handle,存于readonly字段;原无参构造继续表示PF。KV构造失败不能退回PF。LocalNotificationService的KV构造接收该次固定DefaultSettingService及配置依赖,不能在授权回调恢复后重新Resolve当前账号服务。
|
||||
|
||||
这些是生产可用的业务实现,不限UNITY_EDITOR;测试入口必须Editor或独立合成宿主。正式C尚未接入,不能因此宣称玩家现在已能使用此新KV路径。C未来必须为每次登录创建新的这些绑定实例,重新发布到游戏容器;同一实例不允许改绑新handle。旧实例仍只指向旧Owner,旧回调即使持有同一账号ID也失效。C还须撤销/退订旧实例及通知订阅;本批不把设备级通知服务生命周期重构提前完成。
|
||||
|
||||
B2受控加载的无参对象Reset/Replace继续照旧。固定KV实例不参与跨账号原地改绑;即便测试人为对旧实例Reset/Replace成新数据,旧Owner失效后也必须在写业务字段前拒绝。不得以ReferenceEquals(service)或账号ID相同代替Owner有效性检查。
|
||||
|
||||
本批不放行任何真实社交界面,也不声称整个ClubService已迁移。其捐赠、签到、网络回调及身份另批处理;C不得仅因SetOpenClubRed完成就启用所有俱乐部功能。
|
||||
|
||||
## 3. 每调用规则表
|
||||
|
||||
| 稳定ID/当前成员 | 上游与首次副作用 | 固定归属及处理 | 失败/验证 |
|
||||
|---|---|---|---|
|
||||
| B3-C177 DefaultSettingService.ShowNotice getter | CheckRequestPermission、通知面板;原首次修改为_showNotice缓存赋值 | 每次先ReadKV(构造捕获的Owner,"ShowNotice"),即使缓存已有也不可跳过有效性检查。成功且Found=false才返回false;Found=true严格沿用原值=="1"规则,其余原字符串为false,不规范化写回 | Stale/NotReady/LoadGuardActive拒绝,不能返回false冒充未提示;不赋缓存、不调用旧PF |
|
||||
| B3-C178 ShowNotice setter | CheckRequestPermission;等级通知弹窗DestroyUI;LocalNotificationService.OpenSettings授权完成。原首次修改为_showNotice=value | KV先检查Owner有效、计算目标"1"/"0",以固定Owner写;本地Accepted后再改_showNotice。同值只有当前有效快照已是目标值时才可不写,不能只看旧内存缓存 | Validation/Blocked/StorageError不改提示状态,不自动重试;可能提交保留原结果,不清pending、不回写旧值;失败不继续关闭界面/触发后续动作 |
|
||||
| B3-C170 ClubService.SetOpenClubRed | FishingSocialPanel.Start;原先IsOpenClubRed=false及SetClubRed发生在保存前 | KV先用固定Owner核有效并读取该键,按M14既有语义得到当前OpenRed(键缺失=true;键存在且值为任意非null字符串,包括空字符串/"0",均为false;不能改为仅"1"才已读);需要写时先WriteKV("IsOpenClubRed","1"),Accepted后再改字段并执行原SetClubRed。若有效快照已读则同步内存为false,不再次写 | 失败不改IsOpenClubRed、不发红点更新;旧服务在新Owner后不能改共享内存或红点。不能把此结果称远端Confirmed |
|
||||
|
||||
普通状态采用本地Accepted语义,随后由原会话同步器保存,不给这两个标记新增每点击必Flush或票据等待。原票据留在既有系统,不伪造远端已确认。Owner在写已接受后被撤销:保留A已接受的事实;再次检查有效性后才发布UI副作用,若失效停止显示更新,不回滚/重放写入。
|
||||
|
||||
结果表达沿用原PlayerKVKeyReadResult/PlayerKVEditResult,不新增另一套通用错误模型。现有bool属性/void入口在KV拒绝时抛出带错误分类的InvalidOperationException;UI和async void边界捕获、记录并停止本次动作,不能冒充false/成功。原提交不确定时在该绑定服务内记录故障阻断后续修改,保留原EditResult供限定诊断;不实现人工解冻。PF分支业务语义保持。
|
||||
|
||||
## 4. 完整通知上游与UI边界
|
||||
|
||||
存档调用少不等于只改保存方法。本批包括以下必要上游,统一在一份方案中处理:
|
||||
|
||||
| 入口 | 现状 | 本批合同 |
|
||||
|---|---|---|
|
||||
| LocalNotificationService.OpenSettings | initing先置true;await Init后重新Resolve ISettingService写ShowNotice;异常可能不复位initing | 启动前捕获原服务并验证其KV归属;使用async Task内部实现,由原void入口统一观察异常;finally只复位本实例initing。await后核原服务再写,不能Resolve新服务;无效时不安排后续账号相关通知/订阅 |
|
||||
| LocalNotificationService.Init | 非Editor系统授权await后调度通知并订阅EventRankData | KV模式捕获本次设置服务,在请求前及await后核原Owner;过期则不调度/订阅或设置isInit。系统已弹出的权限结果不能撤销,必须明确不代表可写新账号。PF原分支保留 |
|
||||
| SettingNotificationsGradePopupPanel | 点同意先调用DestroyUI(写ShowNotice),再打开系统设置;取消也写已提示 | 初始化时捕获设置和通知服务;回调先校验旧实例/原Owner,提示写被拒则停止,不关闭别人的UI、不打开设置。同意/取消的原业务含义保持;同一处理中的重复点击不重复请求 |
|
||||
| SettingNotificationsPopupPanel | 同意关闭后Resolve通知服务 | 初始化时捕获通知服务;点击前校验,先拒绝陈旧入口,再执行原流程;不在延迟操作中重新取当前服务 |
|
||||
| SettingPopupPanel.OnToggleNotification | 开启时Resolve通知服务;关闭时ShowUI弹窗 | 沿用已有settingService引用,初始化时捕获配套通知服务;点击前核归属,不由旧界面启动新账号操作。新弹窗创建归属由未来C UI生命周期统一保证,本批不声称修复所有UI加载回流 |
|
||||
| GiftNoticePanel.OnClickYES | 关闭后Resolve通知服务 | 仅通知按钮同上;不改礼包展示/领取,也不开放该奖励业务。原OnClickNO的设备PlayerPrefs不迁移 |
|
||||
| DebugFunc.NotifySettingTest | 同步Resolve到局部service再调用 | 原代码已捕获局部引用,不新增存档;保持不改,LocalNotificationService统一校验。不以GM作为真实验收入口 |
|
||||
| PlayerData.LevelChange→CheckRequestPermission | 调用前已有升级、地图和事件副作用 | 本批仅保证CheckRequestPermission内部提示读写拒绝不会变成false或写新Owner;**整个LevelChange的上游归属未完成**,留核心进度批,C前不得用本批声明升级全链安全 |
|
||||
| FishingSocialPanel.Awake/Start→SetOpenClubRed | Awake已捕获ClubService,Start先执行社交UI/API行为,再标记已读 | 固定KV模式在对应UI入口开始处核已捕获ClubService的有效性,至少在本批红点修改前核原Owner;不Resolve替代服务。调用失败记录并停止该段后续,整个社交API链另批,不扩大本批验收 |
|
||||
|
||||
无需修改ISettingService/ILocalNotificationService的公开签名。内部可用具体服务的受限检查方法供同程序集UI使用;无参PF服务检查保持原行为,不检查当前全局SaveBackend来切路。UI原有无关按钮、格式和资产不动。失效旧UI只停止旧回调,不能用类型名销毁可能属于新会话的同名窗口。
|
||||
|
||||
错误日志只记键名、Owner标识和错误类别,不记Cookie或完整存档。系统权限已经改变与游戏提示标记保存失败分别记录;不以存档失败反向重复请求系统权限。
|
||||
|
||||
## 5. 白名单与明确不做
|
||||
|
||||
运行源码限8个既有文件(均在Client/Assets/Scripts下):
|
||||
|
||||
1. Services/SettingService.cs:固定KV构造、ShowNotice读写、检查/错误边界;其他本地设置不改。
|
||||
2. Services/ILocalNotificationService.cs:固定依赖构造、原实例捕获、OpenSettings/Init的恢复校验和finally;调度公式不改。
|
||||
3. Services/ClubService.cs:固定KV构造、已读标记读取/提交/检查;不改捐赠/签到/身份/API实现。
|
||||
4. UI/Setting/SettingNotificationsGradePopupPanel.cs:原服务捕获、点击检查及失败中止。
|
||||
5. UI/Setting/SettingNotificationsPopupPanel.cs:同上。
|
||||
6. UI/Setting/SettingPopupPanel.cs:只处理通知入口。
|
||||
7. UI/Shop/GiftNoticePanel.cs:只处理通知入口,不涉及礼包奖励。
|
||||
8. UI/Social/FishingSocialPanel.cs:固定ClubService的本批提示状态入口校验和错误边界。
|
||||
|
||||
测试允许新增 `CodexOutput/upserver/B3BatchMigration/B01Tests/` 下独立宿主;如需真实Unity对象验证,新增 `Client/Assets/Editor/KVPromptStateValidation.cs` 及其meta,仅暴露固定B01用例入口、空闲Editor运行,使用fake transport。禁止任意反射方法执行器/真实API降级,不改原测试以掩盖回归。
|
||||
|
||||
测试优先编译/调用实际源文件并用最小必要平台shim;Unity验证实际服务/面板,不以重新手写一套算法替代生产入口。平台权限在离线shim或Editor分支模拟,不触发用户系统权限弹窗/推送。若必须新增其他生产文件或改公开接口/注册逻辑,先具体补审,不能借白名单延伸为通用框架。
|
||||
|
||||
不改Core/PlayFabMgr、Owner/Bridge、B2加载器与31模块合同、UserService/注册、通知包、数据格式、PF SDK。这里的默认PF兼容不授权KV失败回落PF。历史Editor KV Loop仍是已关闭验证链,未因此扩展或重新运行。
|
||||
|
||||
## 6. 验收矩阵
|
||||
|
||||
| 项 | 必须验证 |
|
||||
|---|---|
|
||||
| P01 正常读/缺键 | ShowNotice缺键false、"1"true、"0"/空字符串按旧规则false;只有成功快照的缺键才缺省,不自动写 |
|
||||
| P02 拒读 | Stale/Closing/NotReady/加载guard活跃时不赋缓存,不当false,不转PF,即使_showNotice已有值也拒绝 |
|
||||
| P03 普通提交 | 首次写正确原字符串/固定Owner,Accepted后才改内存/红点;同值不重复写;记录原票据但不声称已远端确认 |
|
||||
| P04 故障 | Validation/Blocked/StorageError以及LocalCommitMayHaveSucceeded:不继续UI/系统副作用,不回滚、不自动重试;故障阻断后续修改 |
|
||||
| P05 旧回调 | A通知授权挂起→撤销A→B创建→完成A;B缓存、ShowNotice、红点、网络请求均不变,A不重新Resolve B;同账号新epoch也覆盖 |
|
||||
| P06 同对象污染 | 人为让旧Club实例Reset/Replace装入另一组数据后再触发旧操作,原Owner检查必须在字段/红点变化前拒绝;不以对象引用相等过关 |
|
||||
| P07 权限时序 | 重复点击/授权失败/异常均观察并finally清initing;过期后不设置isInit、不新增通知订阅;系统授权与存档标记语义分离 |
|
||||
| P08 UI入口 | 四个通知UI入口和Social标记调用捕获原服务;旧实例回调不销毁新同名UI,不触发新账号系统/存档操作;失败停止后续段 |
|
||||
| P09 非消费范围 | 礼包展示、领取/捐赠/签到/升级经济数据不改;原无参PF入口及设备本地设置语义保持 |
|
||||
| P10 回归与编译 | 既有42/86/29等适用基础回归、4B3A固定入口、B2 M14/31模块受影响回归;Unity Editor编译及适用SERVICE_HOST构建。平台分支做编译验证,已记录默认非Editor错误单列,不掩盖新增错误 |
|
||||
|
||||
fake transport必须固定.invalid地址且绝不转发。关闭原合成Owner并排空后释放临时缓存。旧样本/真实101、102/permit/claim不变。B01不要求真实账号写入或再钓鱼;真实正式路径和连续操作属于后续C/4D集成范围。
|
||||
|
||||
## 7. 检查点与交付
|
||||
|
||||
0. 方案完整审查、主会话核hash和逐项裁决,批准8文件及固定测试范围。
|
||||
1. 批内实现固定绑定与两键规则、所有列明通知上游;相应故障/迟到场景先建有效失败用例,再修正。每检查点更新日志,不逐调用停下。
|
||||
2. 跑专项与适用回归、Unity编译;合同内失败修复并回归继续,保留首败;合同/范围/架构变化才补审。
|
||||
3. 原文件diff/范围核对,封存源码、原始测试输出、hash,形成一份实施交付与独立复核提示词。
|
||||
4. 一次独立实施复核,主会话裁决关闭B01;3处从“首批候选”改为“B业务实现关闭,待C正式接线”,不声称整个4B3B/C或两条完整用户玩法已启用。
|
||||
|
||||
## 8. 自审与需独立裁定的重点
|
||||
|
||||
作者自审:不按调用数量凑批;所有存档点与实际通知入口列明;复用原Owner而无全局动态句柄;无真实数据操作;B→C门未松动;未称整个升级/社交/礼包链已安全。首批是可单独实现和验证的非消费业务能力,后续正式发布仍须完整B/C依赖。
|
||||
|
||||
请独立审查重点判断:固定实例构造作为B准备是否足够且最小;C创建新实例的前置是否与现有受控加载可衔接;普通Accepted后的内存/红点时序是否正确;通知系统权限是设备级但提示标记是账号级,两者的失效处理是否有遗漏;当前8文件是否遗漏必要上游。若此边界不能成立,指出具体调用链和最小修订,不直接扩大到全部服务或免除批级方案门。
|
||||
12472
CodexOutput/upserver/B3BatchMigration/current-scan/calls.json
Normal file
12472
CodexOutput/upserver/B3BatchMigration/current-scan/calls.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
34
CodexOutput/upserver/B3BatchMigration/分类统计.json
Normal file
34
CodexOutput/upserver/B3BatchMigration/分类统计.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"createdUtc": "2026-09-28T10:04:45.2699280Z",
|
||||
"oldCount": 223,
|
||||
"currentCount": 224,
|
||||
"oldMapped": 223,
|
||||
"new": 1,
|
||||
"helperMoves": 1,
|
||||
"sourceFiles": 2108,
|
||||
"callFiles": 81,
|
||||
"categories": [
|
||||
{
|
||||
"category": "保留PF待专项",
|
||||
"count": 13
|
||||
},
|
||||
{
|
||||
"category": "本次排除",
|
||||
"count": 4
|
||||
},
|
||||
{
|
||||
"category": "待迁移分类",
|
||||
"count": 200
|
||||
},
|
||||
{
|
||||
"category": "首批候选",
|
||||
"count": 3
|
||||
},
|
||||
{
|
||||
"category": "已有限定处理-正式仍待",
|
||||
"count": 4
|
||||
}
|
||||
],
|
||||
"limitations": "语法候选分派,不是全部上游审计,不等于224个可直接替换点;首批之外仍须在相应批级方案核合同。",
|
||||
"scannerSha256": "B01AC846E3DD015A36744597872E46861981C4950E7D955C76324EF486D99722"
|
||||
}
|
||||
20
CodexOutput/upserver/B3BatchMigration/执行TodoList.md
Normal file
20
CodexOutput/upserver/B3BatchMigration/执行TodoList.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# 4B3B/C批量迁移执行 TodoList
|
||||
|
||||
2026-09-28。依据:F01–F12审查侧全部接受。现在执行统一流程,不再等待优先级选择;连续钓鱼v4候选搁置。正式地址固定http://s101.local:18080/,Unity CLI Loop,不打包。
|
||||
|
||||
- [x] E0:阅读续裁决;主会话确认无新增流程分歧,按要求纠正文档口径与链接。
|
||||
- [x] E1:复用既有只读扫描器,生成当前224处/81文件快照;旧223项全部映射,识别1处方法提取、1处内部调用新增,不覆盖旧台账。
|
||||
- [x] E2:落盘224项分派分类及理由;区分首批、后续候选、限定已处理、保留PF和本次排除。该分派不代表全部上游已审。
|
||||
- [x] E3:完成首批B01“通知提示与俱乐部已读状态”完整方案、3处存档调用规则及通知上游链、白名单和B→C依赖。
|
||||
- [x] E4:完成批级自审、独立审查提示词、受审基线;同步入口和当前状态。
|
||||
- [ ] E5:审查会话一次完整批级方案审查;主会话核hash并逐项裁决后才能编码。
|
||||
- [ ] E6:在白名单内连续实施B01;合同内实现错误直接修复和回归,保留首败,不拆成逐调用审查。
|
||||
- [ ] E7:既有适用回归+本批业务/迟到回调/失败专项+Unity编译;形成一份批级交付。
|
||||
- [ ] E8:一次独立实施复核→主会话裁决关闭B01,更新剩余分类。
|
||||
- [ ] E9:按关联业务继续后续B批;消费/转盘单列交易合同,不机械替换全部候选。
|
||||
- [ ] E10:B范围具备后完成C加载发布/后端固定/定时暂停退出接线方案及实施;正式集成验收包含连续操作、动作收口和旧回调隔离。
|
||||
- [ ] E11:按总清单处理身份/迁移政策/稳定性/tickets及4D/G4;外围迁移/SDK清理和平台验收保持各自前置,暂不打包。
|
||||
|
||||
首批只选3处存档调用,是因为实际展开包含整条通知授权异步链、多个UI入口和俱乐部红点内存/事件顺序;不为达到20–40个建议数混入奖励、支付或增加无关改动。批准范围不是“只改3行”。
|
||||
|
||||
当前下一步:E5独立批级方案审查。E0–E4为本轮已执行的文档、源码只读核查和分析产物;E6以后未执行,无生产修改、正式API请求或Unity运行。
|
||||
4196
CodexOutput/upserver/B3BatchMigration/调用分类与现状映射.json
Normal file
4196
CodexOutput/upserver/B3BatchMigration/调用分类与现状映射.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,246 @@
|
||||
{
|
||||
"checkedAt": "2026-09-24T10:51:58.8810663+08:00",
|
||||
"files": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3分期与4B3A固定存档入口方案-待评审-2026-09-24.md",
|
||||
"expected": "FA5EB445C77C9F11E3EEE71BEE8007A5A25AB76761DD4F75EFF93B23360B7022",
|
||||
"actual": "FA5EB445C77C9F11E3EEE71BEE8007A5A25AB76761DD4F75EFF93B23360B7022",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3调用事实与分期附件-2026-09-24.md",
|
||||
"expected": "0F31BCACA358AD180ADC3A04F417AE763148BA14CA62BE57EDF4D7FFECB1C060",
|
||||
"actual": "0F31BCACA358AD180ADC3A04F417AE763148BA14CA62BE57EDF4D7FFECB1C060",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B3分期与4B3A方案-2026-09-24.md",
|
||||
"expected": "F4CF6F3530453996CAE70D4AE894CD2898355BDFA7AE1E04AC0900C1173FCF30",
|
||||
"actual": "F4CF6F3530453996CAE70D4AE894CD2898355BDFA7AE1E04AC0900C1173FCF30",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3设计检查点记录-2026-09-24.md",
|
||||
"expected": "90F01189500298A58BBDD73FBA87B2EBED9C1D18A89C19684A0D21F39226138C",
|
||||
"actual": "90F01189500298A58BBDD73FBA87B2EBED9C1D18A89C19684A0D21F39226138C",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2实施复核裁决与关闭-2026-09-24.md",
|
||||
"expected": "5D0921270BAA0F44A189BAA5668EAF519E000E92544C85E4FC5073480224CE4C",
|
||||
"actual": "5D0921270BAA0F44A189BAA5668EAF519E000E92544C85E4FC5073480224CE4C",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3设计准备与边界-2026-09-24.md",
|
||||
"expected": "E60C442779A35BC3286A452D2928C40D334353677B5AE2F8A9069E0891280607",
|
||||
"actual": "E60C442779A35BC3286A452D2928C40D334353677B5AE2F8A9069E0891280607",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B分期与4B1登录存档准备方案-待评审-2026-09-23.md",
|
||||
"expected": "42EF64F0B96ACFE947C7A2CCAA2CF1B39BDEACF00AB29E4C93F82A284A4606A5",
|
||||
"actual": "42EF64F0B96ACFE947C7A2CCAA2CF1B39BDEACF00AB29E4C93F82A284A4606A5",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/Program.cs",
|
||||
"expected": "542C2A6EE08EBC88E71A61C423587FEB9335DF16232FC134F4F22328B4BE865E",
|
||||
"actual": "542C2A6EE08EBC88E71A61C423587FEB9335DF16232FC134F4F22328B4BE865E",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/B3DesignAudit.csproj",
|
||||
"expected": "7041F2731874407F951ED5C2E3C1D352678674B46C76B02C2366C522058FD852",
|
||||
"actual": "7041F2731874407F951ED5C2E3C1D352678674B46C76B02C2366C522058FD852",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/render_inventory.py",
|
||||
"expected": "9D4174EA649B366946445672313F7037498313E9FF537C3995DDF5F29963D00E",
|
||||
"actual": "9D4174EA649B366946445672313F7037498313E9FF537C3995DDF5F29963D00E",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/calls.json",
|
||||
"expected": "12588092ECE71E12FDFD829B0A65F23EFA53241F49C527067B0ADDE423E47C61",
|
||||
"actual": "12588092ECE71E12FDFD829B0A65F23EFA53241F49C527067B0ADDE423E47C61",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/classification.json",
|
||||
"expected": "590FE1CEEFF46517CE0CA90CF4384F4AF5D0FF2206768AD564D1F703B68726CB",
|
||||
"actual": "590FE1CEEFF46517CE0CA90CF4384F4AF5D0FF2206768AD564D1F703B68726CB",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/B3DesignAudit/source-hashes.json",
|
||||
"expected": "F7997F75E371AF25967EAD81C0651C84F256BC9E9253E124D40188E258F94044",
|
||||
"actual": "F7997F75E371AF25967EAD81C0651C84F256BC9E9253E124D40188E258F94044",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"expected": "A9B4A0FEB96B59A0A71C829D978B8616165AB289C014E97C3E2F8AE432CFFAB7",
|
||||
"actual": "A9B4A0FEB96B59A0A71C829D978B8616165AB289C014E97C3E2F8AE432CFFAB7",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs.meta",
|
||||
"expected": "0385C819E95BC81A90D84B0679DA7F73F9C0889740D19BDFC8E00945131B70DC",
|
||||
"actual": "0385C819E95BC81A90D84B0679DA7F73F9C0889740D19BDFC8E00945131B70DC",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"expected": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"actual": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"expected": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"actual": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"expected": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C",
|
||||
"actual": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs",
|
||||
"expected": "C22524279905407EF64957BFC6B853A4B24F9B1B15A2B55A1038558DB5649AB9",
|
||||
"actual": "C22524279905407EF64957BFC6B853A4B24F9B1B15A2B55A1038558DB5649AB9",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs",
|
||||
"expected": "18ABD846BE9FA9F1A0828ADD8B31CFED1EBD1A0F3114ACBA17B65ABC2AC87B10",
|
||||
"actual": "18ABD846BE9FA9F1A0828ADD8B31CFED1EBD1A0F3114ACBA17B65ABC2AC87B10",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"expected": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
|
||||
"actual": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"expected": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"actual": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"expected": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"actual": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"expected": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"actual": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"expected": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"actual": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"expected": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"actual": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"expected": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"actual": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs",
|
||||
"expected": "D3C9179594392FC0E624266CFBB5020EEC76D4E00B110B36D99457373F914C5C",
|
||||
"actual": "D3C9179594392FC0E624266CFBB5020EEC76D4E00B110B36D99457373F914C5C",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"expected": "CC4725497B0CB8CBFDE8E0A5A32DFCFC2C101B9306AFD9F5BDCA41A49727E897",
|
||||
"actual": "CC4725497B0CB8CBFDE8E0A5A32DFCFC2C101B9306AFD9F5BDCA41A49727E897",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"expected": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"actual": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs",
|
||||
"expected": "7F771A8DF3504521876C19BD00636FD2F2B20B8BB2EDA87B11D71959501BF4C3",
|
||||
"actual": "7F771A8DF3504521876C19BD00636FD2F2B20B8BB2EDA87B11D71959501BF4C3",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameLoadValidation.cs",
|
||||
"expected": "6838A1ED5817D12A5DD8B0B91A4E93C7FC8C05B2AE3721346C451AC35810215B",
|
||||
"actual": "6838A1ED5817D12A5DD8B0B91A4E93C7FC8C05B2AE3721346C451AC35810215B",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ServiceHost/ServiceHost.csproj",
|
||||
"expected": "F82997A8F2DF82C145B0D9CABA4F639BB6E0C168A5DEA32E3474F8B221A44D3F",
|
||||
"actual": "F82997A8F2DF82C145B0D9CABA4F639BB6E0C168A5DEA32E3474F8B221A44D3F",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ServiceHost/Stubs.cs",
|
||||
"expected": "89B310ED697BE1F18B1C4764A728B7F73A6E9A5469F66BB52D849C5713C48A79",
|
||||
"actual": "89B310ED697BE1F18B1C4764A728B7F73A6E9A5469F66BB52D849C5713C48A79",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/KVGameLoadTests.csproj",
|
||||
"expected": "C0BD09B3B21015AE951D75F3FE57A39AF56CC3CFF6D0C5E2EA2776DB0C6D812D",
|
||||
"actual": "C0BD09B3B21015AE951D75F3FE57A39AF56CC3CFF6D0C5E2EA2776DB0C6D812D",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/Program.cs",
|
||||
"expected": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4",
|
||||
"actual": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/KVGameBridgeTests.csproj",
|
||||
"expected": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD",
|
||||
"actual": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/Program.cs",
|
||||
"expected": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724",
|
||||
"actual": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/NuGet.Config",
|
||||
"expected": "9508CAE5F76364F56E80EB97CB16493977243CF38E5CCA6284E3D74F83B20A2C",
|
||||
"actual": "9508CAE5F76364F56E80EB97CB16493977243CF38E5CCA6284E3D74F83B20A2C",
|
||||
"matches": true
|
||||
}
|
||||
],
|
||||
"fileMismatches": 0,
|
||||
"sourceCount": 2101,
|
||||
"sourceMismatches": 0,
|
||||
"sourceDrift": [],
|
||||
"unexpectedExisting": [],
|
||||
"reviewHash": "DEB93E33AF0091E104BDC3F83128FC1761A9420DF40FA04639C193677247C4DE",
|
||||
"baselineHash": "58DC39BA9FBA8259E97104361937A737296D5E9ADB974AC596FE443099E6EAED"
|
||||
}
|
||||
2103
CodexOutput/upserver/B3DesignAudit/source-hashes.json
Normal file
2103
CodexOutput/upserver/B3DesignAudit/source-hashes.json
Normal file
File diff suppressed because it is too large
Load Diff
117
CodexOutput/upserver/ContinuousFishing/design-review-hashes.json
Normal file
117
CodexOutput/upserver/ContinuousFishing/design-review-hashes.json
Normal file
@@ -0,0 +1,117 @@
|
||||
{
|
||||
"createdUtc": "2026-09-28T09:48:48.2816323Z",
|
||||
"purpose": "单账号连续普通钓鱼独立方案审查基线;项目根相对路径;共享入口/日志/TODO及本清单自身不冻结;不是修改许可",
|
||||
"count": 22,
|
||||
"items": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/ContinuousFishing/单账号连续普通钓鱼最小方案-待评审.md",
|
||||
"sha256": "9E671265C1886237F16AE0E3AD4CC24718F5E5D4896DF56AB8D0BC8C3728F8E8",
|
||||
"bytes": 16569
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ContinuousFishing/独立方案审查提示词.md",
|
||||
"sha256": "D94F84D8FE1BE2DEA1F98DE92178F37B04016F904D3D20457AF059587EDA3590",
|
||||
"bytes": 2574
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/101真实闭环与药水引导修正-复核裁决与关闭.md",
|
||||
"sha256": "309594982EF648E44860F15C820F93D5B80E89AEA658DE39881DEDB1FCFAF463",
|
||||
"bytes": 4027
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "40EE14EBFF6F3D61B6270EA01E73C48DCA0B279B924D26DE6911C0261D7293F9",
|
||||
"bytes": 20093
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "6581E2EF316B764F0E7B984B4A8040B93087A467FA374AA0E5E979D356580A04",
|
||||
"bytes": 99384
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs",
|
||||
"sha256": "937EF7EC0BC258303DE2A8C740F8B245C716C2EF9F4773550BBED3DE05190CA3",
|
||||
"bytes": 130654
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/FishingReward/FishingRewardPanel.cs",
|
||||
"sha256": "3C39458B01439DB4B8B3B40649A01A816A77688127B48462B02866828D28B0D9",
|
||||
"bytes": 59049
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/FishingAct.cs",
|
||||
"sha256": "D151ABBCE46EDB557C307DE3CBBF7456BFC22D9B2A3B17D296E0986EAB54BBCE",
|
||||
"bytes": 49733
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "63C369187806A2645C8C6A1411397A6CB7CDDBF5A2DC0E41D905872168DC8675",
|
||||
"bytes": 5105
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingValidation.cs",
|
||||
"sha256": "1BE3806283DBD6A7D8A41CD42E7B5385D326BBEDAFAED04C4BBB6F4F5DB3E0D5",
|
||||
"bytes": 27355
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs",
|
||||
"sha256": "34C32F02597DB7A1877BB1B87B73EC1F6E368360EBBAA080D6B0B2577799E825",
|
||||
"bytes": 53687
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs",
|
||||
"sha256": "45300AA455CF43C07286A442E7A2C8534B3654C4AEB8316CA5EB3A20593AEA0D",
|
||||
"bytes": 6963
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/UIManager.cs",
|
||||
"sha256": "52BBF24FEA1B304D803AC9ED497B3D4CAF32B7EB27716C5311366184FCC1FD1B",
|
||||
"bytes": 47641
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Fishing/FishingPanel_Advanced.cs",
|
||||
"sha256": "8E9B3B2F485B0306A11777FBDB079166F9F442BA9D41A937B76194510F4F4CCA",
|
||||
"bytes": 32142
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "768C2935FA702ACAA7E6F20FA9E82A883E3863B3104ACFD519DFFEBA3A890C83",
|
||||
"bytes": 65923
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs",
|
||||
"sha256": "93A354CBB683D3B6CB0B0A4A3AA2DAD2445A8281156F9E0180A93FAF93C7EF4B",
|
||||
"bytes": 31273
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbenergydef.json",
|
||||
"sha256": "81566DA4F8A6517C3E03881C5CEE57C626854BCD743D0857F8FF389F24B8D89E",
|
||||
"bytes": 2563
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishingevent.json",
|
||||
"sha256": "C8A4A9794E9390C94B9C8F1927B3E718B3EB9F784F0889508E1E576DD4B77A2D",
|
||||
"bytes": 1000464
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/ABPackage/pkgPrepare/Export/GuidanceConfig.asset",
|
||||
"sha256": "5926124E5633166CC1B91569B8A71AB2C388AA3446A736B3E7E42B3EBD9F3D3A",
|
||||
"bytes": 147854
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/guide-baseline-projection.jsonl",
|
||||
"sha256": "A3D056313FE0F40D395FE92F97BEDE31BA47D8D79A3C4C28781395A43118E89C",
|
||||
"bytes": 26976
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3分期与4B3A固定存档入口方案-待评审-2026-09-24.md",
|
||||
"sha256": "FA5EB445C77C9F11E3EEE71BEE8007A5A25AB76761DD4F75EFF93B23360B7022",
|
||||
"bytes": 21798
|
||||
}
|
||||
]
|
||||
}
|
||||
131
CodexOutput/upserver/ContinuousFishing/单账号连续普通钓鱼最小方案-待评审.md
Normal file
131
CodexOutput/upserver/ContinuousFishing/单账号连续普通钓鱼最小方案-待评审.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# 单账号连续普通钓鱼最小方案(待完整评审)
|
||||
|
||||
2026-09-28,主会话。上一包101真实闭环与药水引导修正已限定关闭,120/120受审文件一致,无阻塞修复。本方案是下一包的建议方向;已询问用户业务优先级,尚未收到新选择,按“先跑起来、最小改动、单账号、重启式重登”整理。不把前包关闭当成本方案实施或新消费授权。
|
||||
|
||||
## 1. 目标、选择与边界
|
||||
|
||||
用户在一次Editor登录中,手动完成普通抛竿→拉杆→奖励落库→收下回主页,然后可以再次普通抛竿;退出后仍通过新进程恢复验证。第一轮实景验收只计划101最多两次手动尝试,中间不重启,随后统一恢复、对账与交付复核。一次完整方案评审后连续实施,内部检查点更新日志,不按方法或单个测试反复送审。
|
||||
|
||||
| 路径 | 代价与结果 | 选择 |
|
||||
|---|---|---|
|
||||
| 保留会话许可,增加同一会话的逐竿完成与隔离 | 复用已验证存储/登录/票据;集中修改钓鱼调用链,仍需一次会话准备 | 推荐,本方案 |
|
||||
| 每竿仍重启、只优化操作说明 | 无生产修改,但无法解决连续调试成本 | 保留现状时可用,不作为本包交付 |
|
||||
| 直接启用默认kv并解除所有门 | 牵涉4B3B/C全业务归属、生命周期与正式启用,超出当前证据 | 本包不采用 |
|
||||
|
||||
固定API `http://s101.local:18080/`,Unity CLI Loop,不打包。仅 `UNITY_EDITOR && !SERVICE_HOST` 的运行链扩展,许可解析仍可在现有Editor宿主回归。非Editor/PF分支保持原业务行为。不改经济公式、随机选鱼、UI资产、服务器、存档格式、Schema、旧档导入或账号映射;不开发热换号、广告重试、特殊鱼/活动奖励、额外领取。正式 `SaveBackend=kv` 拒绝和无许可时默认PF都保持;本包不能声称解决了普通正式登录切换。
|
||||
|
||||
## 2. 已核实的源码事实
|
||||
|
||||
| 位置 | 当前事实 | 本包必须解决的原因 |
|
||||
|---|---|---|
|
||||
| `UserService.KVGameplayLoop.cs`:BeginFishing/CancelFishing | fishingAction终身保留;取消通过Actor传给奖励层 | 不能仅将静态字段置空;A竿迟到取消可能命中复用Actor上的B竿 |
|
||||
| `UserService.KVFishingReward.cs` | rewardPlan/rewardAction保留;多个入口取全局当前动作 | 每竿必须有独立计划、票据、分段与完成身份 |
|
||||
| `FishingUpdateSys.CastLine` | 在调用BeginFishing的下游入口前,已写连击、startTimer等内存 | 动作准入必须前移到这些修改之前 |
|
||||
| `FishingBehaviorB` | await/yield/tween后常读取可变kvFishingAction;长期复用场景对象 | 方法开始时捕获的A不能在恢复时变成B |
|
||||
| `FishingUpdateSys` | RewardCanAdvance全局判断;ShowUI异步加载;FishEndCore销毁FishingPanel | 旧控制器和旧ShowUI完成不能控制新动作 |
|
||||
| `FishingRewardPanel` | 已有confirmed→presented;收下无逐动作完成回报 | 不能用任意OnDisable当“成功收下”;重复点击不能重复重置选鱼 |
|
||||
| `FishingAct` | ResetFishingStatus同步重新选鱼;RestartShowHomeUI异步返回主页 | 发布回主页事件不等于主页已就绪;不能据此立即重新放行 |
|
||||
| `FishingBehaviorB.InitFishAsync/LoadFish` | 场景对象复用,路径比较不能区分连续两条同种鱼;延迟默认鱼/资源加载存在 | 准备阶段同样需要局部请求身份,避免旧资源覆盖下一条同种鱼 |
|
||||
|
||||
UIManager的ShowUI在返回前等待一帧;面板Start可先绑定奖励。DestroyUI移除字典后仍有下一帧通知。因此本包用本动作的面板请求完成、实际面板销毁和回主页完成事实收口,不修改通用UIManager,不用固定等待秒数当隔离依据。
|
||||
|
||||
## 3. 会话许可与操作预算
|
||||
|
||||
复用现有permit、备份/hash、AllowedKeys、固定账号/地址及进程Claim。增加显式v4操作 `fishing-reward-session`,必填正整数 `MaxFishingActions`;v1/v2/v3的准入与一次性语义保持,旧版本不得携带该扩展字段悄悄变成多竿。v4首包限定101;允许键必须来自本轮最新101备份,不导入、不创建空键。
|
||||
|
||||
MaxFishingActions是本次运行批准的最多尝试次数,不是成功次数或自动重试次数。仅在首次成功创建本次抛竿动作时占一个名额,在扣费前就占用;重复输入不占新名额。失败/拦截/取消不返还名额,且停止本会话后续钓鱼。到上限时阻止新的动作及其初始化内存修改,但允许已经完成的数据正常退出保存;不发起后台额外动作。
|
||||
|
||||
第一轮候选值为2。这是待确认的运行范围,并非已有授权。未来仅改变同一合同内的次数须有对应测试范围授权,不修改v3、删除claim或使旧进程重复认领。新增固定Editor准备入口,复用原验证/备份流程,不做新的许可管理器或调试面板。
|
||||
|
||||
## 4. 逐动作合同
|
||||
|
||||
### 4.1 准入与上下文
|
||||
|
||||
在 `FishingUpdateSys.CastLine` 第一个业务内存修改之前申请动作。绑定当前控制器、FishingBehavior实例及原Session Handle,并把返回的同一动作显式交给CastLineBehavior;不能由下游再创建另一个动作。旧控制器只绑定一次;已绑定的旧控制器再次调用属于重复/迟到输入,不能创建新动作。
|
||||
|
||||
下一竿须同时满足:v4仍有效、Ready且同一Owner、前竿完全收口、无当前故障/Unknown、名额未耗尽。首次运行也遵守这些条件。每竿重新运行现有普通鱼/引导/活动/配置/倍率/MapKey检查,重新捕获计划和前值;不复用上一竿的准入结果。`PrepareFishingReward`的奖励计划归属于动作,不能凭全局旧计划通过。
|
||||
|
||||
此外,v4在扣费前排除实际会触发额外收下分支的条件:当前倍率SupplyDrop>0或已有supplyDropCtrl,以及 `lastMapId非首地图 && !IsOpenAppraise && fish.Quality>=5` 的评价解锁分支。收下前复核这些条件;变更则停止,不调用额外分支、不回滚已确认奖励。现有KV下CheckResource不启动空投加载的行为保持。该限制用于本次普通回主页闭环,不修改这些玩法的规则或存档。
|
||||
|
||||
### 4.2 捕获与迟到回调
|
||||
|
||||
业务调用使用显式FishingAction/FishingRewardAction引用。所有异步方法在启动时捕获本动作到局部变量,每次await/yield恢复、tween回调、事件订阅回调进入后,均在第一次业务内存变更前核对该引用、Owner及实例寿命。不能恢复后再读取字段/全局当前动作作为A的身份;同一Actor、鱼ID、资源路径均不等于同一次动作。
|
||||
|
||||
| 链段 | 处理范围 |
|
||||
|---|---|
|
||||
| 抛竿/消费 | CastLine、CastLineBehavior、CastBait、BaitMove、WaitForFishBite、ConsumeBaitOnKVAsync、ContinueFishing及其tween/coroutine |
|
||||
| 受力/收线 | PiercingFish、伤害保护/连击延迟、普通Update、FishEnd、取消生命周期与ShowKVRewardPanelAsync |
|
||||
| 奖励 | BeginRewardDrawing/Ending/Segment、BindRewardPanel、确认/呈现、展示延迟及资源完成回调、收下 |
|
||||
| 准备/返回 | FishingAct的本次Reset/回主页,FishingBehavior的InitFishAsync/LoadFish/ShowDefaultFish及本次特效、鱼线延迟 |
|
||||
|
||||
保留现有固定句柄和票据API,不增加跨业务Registry或全局Ambient Context。对复用FishingBehavior上早于抛竿的资源准备,使用仅限该组件的准备批次引用:InitFishAsync开始新准备即更换引用;本批次LoadFish/ShowDefaultFish捕获并传递同一引用,不在延迟恢复时创建新批次。旧批次迟到的资源只释放本次取得的引用,不写当前字段、不发布会改变当前鱼状态的事件。抛竿时绑定当时准备批次;运行中不得替换成新批次。一般静态资源预载和逐鱼请求分开判断,不因动作尚未创建而错误取消合法初始化。
|
||||
|
||||
现有特效加载若会在await后写复用字段,捕获调用时的准备批次/动作;迟到结果只释放自己的资源。不改无异步共享状态的纯计算。实现检查点需列出上述三份钓鱼文件中普通路径所有await/yield/tween的处理或不可达依据;不能只改现有KVFishingCurrent调用点而漏掉未加守卫的旧路径。
|
||||
|
||||
取消和异常处理同样带显式旧动作:A完成后A的Cancel、OnKill、异常、ticket完成、面板销毁不得Cancel/Fault/推进B。当前动作真实失败继续走现有Fault终止;会话级存储故障不可被当作普通迟到回调吞掉。旧资源清理只清理A拥有的资源,不按UI类型销毁B,不把全局缓存字段清空。
|
||||
|
||||
### 4.3 保存与收下完成
|
||||
|
||||
继续使用原扣费写批次和strike/ending/reward三段原始票据,先确认扣费再继续战斗,先确认最终鱼档/主档及实际任务写入再呈现。每竿票据列表、Segments、BeforeFishCount独立;A的Superseded/Confirmed不能充当B的确认,不补发、不重放Unknown。
|
||||
|
||||
v4状态为:可开始→进行中→奖励确认/呈现→收下收口中→已完成。成功收下需当前绑定面板、Confirmed且Presented;第一次点击原子标记收口中,重复点击直接返回,原OnClosePanel/InHomePanel业务主体只执行一次。普通OnDisable、失败关闭、退出、收线控制器正常销毁都不能独立标记成功完成。
|
||||
|
||||
完成收口须具备同一动作的全部事实:
|
||||
|
||||
1. 原奖励票据确认、无故障/Unknown,三个业务段已关闭。
|
||||
2. 用户点击成功收下,原同步ResetFishingStatus和回主页事件发布成功;异常则停止。
|
||||
3. 原奖励面板完成销毁清理,原ShowKVRewardPanelAsync已结束;原呈现Task已完成或已因该面板合法销毁而退出,不能悬挂后借B继续。
|
||||
4. FishingAct的本次RestartShowHomeUI异步完成。事件携带仅Editor用的显式动作引用;在await前后检查。其他无动作的回主页事件沿用原行为,不能完成钓鱼动作。
|
||||
|
||||
完成入口可由这些事实分别到达后调用同一个幂等检查,但只能完成一次。不能在OnDisable里无条件清空三个静态字段,也不能依赖“再等一秒”。前竿完成后将其标为终态,才释放全局活动槽;A对象本身保留终态供迟到回调判定。返回主页过程不自动开始B;B由用户正常入口触发。非v4保留原一次性门,不因增加完成状态而允许第二次抛竿。
|
||||
|
||||
收口时保留完成路径自拆除的现有例外,并以动作身份和收口状态限定新的面板销毁例外;未确认奖励时的真取消仍停止。共享句柄关闭仍由既有QuitStage/drain负责,动作完成不关闭/重建会话或丢弃待存。
|
||||
|
||||
## 5. 修改白名单
|
||||
|
||||
运行代码最多限于下列7个现有文件;不新增通用运行框架。必须逐文件解释实际改动原因,不因列入白名单而重排格式或全面重构。
|
||||
|
||||
| 文件(Client下) | 允许改动 |
|
||||
|---|---|
|
||||
| Assets/Scripts/Services/UserService.KVGameplayLoop.cs | v4许可、尝试预算、动作创建/完成身份、带动作的取消/错误;保留存储接线 |
|
||||
| Assets/Scripts/Services/UserService.KVFishingReward.cs | 独立奖励计划/分段、显式动作校验、收口事实与幂等完成 |
|
||||
| Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs | 显式动作传递、普通路径异步/资源准备批次保护 |
|
||||
| Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs | CastLine前置准入、绑定动作、普通战斗延迟与奖励面板请求保护 |
|
||||
| Assets/Scripts/UI/FishingReward/FishingRewardPanel.cs | 固定奖励引用、收下幂等、资源清理和收口事实 |
|
||||
| Assets/Scripts/Stages/FishingAct.cs | 仅本次普通回主页事件的动作传递、恢复检查和完成回报 |
|
||||
| Assets/Editor/KVGameplayLoopSetup.cs | 固定v4准备/验证入口,返回已存在的状态信息 |
|
||||
|
||||
测试允许在已有 `UserService.KVFishingValidation.cs`、`UserService.KVFishingRewardValidation.cs` 及本业务包目录内补离线验证/证据,按实际方法签名同步既有测试抽取器,不改断言使失败变绿。DataCenter的消费/保存/引导、UIManager、HomePanel、配置/资产只读。若必须改变这些文件的业务逻辑,先将具体差异补进方案再审,不能以本表授权泛化。
|
||||
|
||||
## 6. 验收与实施顺序
|
||||
|
||||
| 检查点 | 连续完成的内容 | 必须证据 |
|
||||
|---|---|---|
|
||||
| 0 | 主会话核本方案基线,逐项裁决完整独立审查,明确允许编码 | hash、裁决、精确白名单;本方案当前尚未批准 |
|
||||
| 1 | 生命周期/逐动作隔离与许可;先有红测再修正,覆盖真实生产入口或现有生产代码抽取 | v3仍一次;v4两竿;预算;同Actor/同鱼A→B迟到;重复回调;内存首次修改前拒绝 |
|
||||
| 2 | 完整UI/普通链接线与回归、编译 | 下表关键负例、原奖励55组243/消费19组81/引导模块12/31模块83相关回归;Editor/SERVICE_HOST双编译;非Editor代码边界检查 |
|
||||
| 3 | 用户确认101停用其他客户端及本包最多两次尝试后,一次登录连续完成两竿和收下,正常退出,新进程恢复 | 分竿原票据/日志/奖励与主页截图/全量快照;若任一竿失败或门拦截立即停止,不自动补跑 |
|
||||
| 4 | 统一封存hash、交付、自审和一次独立实施复核 | 准确区分真实两竿成功、只完成一竿或全部未消费;不能离线通过代替实景通过 |
|
||||
|
||||
关键测试必须验证结果,而不是只看实现布尔值:
|
||||
|
||||
- A尚未confirmed/presented、尚未收下、ShowUI/呈现/回主页未结束、面板未销毁时,B无扣费且无初始化内存改动;各种事实乱序仅完成A一次。
|
||||
- A已完成且B活动时,注入A的消费续体、战斗延迟、奖励确认、OnKill、Cancel、面板销毁、资源加载失败/成功;B内存、写入记录、显示与故障状态不变。特别覆盖同Actor、同鱼ID/同资源路径及场景对象复用。
|
||||
- 收下双击只选一次下一鱼、只返回一次主页;面板任意隐藏不计成功;正常收线自拆除不误取消,未确认关闭仍停止。
|
||||
- 两竿不同计划各自只扣一次;最终鱼数按各自前值和倍率增量,独立票据;第一竿已确认的票据不能用于第二竿;失败、Unknown、Unauthorized后不能续竿。
|
||||
- 首次CastLine重复/超预算时,不写startTimer、连击等先前在准入前修改的字段。非v4旧用例保留。
|
||||
- 每竿活动/引导/配置/鱼/倍率变化重新校验;评价解锁/空投候选扣费前停止;收下时条件漂移不进入分支。
|
||||
- 准备阶段早于动作的有效资源加载不被误拒;同路径旧准备结果只释放自己,不能覆盖新鱼或清空新资源。
|
||||
- 无真实API的模拟验证必须用既有fake transport,不以变更真实存档造负例。保留失败原证据。
|
||||
|
||||
真实验收沿用主会话统一执行:新备份与新进程;许可只认领一次;登录后先分离跨日/签到变化;每次操作前记录对应前值,用户停奖励页,主会话取证后明确“可收下”;之后第二次普通手动动作无需重新评审或重启。意外提前收下保留事实,不再收费补截图。最多两次不是承诺随机鱼必然符合原门。
|
||||
|
||||
最终正常QuitStage、待存排空,归档许可且保留claimed;v1新进程只恢复,不钓鱼;核所有备份键的原字符串和两竿累计变化。恢复可能有原同值登录写,不能称零写。101旧停用窗口已结束,须新确认;102不操作,不使用原55键历史档覆盖任何当前进度。
|
||||
|
||||
## 7. 自审与审查关注点
|
||||
|
||||
作者只读自审完成:本方案承认会话许可仍存在,未把连续钓鱼等同正式启用;没有为了P3新增截图锁;把共享Actor、可变字段、CastLine前置内存、异步回主页和同种鱼资源准备纳入合同。v4尝试预算和每竿完成是局部扩展,不扩展到其他活动。完整4B3B/C和最终平台验收仍未完成。
|
||||
|
||||
请审查重点裁定:七文件边界能否实现§4且无遗漏的普通路径上游内存修改;准备批次与动作的分工是否最小;Start先绑定面板而ShowUI后返回的时序是否被收口屏障覆盖;迟到错误不能Fault新竿但真实存储故障必须停止;v1/v2/v3兼容;真实两次授权边界。若这些合同无法在范围内实现,应指出具体调用链与最小修订,不建议泛化重构全部业务。
|
||||
|
||||
本方案及审查基线落盘后交完整独立方案审查。评审前不修改生产/测试代码、不生成v4真实许可、不进入Play。
|
||||
24
CodexOutput/upserver/ContinuousFishing/独立方案审查提示词.md
Normal file
24
CodexOutput/upserver/ContinuousFishing/独立方案审查提示词.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# 单账号连续普通钓鱼:独立方案审查提示词
|
||||
|
||||
请作为独立方案审查者,只读审查 `C:\projects\ft` 项目下一业务包。当前主会话已关闭101真实闭环及药水修正,不需要重新复审或运行上一包。
|
||||
|
||||
先读:
|
||||
1. `CodexOutput/upserver/接手入口.md` 顶部当前状态。
|
||||
2. `CodexOutput/upserver/Gameplay101Validation/101真实闭环与药水引导修正-复核裁决与关闭.md`。
|
||||
3. `CodexOutput/upserver/ContinuousFishing/单账号连续普通钓鱼最小方案-待评审.md` 全文。
|
||||
4. 同目录 `design-review-hashes.json`,逐项独立重算SHA256与长度。共享入口/TODO/日志不属于冻结清单。
|
||||
|
||||
用户要求:最小改动,优先跑起来;单账号、重启式重登;完整方案评审后才编码;一次业务包评审→连续实施并记检查点→一次交付复核。固定 `http://s101.local:18080/`;Unity CLI Loop;不用UnitySkills;不打包。
|
||||
|
||||
本方案尚无编码/新消费批准。不要启动Unity/Play、访问正式接口、创建许可、修改源码/存档或共享状态文档。只允许落盘你的独立报告到 `CodexOutput/upserver/ContinuousFishing/单账号连续普通钓鱼-独立方案审查.md`。不要改受审方案替作者修复。
|
||||
|
||||
审查需具体到真实调用链,尤其:
|
||||
- Begin准入是否在CastLine第一个内存修改之前;同一旧控制器不能借新会话槽重新创建动作。
|
||||
- 同Actor跨竿、可变字段跨await、取消和catch的迟到错误、同资源路径准备批次;不局限于搜索现有KV守卫。
|
||||
- 奖励面板Start/ShowUI返回、OnDisable/OnDestroy/ShowUI下一帧、收下同步选下一鱼与回主页异步的完整时序;不能仅清空静态字段。
|
||||
- 每竿独立计划、原票据、分段和预算;Unknown/失败不重试;v1/v2/v3原一次性行为不变。
|
||||
- 收下额外评价/空投分支的前置排除是否充分,是否还存在具体未纳入的普通链异步写入。
|
||||
- 七文件白名单是否足够且最小;不要求补全所有活动/热换号来取代本次业务范围,也不以隔离为名扩大通用框架。
|
||||
- 离线测试能否证明A迟到不改B的内存/写入/UI,真实最多两次及重启恢复证据是否完整。
|
||||
|
||||
输出总裁决PASS/PASS WITH CONDITIONS/NEEDS REVISION、hash核对结果、逐条P1/P2/P3(来源位置、触发场景、影响、最小修订、验证要求),明确是否有阻塞实施项及具体范围。不要将此方案通过解释为已批准真实101消费。主会话负责逐项裁决、更新共享文档和实施。
|
||||
49
CodexOutput/upserver/F1-F2-F3代码审查.md
Normal file
49
CodexOutput/upserver/F1-F2-F3代码审查.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# F1 / F2 / F3 代码独立审查
|
||||
|
||||
日期:2026-09-21。审查对象:当前未提交工作区本轮修复。审查者为主任务派生的独立审查 agent,不是另建 Codex Session。只写本文件,不修改生产代码。
|
||||
|
||||
## 初审裁决
|
||||
|
||||
**暂不通过:确认 2 项需修复的回归。** F3 退出先失效、F1 本人 API 身份及成员 UI 比较、F2 CreateClub/QuitClub 显式成功与会话检查的主要方向正确。以下问题修复并验证后复审。
|
||||
|
||||
### R1 / P2:批量拒绝申请的真实成功码被拒绝
|
||||
|
||||
- 客户端 `ClubService.HandleApply` 只接受 code=0,空 applyId 的清列表逻辑位于其后,因此实际无法到达。
|
||||
- 服务端 `LeaderboardAPI/Services/Club/ClubService.cs:538–544` 对空 playerId 删除申请列表后返回 code=4。
|
||||
- 影响:批量拒绝服务端已成功,本地申请列表与红点仍残留。与实施方案“保留批量拒绝”不符。
|
||||
- 建议:只在 `!isAgree && applyId == ""` 情况认可 code=4;普通单个操作仍按真实合同处理,空 ID 同意操作应阻断。补真实 code=4 的测试。
|
||||
|
||||
### R2 / P1:签到时间后移后,按钮仍可重复点击并重复发奖
|
||||
|
||||
- `SocialClubJoined.OnSign` 调用 async void `ClubSingin()` 后立即调用 `SetSignCD()`;本批把 signTime 设置移到了请求成功后,立即刷新仍看到未签到,按钮保持可用,成功后也未主动刷新这个 UI。
|
||||
- `ClubSingin` 没有进行中及当天已签到保护;服务端 `ClubSingin` 对任何会员请求都返回 code=0,没有按日期去重。
|
||||
- 影响:网络等待期间双击或成功后再次点击会再次发出签到请求,并多次执行 `AddItemByDrop`。这是本次调整暴露的具体资源重复发放风险。
|
||||
- 建议:增加会话关联的签到进行中保护、成功日期保护;失败后允许重试;UI 等待请求结束再刷新并恢复按钮,过期会话不能发奖或覆盖新 UI。验证双击、成功后再次调用、失败重试及旧会话响应。
|
||||
|
||||
## 已核查通过的局部设计
|
||||
|
||||
- QuitAct 在第一个 await 和 UI 清理前消费注销标记并调用 Logout;无需注销路径保留。Hub 释放异常仍可继续清理。
|
||||
- AggUserService 先 base.Logout 再渠道 Logout,先使客户端认证失效。
|
||||
- 11 个本人 ID 请求使用已认证 ApiPlayerId,旧 PlayFab 存档 UserId 未全局替换;目标 ID 保持目标语义,缓存本人映射使用数字身份。
|
||||
- 受改请求在 await 后核对会话版本和身份;GetClubDetails 的第二个聊天 await 后再次核对。
|
||||
- CreateClub 明确 code=0 且 clubInfo/id 有效才成功,code=1 不触发创建 UI 再扣消耗;QuitClub 仅 code=0/1 才清理。
|
||||
- 三个成员 UI 的本人判定使用 ApiPlayerId。
|
||||
|
||||
## 验证证据边界
|
||||
|
||||
本 agent 独立阅读实际生产源码、服务端本地源码、测试生成器及测试用例;尚未自行执行测试。主任务负责执行并提供测试结果。
|
||||
|
||||
ExitTests 编译实际 QuitAct,但用户服务、SDK、HTTP、Hub 为替身,不能将 DeliverOldHttpAndLogin 的模拟断言描述为实际 SDK 回调验证。ClubRegression 初版只提取 CreateClub/QuitClub/Demote/Promote/Kickout,25 项通过不包含 HandleApply/ClubSingin,也不等于完整俱乐部场景通过。
|
||||
|
||||
不连接正式服、不实际创建/退出俱乐部、不操作玩家资产;本地服务器合同不保证线上部署版本一致。聊天内部异步发送、体力捐赠、点赞与其他未覆盖社交方法仍需后续迁移,不能因此宣称全社交隔离已完成。
|
||||
|
||||
## 修复后复审裁决
|
||||
|
||||
**本批代码审查通过:初审 R1、R2 均已修复,未发现本次边界内其他已确认阻塞项。** 可关闭本批代码阻塞;不表示全游戏迁移完成,也不替代 Unity 场景、渠道 SDK 和真实断网重连验收。
|
||||
|
||||
- R1:`HandleApply` 在发送前拒绝空 ID 的同意操作,空 ID 拒绝仅认可 code=4,普通单人请求仍只认可 code=0。已阅读实际改后源码,并确认测试包含成功清列表、错误 code 不清列表、空同意不发请求。
|
||||
- R2:`ClubSingin` 返回 Task;会话版本对应的进行中状态阻止并发重复请求,成功后以完整日期阻止当天重复发奖,finally 只释放本次版本的锁。请求失败不提前写签到时间,允许重试;旧会话响应不发奖、不写存档。`SocialClubJoined.OnSign` 禁用交互、等待完成并在同会话 finally 刷新签到 UI,日期比较已从 DayOfYear 改为 Date。
|
||||
- 复审实跑:`dotnet run --project CodexOutput/upserver/ClubRegression/ClubRegression.csproj --no-restore --verbosity quiet`,退出 0,**31 项通过**。实际源码方法由生成器提取;运行环境、传输与奖励对象为替身,UI await 刷新链本次为源码审查,未执行 Unity 点击测试。
|
||||
- 主任务报告 2079 源码重编译通过;本 agent 未重复编译,具体命令和完整结果由主任务验收文档保留。
|
||||
|
||||
保留限制:服务端签到本身仍不实现跨设备幂等;此次修复覆盖客户端正常操作重复点击引入的回归。完整签到持久化可靠性随 KV 阶段继续验收。其余未迁移社交功能、SDK 内部回调及线上部署契约仍按前述边界处理。
|
||||
34
CodexOutput/upserver/F1-F2-F3实施方案.md
Normal file
34
CodexOutput/upserver/F1-F2-F3实施方案.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# F1/F2/F3实施方案与评审
|
||||
|
||||
2026-09-21,用户已要求继续执行。先核对审查意见与服务端CreateClub/QuitClub实现及客户端调用者,再记录以下裁决。
|
||||
|
||||
## F3 退出入口
|
||||
通过:QuitAct在第一个await及UI/配置清理之前,若QuitStage.Logout=true,消费该标记并调用Logout。无需注销路径不调用Logout。AggUserService先base.Logout使认证代际/HTTP失效,再退出渠道SDK;QuitAct捕获注销/Hub释放异常并继续必要清理。OnStarted不再重复注销。测试实际QuitAct在Hub释放阻塞、释放异常、非注销及重复启动路径上的顺序;HTTP/API迟到仍由既有版本保护测试覆盖,SDK真实回调另列限制。
|
||||
文件边界:QuitAct、AggUserService,必要时UserService退出字段顺序以保证立即失效。
|
||||
|
||||
## F1 身份清单
|
||||
以下本人字段统一取已授权的ApiPlayerId并固定请求时会话版本:GetClubDetails、CreateClub、ApplyClub、GetApplyList、QuitClub、Demote、Promote、Kickout、ReadClubEvent、ClubSingin、GetServiceEvent。GetSelfClub已有修复保留。
|
||||
CreateClub的internalIdToPlayerId自身缓存及ClubSingin系统消息改为同一数字ID。UserService.UserId与PlayFab存档命名空间不改。
|
||||
目标字段保持目标含义:HandleApply.applyId来自申请列表GetApplyList.userIDList;Demote/Promote/Kickout目标来自GetClubDetails.clubPlayerProfiles.playerId;QuitClub.appointId来自成员列表选择。服务端GetPlayerID使用十进制PlayerIdUtil.ToString。旧DTO/UI名称playFabId暂保留,但不能将目标替成本人;提交目标前验证十进制正数。HandleApply空字符串批量拒绝、QuitClub的0/空为不指定继任者保留。
|
||||
未认证、目标非法不发请求。每个受改方法await返回后检查会话仍有效,二次聊天await也检查。副作用尽量在成功响应之后执行;不宣称其他服务所有跨账号调用已完成隔离。
|
||||
|
||||
## F2 响应成功语义
|
||||
CreateClub本地契约code0新建、1已有俱乐部、2失败。调用UI见非null会扣创建消耗,因此仅code0且clubInfo非空/有效ID返回成功;code1不伪装创建成功、不重复扣减、不覆盖现有状态,用户随后可GetSelfClub同步。错误/空/非法JSON/缺失code/业务失败/过期响应返回null且不改状态,不发成功事件。
|
||||
QuitClub仅显式code0或1(已不在俱乐部)确认不再有会员身份后清理;code2/网络失败/非法响应保留原状态。明确解析code整数,不能把{}默认code0当成功。成功才退出聊天、清状态、提示、发事件。
|
||||
同批触及的Kickout/HandleApply移除原预先修改成员计数/申请列表行为,显式code0后处理;签到不在失败前写本地时间,其他code语义保持服务端合同。
|
||||
文件边界:ClubService;必要测试宿主提取原方法/实际源文件,不改服务器、不做正式服会员/资产操作。
|
||||
|
||||
## 验收与风险
|
||||
实际生产源编译、受改方法隔离测试(模拟传输/引擎)覆盖缺失授权、本人/目标区分、成功/业务失败/网络空结果/HTTP映射失败、旧响应无副作用;实际QuitAct顺序测试。生成脚本/测试命令/结果均存盘。独立review发现阻塞项修复后复审。
|
||||
不会执行真实创建/退出俱乐部;本地契约不等同线上版本保证。原有ClubService其他外围功能以及渠道SDK全局内部状态仍须专项验收,不扩大本批结论。
|
||||
|
||||
裁决:上述方案与开发边界完整评审通过,允许按F3→F1/F2顺序实施。每个小任务完成记录日志。
|
||||
|
||||
### 调用链补充评审
|
||||
成员操作UI仍用旧UserId判断本人,会把本人展示为可踢/可指定继任者。补充通过:ClubChooseHeirPopupPanel、ClubInfoPopupPanel、ClubApplyPopupPanel的服务器成员ID与本人比较改ApiPlayerId;服务方法拒绝以自己作为继任者/升降职/踢人目标。ClubService.SendSystemMessage2的本人消息前缀同步改数字ID并检查授权。其他聊天渲染/体力捐赠仍是后续清单,不借此宣称整个社交模块已迁移。
|
||||
|
||||
### 独立review反馈补充裁决
|
||||
服务器HandleApply空playerId批量拒绝返回code4;通过补充仅在!isAgree且applyId为空时接受4,不把空ID同意作为合法操作。签到原先预设时间隐式抑制连点,现改为成功后写时间,需加入按会话的在途防重与当天成功判断;失败释放在途状态允许重试,不提前写存档。相应回归必须补齐后再验收。
|
||||
|
||||
### 签到调用者补充
|
||||
review确认SocialClubJoined.OnSign原先依赖同步更新signTime立即刷新按钮。补充通过文件边界:ClubSingin改Task,OnSign等待完成,期间禁用按钮,finally在同会话且UI仍存活时刷新CD并恢复交互;非同会话不刷新。使用完整Date而非DayOfYear比较,避免跨年同日误判。模拟测试覆盖并发/失败重试/旧会话不发奖。
|
||||
40
CodexOutput/upserver/F1-F2-F3验收记录.md
Normal file
40
CodexOutput/upserver/F1-F2-F3验收记录.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# F1/F2/F3实现与验收记录
|
||||
|
||||
2026-09-21。依据《F1-F2-F3实施方案.md》及其追加评审。当前仅完成代码/离线验证,独立review结论另见《F1-F2-F3代码审查.md》。
|
||||
|
||||
## 变更
|
||||
- F3:QuitAct在UI/配置清理和第一个await前按Logout标记注销,消费标记防重复;非注销保持。AGG先基类失效、后渠道退出。基类身份字段和PF凭据先清理,再通知HTTP会话更换,避免通知期间仍暴露旧InternalId。
|
||||
- F1:ClubService 11个已列本人playerId请求改认证ApiPlayerId,创建自身缓存同步;每方法授权和会话检查,成员目标保持数字目标含义并验证;签到/系统消息发送数字本人ID。3个成员UI的本人判断同步修正。
|
||||
- F2:CreateClub仅显式code0+有效clubInfo成功;code1已有会员不返回创建成功,避免UI重复扣费。QuitClub仅显式code0/1后清理,其他失败/非法/过期响应保留状态;HandleApply/Kickout将预先副作用移至成功之后。
|
||||
|
||||
## 本轮实际验证
|
||||
- ExitTests:4组通过(注销/非注销×停止正常/抛错),使用实际QuitAct源,账号/Hub/引擎为替身;验证进入Hub等待前Logout已执行,异常继续清理、重复执行不重复注销。替身迟到回调不能证明真实SDK内部全局状态。
|
||||
- ClubRegression:25用例通过,生成器每次从生产ClubService提取helper及Create/Quit/Demote/Promote/Kickout方法,模型亦从生产提取;传输/引擎为替身。覆盖无授权、失败/业务失败/非法和缺字段响应、成功、创建code1、成员目标、旧会话、Kickout失败无预扣。
|
||||
- MinimalLoginTests:31项通过,实际认证会话/HTTP管理器源码;与ExitTests分开,不冒充真实QuitAct+SDK端到端。
|
||||
- RealtimeTests:实际RTService源+替身Hub,既有生命周期测试通过。
|
||||
- 最新2079运行时源文件和工程引用重新生成,Roslyn编译退出0。git diff --check通过。
|
||||
- 本轮没有调用正式服写接口,未创建/退出俱乐部、未扣资产、未写KV;没有宣称Unity运行或AGG真机验收通过。
|
||||
|
||||
## 尚待完成
|
||||
- 独立review及其问题整改后填写最终裁决。
|
||||
- Unity UI、真实SDK、阻塞实际Hub时的真实HTTP/渠道回调组合场景复测。
|
||||
- F1列明范围外:ClubService.SendHelpOthersEnergy的donateId、其他聊天/点赞/体力显示及SocialClubJoined等旧UserId引用仍要单独迁移。不能将本次11个请求修正写为全社交模块完成。
|
||||
- KV生产会话桥接、存档切换、SDK删除没有实施,继续按原阶段门。
|
||||
|
||||
## 复跑
|
||||
```powershell
|
||||
$env:DOTNET_CLI_HOME='C:/projects/ft/CodexOutput/dotnet-home'
|
||||
$env:APPDATA='C:/projects/ft/CodexOutput/dotnet-appdata'
|
||||
dotnet run --project CodexOutput/upserver/ExitTests/ExitTests.csproj --verbosity quiet
|
||||
python CodexOutput/upserver/ClubRegression/generate.py
|
||||
dotnet run --project CodexOutput/upserver/ClubRegression/ClubRegression.csproj --verbosity quiet
|
||||
```
|
||||
|
||||
### Review整改与复验
|
||||
- R1:HandleApply空ID批量拒绝按服务器code4处理;空ID同意不发送;普通目标仍只接受code0。
|
||||
- R2:签到新增会话内在途防重和完整日期成功防重;失败释放锁可重试,旧会话结果不发奖/写入。ClubSingin返回Task,SocialClubJoined等待完成再刷新CD,期间禁用按钮且旧会话不刷新UI。
|
||||
- ClubRegression扩大为31用例,新增生产方法/模型提取覆盖上述分支,全部通过;2079源码最终重编译退出0。
|
||||
- 仍未进行Unity实际按钮交互、真实SDK或会员/资产线上操作。独立agent正在复审本次整改。
|
||||
|
||||
## 最终裁决
|
||||
独立agent复审通过:R1/R2已修复,本批源码无剩余已确认阻塞项,并独立重跑ClubRegression31项通过。F1/F2/F3列明范围的代码整改与离线验收完成;Unity/SDK实机场景仍待执行,不能标记为全社交迁移完成。开发状态与TODO已同步。
|
||||
@@ -0,0 +1,41 @@
|
||||
# 101真实闭环与药水引导修正:复核裁决与关闭
|
||||
|
||||
2026-09-28,主会话。独立报告《101真实闭环与药水引导修正-独立实施复核.md》限定通过,无P1/P2,P3一条。主会话09:37:42.9426203Z重算guide-delivery-hashes.json全部120项SHA256/长度,120/120一致。未运行Unity、正式接口或修改受审证据。
|
||||
|
||||
## 七项逐条裁决
|
||||
|
||||
| 项 | 裁决及说明 |
|
||||
|---|---|
|
||||
| 1 实现范围 | 接受。实际编译边界为UNITY_EDITOR && !SERVICE_HOST;有效存档节点、实际Panel名、KV Enabled/Ready、GetEvent严格=-1、异常回原恢复及常量均落实。没有放宽钓鱼门。 |
|
||||
| 2 红绿与回归 | 接受有限结论。精确计数为奖励55组243断言,消费19组81、M09/M10/M12为12、31模块为83;合计419。不是奖励55组自身有419断言。双编译0错误。 |
|
||||
| 3 唯一一次付费流程 | 接受。S1在抛竿前;原票据确认、奖励先确认后呈现,用户收下回主页;没有再次扣费补拍。 |
|
||||
| 4 数据与恢复 | 接受实质对账结论,纠正报告中的阶段名称,见下表。药水整值保持,任务键没有推进,不夸大覆盖。 |
|
||||
| 5 运行边界 | 接受。两run正常closed/drain,许可已归档,15claim保留;无导入/覆盖/补发/强杀/打包。102仅附带观测。 |
|
||||
| 6 偏差 | 接受限定通过:签到+30在S1前分离;奖励页缺截图由原票据/presented、用户收下确认、主页截图和服务器对账支持,不再付费补证。签到操作人仍未单独确认,历史先例不替代本轮事实;接受依据是本轮差异被明确分离。动态采样过早错误为工具脚本问题。 |
|
||||
| 7 范围 | 接受。只关闭101这条Editor KV业务链及两文件修正;不宣称全体用户/全活动/热换号/G4或完整奖励公式验证。 |
|
||||
|
||||
## 报告文字纠正(不改报告原件/原证据)
|
||||
|
||||
| 区间 | 正确名称与含义 |
|
||||
|---|---|
|
||||
| 091527→092018 | S0游戏前→S1动作前:登录统计/日序+签到,三键变化;尚未抛竿,也未退出。 |
|
||||
| 092018→092245 | S1动作前→收鱼并收下后的额外取证:主档/Map_5_102两键变化。 |
|
||||
| 092245→092418 | 收鱼后取证→首个游戏进程正常退出S2:55键全等;并非恢复进程退出。 |
|
||||
| 092418→092948 | 首进程退出S2→新进程恢复且正常退出S3:55键全等。 |
|
||||
|
||||
报告第6项“金币+30”是笔误:实际为**体力+30**(7275→7305);S0→S1金币仍36550472,钓鱼后金币+1845。第4项第一段不含抛竿消费,消费发生于S1后。依据为封存快照及guide-precast-reconciliation.json、guide-reward-reconciliation.json、guide-recovered-values.json。以上均可由已有证据明确裁决,不需作者再改报告或重新复审。
|
||||
|
||||
## 唯一P3裁决
|
||||
|
||||
采纳流程建议,不修改代码。后续真实收鱼协作清单显式写为:
|
||||
1. 主会话冻结动作前基线后再交用户一次操作。
|
||||
2. 用户成功后停奖励页,主会话完成截图、票据/保存核验并回复“可收下”后才点击收下。
|
||||
3. 若已提前收下,不自动要求再收费;保留实际证据并在该轮交付说明偏差,由复核裁决。
|
||||
|
||||
本次此前提示已有“先不要点收下”,因此此项属协作提醒加强,不是缺少原合同,也不需新增UI锁/通用工具框架。
|
||||
|
||||
## 正式关闭与下一步
|
||||
|
||||
**本业务包(101真实收鱼/保存/新进程恢复+不可用药水引导最小修正)限定关闭。** 101迁移档和102既有进度各自已完成被批准的真实链路;不重复本包开发、付费验证或复核。
|
||||
|
||||
下一步主会话准备更接近日常开发的单账号运行方案;先查清无permit时默认PF/普通kv拒绝、一次性动作状态等真实边界,再形成完整方案交审。此关闭不授权删除一次性门、开放连续消费或正式kv。继续采用一次完整方案评审→连续实施/内部日志→一次交付复核。完整4B3B/C、其余活动/模块外键、StorageError/L7、4D/G4仍开放。
|
||||
@@ -0,0 +1,84 @@
|
||||
# 101真实收鱼闭环及药水引导最小修正:实施交付
|
||||
|
||||
2026-09-28,主会话。状态:实施、约定回归及真实闭环执行完成,待一次独立实施/执行复核;尚未正式关闭本业务包。
|
||||
|
||||
## 1. 结果与范围
|
||||
|
||||
101既有55键历史档已在真实游戏完成一次抛竿→拉杆收鱼→收下回主页→正常退出→新Unity进程恢复。鱼10231、金币+1845、体力−5保存并恢复成功;不可用药水活动的历史引导没有被误标完成。只改两个批准源码文件,没有删除钓鱼准入门、改配置/资源、改存档以绕过引导或重复付费。
|
||||
|
||||
批准依据:原《101真实玩法与迁移档恢复业务包》及补充《不可用药水引导恢复最小修正方案》;补充独立审查PASS,主会话19/19受审hash一致,七项及两条P3全部裁决接受。见本目录[裁决与实施记录](不可用药水引导修正裁决与实施记录.md)。本次交付仅证明101这一条Editor KV普通玩法链;不等于完整迁移、全部活动或G4通过。
|
||||
|
||||
## 2. 代码改了什么
|
||||
|
||||
| 文件(项目根相对路径) | 改动及边界 |
|
||||
|---|---|
|
||||
| Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs | Init取出现有save后增加一个延期分支及私有只读判断。仅UNITY_EDITOR且非SERVICE_HOST、KV Enabled/Ready、EventPotion01有效未完成且索引>0、实际节点panelName=EventPotionPanel、GetEvent(4,5)严格=-1时保留同一save到新字典并continue。不改isUpdate/存档进度、不额外Save、不清其他当前指针。活动查询异常记录具体警告并走原恢复。4/5具名。 |
|
||||
| Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs | 原奖励固定验证内新增10组实际Init及回调案例;使用真实101参考档/GuidanceConfig、隔离容器/mock存储。临时设置原异步库Edit Mode上下文并恢复,预加载资源;恢复资源定义/runner/静态上下文/容器。原45组验证保留。 |
|
||||
|
||||
修改前原件在before-guide-fix/,对应原受审hash。guide-implementation-hashes.json证明仅批准两文件改变,其他17项保持。CheckRewardGuide、费用、奖励、配置/预制体/场景均未因本次修正修改;更早阶段工作区改动不归入本次差异。
|
||||
|
||||
## 3. 红绿与回归
|
||||
|
||||
| 验证 | 结果/证据 |
|
||||
|---|---|
|
||||
| 有效红测 | guide-red-result3.json:真实Init完成且无异步错误后,失败于“unavailable historical potion guide is not activated by actual Init”。当时生产文件仍为原件。 |
|
||||
| 奖励全组 | guide-green-result.json:55组243断言(原45组171+新增10组72),formalRequests=0。 |
|
||||
| 消费回归 | guide-regressions.json:19组81断言,restored=true。 |
|
||||
| M09/M10/M12 | 同上,12断言通过。 |
|
||||
| B2-20真实31模块双epoch | 同上,83断言通过,restored=true。 |
|
||||
| Editor编译 | guide-green-compile.json:0错误、272既有警告。 |
|
||||
| SERVICE_HOST编译 | guide-service-host.rsp/.log,exit0、0错误;HotUpdate.guide.service-host.dll。未打包。 |
|
||||
|
||||
共419条断言。新案例覆盖无活动真实101、可用活动、查询失败、节点Panel不匹配、EventPotion02、完成/索引0/无存档/越界及保留其他指针;实际AddIndex(true)/GuideNextEvent不会改药水存档。初次两轮夹具在目标断言前失败(PF静态赋值先后/原异步库Edit Mode上下文缺失)不算红测,原记录保留。未改第三方DLL或生产加载方式。
|
||||
|
||||
## 4. 两个实际进程与快照
|
||||
|
||||
正式API固定http://s101.local:18080/;Unity CLI Loop,手动游戏输入由用户执行。101其他客户端停用确认沿用本连续业务包,不沿用早先导入窗口。
|
||||
|
||||
| 角色 | 进程/运行目录(KVGameplayLoopTests/runs下) | 结果 |
|
||||
|---|---|---|
|
||||
| 一次收鱼v3 | 55088_639261837988243647 | 09:19:26Z ready;09:21:37Z扣费确认;09:21:54Z奖励确认并呈现;09:23:42Z正常closed。 |
|
||||
| 新进程恢复v1 | 130200_639261843009600548 | 09:28:49Z ready;55键读取匹配且运行时数据正确;09:29:30Z正常closed,无钓鱼事件。 |
|
||||
|
||||
全部快照位于KVGameplayLoopTests/backups/:
|
||||
|
||||
| 快照 | 目录 | 用途及比较 |
|
||||
|---|---|---|
|
||||
| 修正后S0 | 20260928T091527Z | 10155键,与修正前正常退出最终085931Z一致。不是回滚至D导入档。 |
|
||||
| 动作前S1 | 20260928T092018Z | 登录/签到后,抛竿前冻结;全55键与cache匹配,pending0。 |
|
||||
| 额外奖励后取证 | 20260928T092245Z | 用户已收下后采样;S1→此快照仅主档、Map_5_102变化。 |
|
||||
| 正常退出S2 | 20260928T092418Z | 与奖励后快照55/55一致;新进程v1基线。 |
|
||||
| 恢复退出S3 | 20260928T092948Z | 与S2 55/55一致;两进程最终cache也各55/55一致。 |
|
||||
|
||||
机器对账:[guide-final-reconciliation.json](guide-final-reconciliation.json),可用reconcile-guide-final.ps1离线重算。102各轮45键观测值相同,只作为附带观测,不据此声称锁定了102所有外部客户端。
|
||||
|
||||
## 5. 真实玩法和恢复数据
|
||||
|
||||
原准入审计:Fish=10231、Item=410010231、Area/Map=102、Rod=20001、Mag=3(索引),主页实际倍率x5。仅一次实际付费抛竿,费用5;没有改随机鱼、强开药水活动或第二次补拍。
|
||||
|
||||
| 项目 | 动作前S1 | 收鱼后/S2/S3/恢复 |
|
||||
|---|---|---|
|
||||
| 金币 | 36550472 | 36552317(+1845) |
|
||||
| 体力 | 7305 | 7300(−5) |
|
||||
| energyRM | 7231 | 7236 |
|
||||
| 鱼10231原值 | 6\|0\|54\|0\|False | 6\|9.23\|54\|5\|False |
|
||||
| 药水EventPotion01 | 索引4、未完成 | 保持;运行时三个当前引导指针为空 |
|
||||
| GuideSaveDataNew整值 | 基线原值 | 完全一致,两个新进程均无该键写入审计 |
|
||||
| BattlePassRecordTask | 基线原值 | 完全一致;本条玩法没有任务键变化,不把无变化声称为任务推进验收 |
|
||||
|
||||
原始票据:扣费NewPlayerDataDic sequence6;奖励最终主档sequence12、Map_5_102 sequence11。reward-confirmed 09:21:54.7609805Z先于presented 09:21:54.7650083Z,各一次;guide通知1、激活0;收鱼run fault0。只有NewPlayerDataDic/Map_5_102发生钓鱼差异,其他鱼值不变。原始events.jsonl/缓存和guide-reward-reconciliation.json可交叉核验。
|
||||
|
||||
恢复证据guide-recovered-values.json:valuesPass=true、55键mismatches=[];真实PlayerFishData最大重量9.23、level6、新鱼标记false,金币/体力/energyRM匹配。guide-recovery-login-state.json另证101/InternalId2/kv-loop/API、三个指针空及实际活动=-1。
|
||||
|
||||
## 6. 偏差、边界和结束状态
|
||||
|
||||
- S0→S1不是纯净登录:签到使体力+30,MonthlySignEvent总序6→7/日序3→4;ShopPackBuyCount日序270→271、主档登录统计更新。已在抛竿前单独冻结、归因,不计入+1845/−5钓鱼结果。用户未单独答复签到操作人,记录为未知;主会话没有模拟签到输入。
|
||||
- 用户提前点“收下”,没有留存奖励面板截图或收下前快照。已获得confirmed/presented顺序审计、用户收下说明、真实主页截图及服务器对账;复核需裁决这是否足以支持本包有限验收,不隐去证据缺口,不默认要求再付费一次。
|
||||
- +1845来自实际主档差值与奖励票据。未留存全部随机/增益公式输入,不声称独立重算了完整奖励公式。
|
||||
- 恢复第一条采样在启动阶段空引用,堆栈仅动态采样脚本;补GContext未就绪返回分支后实际数据采样通过。游戏Console Error=0,未修改生产代码以掩盖采样问题。
|
||||
- 恢复过程不是零保存:有一次既有NewPlayerDataDic同值accepted;最终S2/S3全等,无玩法操作。游戏身份链仍有PF依赖,不宣称完全脱离PF或以KV审计代替全HTTP审计。
|
||||
- 本次修正后五轮备份工具(S0/S1/额外奖励/S2/S3)共10登录+10Get,工具Set/Delete=0;包含修正前085931Z取证则六轮12登录+12Get。相对原四轮计划多一轮奖励后取证,未新增付费业务。游戏请求另计:收鱼run accepted12(含localOnly),恢复run accepted1;accepted数不是HTTP Set请求数。备份DLL hash仍为锁定AAA12766…。
|
||||
- 两次正常退出均closed、pending0、active/unknown=null。v3/v1已归档,根目录无活动permit,全部15个claim保留。Unity130200保持非Play,已用claim不可在同进程重跑;本包101停用协作窗口已结束。
|
||||
- 无重导/覆盖/补发/删除claim/打包。StorageError/L7、全平台引导政策、26模块外键/5未定位键、热换号、4B3B/C、完整4C/4D/G4仍开放。
|
||||
|
||||
下一步交独立复核,见[提示词](101真实闭环与药水引导修正-独立实施复核提示词.md)。复核通过后由主会话核受审hash、逐项裁决并正式关闭本业务包;现在不自封关闭。
|
||||
@@ -0,0 +1,45 @@
|
||||
# 101真实闭环与药水引导修正:独立实施/执行复核
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本包实施与真实运行;此前参与为业务包方案与引导修正方案两轮审查(两条P3为本轮核对项)。本轮只读+hash重算+源码/对账独立核对;未运行Unity/正式接口/修改任何证据。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
`guide-delivery-hashes.json`:**120/120重算全部一致**(两文件前后版、方案/裁决、红绿/回归/编译、两真实run、许可/claim、各轮快照与对账全套)。
|
||||
|
||||
## 总结论
|
||||
|
||||
**通过(限定)。本业务包(101真实闭环+药水引导修正)可交主会话裁决后关闭。** 两项已知偏差经评估为可接受的有限通过;无P1/P2;P3一条。
|
||||
|
||||
## 七项逐条
|
||||
|
||||
**1. 修正实现严格遵守合同:确认(代码抽查)。** `GuideData.cs:179–198`:条件链完整——`UNITY_EDITOR`包裹+KV Enabled/Ready+恰EventPotion01+saved非null/isFinish=false/guideSubIndex>0且<定义数组长度+**节点panelName=="EventPotionPanel"实际断言(我的P3-1已落实)**;`GetEvent`用**具名常量potionEventType=4/potionEventSubType=5(我的P3-2已落实)**且严格==-1;**异常记录警告返回false(原路径恢复)**——五重条件+异常保守全部到位。不放宽钓鱼门、不改存档。
|
||||
|
||||
**2. 红绿与回归:支撑有限范围。** 红测result3(101真实残留重现阻塞);新10组+原45组全绿(419断言);AddIndex/GuideNext专项验证不误完成旧引导;双编译0错误;消费/M10/31模块回归通过。测试时序(Init为async void的完成信号/超时/每例恢复)按方案执行。
|
||||
|
||||
**3. 101一次付费流程:成立。** S1前置冻结;普通鱼/装备/地图/倍率记录;扣费sequence6+奖励sequence12/11;**confirmed先于presented**;用户收下返回主页;仅主档/鱼档两键业务差异、无重试——与4C2合同一致。
|
||||
|
||||
**4. 数据保持与恢复:成立(对账独立核验)。** 本审查核对`guide-final-reconciliation.json`四段对账:
|
||||
- S1前→退出(091527→092018):3键差异=MonthlySignEvent/NewPlayerDataDic/ShopPackBuyCount(**签到+30与跨日/消费**——签到键单列归因✓);
|
||||
- 退出→恢复前(092018→092245):2键=Map_5_102/NewPlayerDataDic(**收鱼奖励**:fish10231+金币1845/体力-5);
|
||||
- **恢复前→恢复退出(092245→092418):differentKeys=[] 全等✓**;
|
||||
- **恢复退出→最终(092418→092948):全等✓**;
|
||||
- GuideSaveDataNew全程未出现在差异列表——**药水引导整值保持、未被误完成**(修正目标达成);
|
||||
- 102四段全部全等(附带快照未受影响)。
|
||||
- 任务键本次未变——交付未夸大为任务推进验收✓。
|
||||
|
||||
**5. 运行边界:守住。** 两run正常closed/drain(待存0);无活动permit;15个claim保留;无强杀/重导/补发/102游戏写入/打包;备份工具与游戏计数分开。
|
||||
|
||||
**6. 两项偏差裁决:可接受(有限通过依据)。**
|
||||
- **签到+30**:发生在S1前,MonthlySignEvent/ShopPackBuyCount差异已单列归因、金币+30计入登录段不混入收鱼奖励(1845为净收鱼);操作人未单独确认——但4C2第四次同类情况(用户手动签到)已有先例,且本次对账把三键明确分离,**证据充分支持有限通过**;
|
||||
- **提前收下缺奖励页截图**:确认/呈现事件各1次+用户确认收下+主页截图+服务器全量对账构成替代证据链(面板三属性以既有红绿为证)——与4C2第四次裁定先例一致,**不要求补付费尝试**;
|
||||
- 动态采样过早报错后实际核验通过——工具问题不混作游戏异常,处理正确。
|
||||
|
||||
**7. 范围:不越界。** 本包只证明101这条真实链+两文件修正;全体用户迁移/G4/26模块外键/PF身份依赖/StorageError/L7均保留开放;奖励公式未独立重算(输入参数未全留)如实声明。
|
||||
|
||||
## P3清单
|
||||
|
||||
- **P3-1**:建议后续真实run把"奖励页截图"列入用户协作清单的必选项提示(本次用户提前收下——流程提醒而非合同缺口)。
|
||||
|
||||
## 结论
|
||||
|
||||
**通过(限定)本业务包交付。** 主会话核hash(已代验120/120+对账独立核验)逐项裁决后可关闭。**里程碑:迁移后的历史档(101)已在真实游戏完整走通——登录→加载55键→一次收鱼→保存→重启恢复,药水引导缺陷修复且进度零丢失。** 至此101(迁移档)与102(原生进度)两条真实链均验证完毕。
|
||||
@@ -0,0 +1,17 @@
|
||||
# 101真实闭环与药水引导修正:独立实施/执行复核提示词
|
||||
|
||||
请对C:\projects\ft做一次合并复核,不再把内部检查点拆成多轮。只读审查,不运行Unity/CLI真实登录/正式接口,不修改业务代码、共享入口/TODO/日志/许可/claimed。仅落盘:
|
||||
`CodexOutput/upserver/Gameplay101Validation/101真实闭环与药水引导修正-独立实施复核.md`。
|
||||
|
||||
先读同目录《101真实闭环与药水引导修正-实施交付.md》及《不可用药水引导修正裁决与实施记录.md》,核`guide-delivery-hashes.json`全部SHA256和字节长度。该清单包含两文件修改前后、已审方案和裁决、红绿/回归/编译、两次真实run与许可/claim、各轮完整快照、采样和对账;共享状态不冻结。原`stale-guide-review-hashes.json`是修正前基线,最终仅两批准源码应改变,不把此预期差异报成受审漂移。
|
||||
|
||||
请逐项裁决:
|
||||
1. 实现是否严格遵守Editor非SERVICE_HOST/KV Enabled+Ready/EventPotion01有效未完成节点/EventPotionPanel/GetEvent严格=-1的合同,保存对象/isUpdate/其他指针/异常原路径/P3具名常量是否保持;没有放宽钓鱼门或改存档绕过。
|
||||
2. 实际Init红测有效(result3),新10组与原45组全部绿,AddIndex/GuideNext不会误完成旧引导;测试临时上下文、runner、资源定义和容器清理是否可靠;双编译和消费/M10/31模块回归是否支撑有限范围。
|
||||
3. 101一次付费流程:S1前置、普通鱼/装备/地图/倍率,扣费sequence6及奖励sequence12/11,confirmed先presented,用户收下返回主页;仅主档/鱼档两键差异且无重试。
|
||||
4. 药水存档整值保持,当前指针为空;金币/体力/鱼值跨进程恢复,S2=S3全部55键,缓存与最终一致。任务键本次未变,不能夸大为任务推进验收。
|
||||
5. 两run正常closed/drain,无活动permit,15个claim保留;没有强杀、重导、补发、102游戏写入或打包。备份工具与游戏accepted计数不得混淆。
|
||||
6. 必须明确裁决两项偏差:登录后签到+30已在S1前分离,操作人未单独确认;用户提前收下使奖励页截图缺失。已有审计/用户确认/主页截图/服务器全量对账能否支持本包有限通过?不要补造证据或默认新增付费尝试。另有动态采样过早报错,后续实际核验通过,不混作游戏异常。
|
||||
7. 只判本包及两文件修正,不扩展为全量迁移/G4关闭;未独立重算全部奖励公式、PF身份依赖和原StorageError/L7均保留。
|
||||
|
||||
输出通过/有条件通过/不通过;每项P级、依据和最小整改或非阻塞解释,明确受审hash核对数量。若通过且无待修项,说明可交主会话逐项裁决后关闭;复核侧不要替主会话更新共享状态,也不要新增无依据的复审轮次。
|
||||
@@ -0,0 +1,607 @@
|
||||
{
|
||||
"createdUtc": "2026-09-28T09:33:03.6719549Z",
|
||||
"purpose": "101真实闭环与药水引导最小修正独立实施复核;项目根相对路径;排除共享日志/入口/TODO及此清单自身",
|
||||
"count": 120,
|
||||
"items": [
|
||||
{
|
||||
"path": "cfgData/tbfishingevent.json",
|
||||
"sha256": "C8A4A9794E9390C94B9C8F1927B3E718B3EB9F784F0889508E1E576DD4B77A2D",
|
||||
"bytes": 1000464
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/ABPackage/pkgPrepare/Export/GuidanceConfig.asset",
|
||||
"sha256": "5926124E5633166CC1B91569B8A71AB2C388AA3446A736B3E7E42B3EBD9F3D3A",
|
||||
"bytes": 147854
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs",
|
||||
"sha256": "3EE995F29639DA4A0E81D04E249DE5F8F1F958F3513A690C7B96EF7098B02DEE",
|
||||
"bytes": 123663
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs",
|
||||
"sha256": "93A354CBB683D3B6CB0B0A4A3AA2DAD2445A8281156F9E0180A93FAF93C7EF4B",
|
||||
"bytes": 31273
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPotionDataManager.cs",
|
||||
"sha256": "F449C9A7F71BF4E0FBD69A5D825E6E99495158C3C42E84B2B5526DD1D31C1510",
|
||||
"bytes": 52782
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs",
|
||||
"sha256": "937EF7EC0BC258303DE2A8C740F8B245C716C2EF9F4773550BBED3DE05190CA3",
|
||||
"bytes": 130654
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "40EE14EBFF6F3D61B6270EA01E73C48DCA0B279B924D26DE6911C0261D7293F9",
|
||||
"bytes": 20093
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs",
|
||||
"sha256": "34C32F02597DB7A1877BB1B87B73EC1F6E368360EBBAA080D6B0B2577799E825",
|
||||
"bytes": 53687
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/FishingStage.cs",
|
||||
"sha256": "A79E40F3CD633DD3814FEFCBF5654E0B5B68B8F5D41DE50857039C53EC62EF2F",
|
||||
"bytes": 22969
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/FishingReward/FishingRewardPanel.cs",
|
||||
"sha256": "3C39458B01439DB4B8B3B40649A01A816A77688127B48462B02866828D28B0D9",
|
||||
"bytes": 59049
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Home/HomeBtnPotion.cs",
|
||||
"sha256": "A3625D3A0DDAE96920CC618C1560AE9DA72E62DCBAB8E4ADF2E701EC5AF92D76",
|
||||
"bytes": 4311
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Potion/EventPotionPanel.cs",
|
||||
"sha256": "23B4DBB989B1A3A29C62C752A94A43A8AC285B4959A0DF7EF57FE903E30A10CF",
|
||||
"bytes": 75454
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/101真实玩法与迁移档恢复业务包-待评审-2026-09-28.md",
|
||||
"sha256": "88F1FF7DBFB4CF1BF4BB9C882229D9EDE150E09EEE1ACFA31E32DCC0844F7B9B",
|
||||
"bytes": 10124
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/101真实闭环与药水引导修正-独立实施复核提示词.md",
|
||||
"sha256": "338FC1B033A6F1796CFAFFE357DFF46537907070AA2A8CB56281AD4909E7F5BA",
|
||||
"bytes": 2866
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/101真实闭环与药水引导修正-实施交付.md",
|
||||
"sha256": "93F4DDFD6E3DD77AB5B53884963BFD6A0FA62EBE6F7104E6503034DA5E6B1444",
|
||||
"bytes": 8703
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/不可用药水引导恢复独立方案审查.md",
|
||||
"sha256": "B4251A8644EBBEF39509DCA9137FD1F67563D2FFD0555FD96534486D704CB01C",
|
||||
"bytes": 4093
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/不可用药水引导恢复最小修正方案-待评审.md",
|
||||
"sha256": "B04789B943A4426C500F3A78BE9758A762527BDBA51B402428AA72E67C52D9BB",
|
||||
"bytes": 10282
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/不可用药水引导修正裁决与实施记录.md",
|
||||
"sha256": "7AEC0630C57AE327E747169E8EC3CF510163622F58873625FF21752E33416B24",
|
||||
"bytes": 9398
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/方案复核裁决与执行记录.md",
|
||||
"sha256": "A6C62136636B9F532AA8471FFF6CEDFD7F4FE648A07CAC7B75D96C2F338F60D0",
|
||||
"bytes": 5954
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/完整业务包独立方案审查.md",
|
||||
"sha256": "2DC71207D7E8033899D10743650B635C77C0D39AA89789458FBDAE9A8C354D0B",
|
||||
"bytes": 4813
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/before-guide-fix/DataCenter.GuideData.cs",
|
||||
"sha256": "64B4155167A1AA07A5FE0287DE7E1091AF83EF017026337EF86D2C93326CD0F4",
|
||||
"bytes": 29637
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/before-guide-fix/UserService.KVFishingRewardValidation.cs",
|
||||
"sha256": "4CC10F91095FE2F058997AA798936C556ABCC04797582CF8990E53A05E79EF35",
|
||||
"bytes": 42357
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-after-tests-state.json",
|
||||
"sha256": "4EAE7A6AB31A711FE5725BA16E54E8CCABA5660384AEE3BB744272448500155D",
|
||||
"bytes": 934
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-await-context.json",
|
||||
"sha256": "F804BA65DCD01EC8BDA8F3C3A9F1C0BF4C02F88DA4BAB93C841E9EA29EA6C686",
|
||||
"bytes": 681
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-await-context2.json",
|
||||
"sha256": "F5E755959C6835C82828B3FBF4497C87022BB6CBADABA2C3E53C273160AEC6B1",
|
||||
"bytes": 4261
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-await-context3.json",
|
||||
"sha256": "2F8C855D5F63214DBD256C08227D6235A8B02546B4D68EAF9850C4CF895337D2",
|
||||
"bytes": 2114
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-final-idle-state.json",
|
||||
"sha256": "807917E948C864799996258D64145440FD89477ED1E2D226545B8DB49AA94F9C",
|
||||
"bytes": 1115
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-final-reconciliation.json",
|
||||
"sha256": "62066756301270B893FB8CA221F44DEE19F81E821C74607C4D4DB90AD705E091",
|
||||
"bytes": 5418
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-green-compile.json",
|
||||
"sha256": "6B628BCFE0E9406A0ECFA3B998E53EB990F7600AC84F06C03806B1F804A71F25",
|
||||
"bytes": 90502
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-green-result.json",
|
||||
"sha256": "4CD552547416D958ADC9264794598D6B08805F76BECE00D79AD3719EA88EC470",
|
||||
"bytes": 2794
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-implementation-hashes.json",
|
||||
"sha256": "4C4BCB8CD9ED026C38F1F705C51F07B8640F9B458B21A81837C4FF2561F234BE",
|
||||
"bytes": 4539
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-baseline-comparison.json",
|
||||
"sha256": "D0A02AD9C30A67246B83FCD8CD46419C9295C23DE5DEF8C347F9411F71AC3AAC",
|
||||
"bytes": 205
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-closed-state.json",
|
||||
"sha256": "9956A92DE4244BBF27A0F37141C1E84701A0C1D94614581E26CCC9DEE31B6817",
|
||||
"bytes": 1075
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-config.json",
|
||||
"sha256": "1440734AEE4DD6D9534D65C21CDC96FC23C98166E7062BFA265060860EAF8F61",
|
||||
"bytes": 552
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-editor-close.json",
|
||||
"sha256": "F4868B627A4989D9CCE816518B3EE80AE8759C37C12D675C45F508409FDD300A",
|
||||
"bytes": 98
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-final-backup.log",
|
||||
"sha256": "55EB88C14B300648614DB35B0CE389BB33E0AFD134B59F302ABE5552951F5344",
|
||||
"bytes": 2312
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-idle-state.json",
|
||||
"sha256": "4EAE7A6AB31A711FE5725BA16E54E8CCABA5660384AEE3BB744272448500155D",
|
||||
"bytes": 934
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-inspect.cs.txt",
|
||||
"sha256": "325FF278AFF00627F9979EB989BDE32807113F0C97B3E90994CD9696A82B9BAF",
|
||||
"bytes": 978
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-login-check.json",
|
||||
"sha256": "64885FBBDFBA950DC67C4A0719B18D16A5C68B66A54A63AF60B4AFEEC4A03CE9",
|
||||
"bytes": 1320
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-login-errors.json",
|
||||
"sha256": "3926EC63ED0550035DD79EEA4EF8352C93E0DC1469599E9B5467096A259FE5E1",
|
||||
"bytes": 156
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-login-screen.json",
|
||||
"sha256": "6AC0080D0B0710E0F7FE6E50C58A571228AF1D4C46B8815DD5C7EEB46A99D48E",
|
||||
"bytes": 386
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-login-verified.json",
|
||||
"sha256": "3B403DC136266BDE44E3E74F2EB080912E06AF7AD2630F97EFEC07EBD2A9CBD1",
|
||||
"bytes": 1343
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-normal-quit.json",
|
||||
"sha256": "A74D6EB4C40AA46509C7BA0C11CE4E6DDF03B4E56F6E6CA5BBEA2A2E923D8491",
|
||||
"bytes": 331
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-permit-prepared.json",
|
||||
"sha256": "F7F8959F9F0B493006FACC89BDB07D8B2CAFE19FAECEB849F06624071957BD14",
|
||||
"bytes": 1134
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-play.json",
|
||||
"sha256": "CC6C75A7F694FAAE136DBADFCFFBCEE5244511FBD0E03BEF1444F700A2EE31E3",
|
||||
"bytes": 85
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-live-preparation-backup.log",
|
||||
"sha256": "1E5E635D0DE8048960D7AF6493FD5EC64EB7F9CC36470BE985F97B2C40777517",
|
||||
"bytes": 2312
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-new-editor-launch.json",
|
||||
"sha256": "C82AA20018160CBCBD3B05372E50DB7D924773657BCBE74B1DCA23DF67CFD8F7",
|
||||
"bytes": 167
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-normal-editor-close.json",
|
||||
"sha256": "6EA9A5AAFB2C4E9B09D72D56095853D1201CA8188C178E4F0D8F0A8BD542B1CF",
|
||||
"bytes": 93
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-precast-backup.log",
|
||||
"sha256": "02E1D55599060A58B3F50BF6E533F66FD37A46687159861FD895C53E380AEC9A",
|
||||
"bytes": 2312
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-precast-reconciliation.json",
|
||||
"sha256": "C955A2AFD81F3B12EAED24E37381F0368A4CCC5E40FB8D7B0CE71702013C371B",
|
||||
"bytes": 522
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-precast-screen.json",
|
||||
"sha256": "8A91BA0732342584E5D34DC9EFE590A1297A28B37E9A4178299B2D9B55DB8597",
|
||||
"bytes": 387
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovered-values-first.json",
|
||||
"sha256": "30CA7412906037066107DF0FBEEDA6836C096C80706D3F914C1FC3020A0D6219",
|
||||
"bytes": 2822
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovered-values.cs.txt",
|
||||
"sha256": "9A3F84B63D2FD59C54DCCD1D83203908D075BCFA34F83AAB9C795D328492DA47",
|
||||
"bytes": 1960
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovered-values.json",
|
||||
"sha256": "2ACC8B7C0AD5BD3EA4D4BC15FFA2878C0D65B04B9AEF184A745EE669167EE6DB",
|
||||
"bytes": 1895
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-closed-state.json",
|
||||
"sha256": "2BFE0504AC58F6553843DF725C445692DE2A01D855DFB15A3C0AF5ED7835FE3F",
|
||||
"bytes": 1114
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-config.json",
|
||||
"sha256": "FDEF5F4A52B541DB9B1E60414F547A12301702F25B873EC0B647CC56DBD5E340",
|
||||
"bytes": 520
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-editor-launch.json",
|
||||
"sha256": "C82AA20018160CBCBD3B05372E50DB7D924773657BCBE74B1DCA23DF67CFD8F7",
|
||||
"bytes": 167
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-errors.json",
|
||||
"sha256": "922DB4F63B9A2058FB68E20A5D241E0EB326CD3DCD7E739C5A2C5DD9ED19767E",
|
||||
"bytes": 156
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-final-backup.log",
|
||||
"sha256": "71D974BAA9E3775D888B3F97F1D9787551F3A7B8A2351D0165ECEAE69FA47046",
|
||||
"bytes": 2312
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-idle-state.json",
|
||||
"sha256": "18485A658243E5FDEF7EF16EB4141997BC3501687ABD0B0D5218DFA2C89B3AB2",
|
||||
"bytes": 971
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-login-state.json",
|
||||
"sha256": "DB50CD4C06B1B4E5759850CEB20F9C62F33B4E534F431E1D8950D3E8F51CA943",
|
||||
"bytes": 1382
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-normal-quit.json",
|
||||
"sha256": "A74D6EB4C40AA46509C7BA0C11CE4E6DDF03B4E56F6E6CA5BBEA2A2E923D8491",
|
||||
"bytes": 331
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-permit.json",
|
||||
"sha256": "8A08480602EDAFBDE7CC43B978AA50E88DA5AB00A68BA23A83EB5F3E96D7C9A8",
|
||||
"bytes": 1171
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-play.json",
|
||||
"sha256": "CC6C75A7F694FAAE136DBADFCFFBCEE5244511FBD0E03BEF1444F700A2EE31E3",
|
||||
"bytes": 85
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-recovery-screen.json",
|
||||
"sha256": "FA2E5CEC44FDED17CD7935964C440130DFD5EC3D8FACFAB4F4AC0D9A10BDD7E1",
|
||||
"bytes": 387
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-red-compile.json",
|
||||
"sha256": "FEEE9EADCDE52717657A9C0331E9486504BD92D5C8A253656190DE7DF62E2D47",
|
||||
"bytes": 90502
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-red-compile2.json",
|
||||
"sha256": "FF76EBDECB173D4A55F122ACBD476BD8E0DBF00B862BA875731EB6A90933CD9C",
|
||||
"bytes": 89338
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-red-compile3.json",
|
||||
"sha256": "3700C86DC4A774F9254A84D26B9247900ADAC5198EF4B5C6BE04315E39A847B2",
|
||||
"bytes": 89338
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-red-editmode-preload.json",
|
||||
"sha256": "BE733C3CFD10957C7C0B6993FA7E2285C92DA97BB3ECC7FADB424AA35B2F811B",
|
||||
"bytes": 316
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-red-result.json",
|
||||
"sha256": "A1301E72386E5F3C1EBFF59D8D4609E96C9B581F60E5D068C464AFABADC23EB3",
|
||||
"bytes": 5135
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-red-result2.json",
|
||||
"sha256": "69C603576800090A74D10F58EC00A0D860B758EBCFA5C69E15AD521D46332B76",
|
||||
"bytes": 5295
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-red-result3.json",
|
||||
"sha256": "D4A55028A5ED18CD14FDDF13A082343617C3FF96D6FF7EDAD92A8826C4D79B1E",
|
||||
"bytes": 5275
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-regressions.cs.txt",
|
||||
"sha256": "10AA7794948D777AA28D0AC8F1341B29731618F6B3D063970B24CF10163B66AB",
|
||||
"bytes": 257
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-regressions.json",
|
||||
"sha256": "F88A6B2C00E4B5333AA5A31267FEFB195A6F5242B31273010C655C62C931865D",
|
||||
"bytes": 1757
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-reward-backup.log",
|
||||
"sha256": "E96D8A5437125BE9E036BAC54378AB3E40BE053B27F28ADCF549F7F8D849D9AF",
|
||||
"bytes": 2312
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-reward-errors.json",
|
||||
"sha256": "922DB4F63B9A2058FB68E20A5D241E0EB326CD3DCD7E739C5A2C5DD9ED19767E",
|
||||
"bytes": 156
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-reward-home-screen.json",
|
||||
"sha256": "D0FD9EFADFFAB77DD713F5A1D752ACEBCA80519FC257D278BE31F4A9BCF798E1",
|
||||
"bytes": 387
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-reward-live-state.json",
|
||||
"sha256": "148BF5B0AE61D5560C43797AEA7A9EADAF918F3BC005FAF3BECE6620C170D58D",
|
||||
"bytes": 1343
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-reward-reconciliation.json",
|
||||
"sha256": "ACD81F8409935E08253EC6ED80015E72731239AF3563D40A277417DE04046816",
|
||||
"bytes": 737
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-service-host.log",
|
||||
"sha256": "525A28E3FDC21E66E887A4AE9D4894334C20A72624B6924285B049E7D628B57D",
|
||||
"bytes": 53202
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/guide-service-host.rsp",
|
||||
"sha256": "AC41FC00D71C7A75212678B622EB2A84DCAA17426DD7EE78786219133B68B6F1",
|
||||
"bytes": 150294
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/HotUpdate.guide.service-host.dll",
|
||||
"sha256": "484F9DF69D803F95AF2F974ECB7B03B095FAC3DEDFC5155208E27C7E85828EF8",
|
||||
"bytes": 7574016
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/HotUpdate.guide.service-host.pdb",
|
||||
"sha256": "BBA776960800852B061F4E1A3FF918FBFA96C1D33231374B80DC7DE28214ED90",
|
||||
"bytes": 3029404
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/manual-handoff-reconciliation.json",
|
||||
"sha256": "5E78B809197FA264B1AB62598192BB12406BCCFA861C503E195BEF1EA4FB71B2",
|
||||
"bytes": 141
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/manual-login-verified.json",
|
||||
"sha256": "2BBED98EF18BAB5AA641C52B36E23F5E6FFBE1A80F6FBD30A0BB4650B50E464D",
|
||||
"bytes": 1412
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/no-visible-guide-check.json",
|
||||
"sha256": "1A8057B3172BFED8951C9AD2622F1F0D075DAAEFDC807C3B9C55145ACD7CA690",
|
||||
"bytes": 1399
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/permit-retired-guide-live-55088.json",
|
||||
"sha256": "7B2B1EBA92BDABE337485144BF1C77D9D023E1F9D2D8A2BD366D95CF2DBE4591",
|
||||
"bytes": 1340
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/permit-retired-guide-recovery-130200.json",
|
||||
"sha256": "3D8B421502B40EB957B57F7F5CFB300D0C27847315A616AD2F083FA777C94957",
|
||||
"bytes": 1306
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/prepare-guide-fixed-v3.cs.txt",
|
||||
"sha256": "27532DAB9CFC2E01EB2F97D6DC2007047B64096E218B3EA4C87074BBF5452D24",
|
||||
"bytes": 1956
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/prepare-guide-recovery-v1.cs.txt",
|
||||
"sha256": "F0E8F6C62A79FCAB0628BFDA8BAE8678E63CA50F77D59233C7FE17ACCC4018AB",
|
||||
"bytes": 1943
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/reconcile-guide-final.ps1",
|
||||
"sha256": "F64D399A803DE5AD5871ADB409FF83599D2D4075CF31DB3068ECE485B3EE9C21",
|
||||
"bytes": 2613
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/Rendering_20260928_171952_761.png",
|
||||
"sha256": "E75BF5CCEF5B6B80F194CB67C43047F36F284C8639998154117D3271BED5B768",
|
||||
"bytes": 88686
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/Rendering_20260928_172059_283.png",
|
||||
"sha256": "D94E9ADF17DFAC7588914340CB2108CE718FDA478D386487D321A3A36CB31709",
|
||||
"bytes": 122345
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/Rendering_20260928_172254_440.png",
|
||||
"sha256": "BE709F3EFE51F82DD2D6A9FF899BCE6325343D622FB87CF5609683F95A50105D",
|
||||
"bytes": 613767
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/Rendering_20260928_172929_557.png",
|
||||
"sha256": "C56A1D736945F8ADC5F5FEA20A1B1F742EBD855FFE0BDA296745992FA8C51BF6",
|
||||
"bytes": 612237
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/stale-guide-review-hashes.json",
|
||||
"sha256": "CEA99FFD52DBA4569F6CF85A6D40C2BA7BFE35A4EB95A042B21032860C0CAC89",
|
||||
"bytes": 4080
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/guide-baseline-projection.jsonl",
|
||||
"sha256": "A3D056313FE0F40D395FE92F97BEDE31BA47D8D79A3C4C28781395A43118E89C",
|
||||
"bytes": 26976
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T082052Z/101.json",
|
||||
"sha256": "33E8D998725FA1468EA0167AE3C3BDC8F7F1C75749ABCA9D2868251C19C568A5",
|
||||
"bytes": 22107
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T085931Z/101.json",
|
||||
"sha256": "AFF8E5209BFD66A35CA0A8130F6D07B9D4E90CE09FD2DC74C55EAB91806C3966",
|
||||
"bytes": 22107
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T085931Z/102.json",
|
||||
"sha256": "434EF0DB31839683D9B0497FCFA328DAA8C1D7C85C23448BB0C74C7C31C49ECC",
|
||||
"bytes": 14405
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T091527Z/101.json",
|
||||
"sha256": "2973F0D9CD8E1150F46E9F1297D74174236A4B1127BDE0203BCC09B62498390D",
|
||||
"bytes": 22107
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T091527Z/102.json",
|
||||
"sha256": "3944EDB4FA754C39BAA2692B61A002DE69F6EE7B087F478AE5378135703A459B",
|
||||
"bytes": 14408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T092018Z/101.json",
|
||||
"sha256": "8E3FEDF74652D4183FA1CE4A6409BC8472704C79A8B26E1DBB84EDBBFA3E9221",
|
||||
"bytes": 22107
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T092018Z/102.json",
|
||||
"sha256": "B70B2970086D62FE0ECA6479071EE8B46684B14934E132623EB794B3A960030F",
|
||||
"bytes": 14408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T092245Z/101.json",
|
||||
"sha256": "B7401D842AED437918F7EC7C60A161466236B1E03CFD3E8AFCA2B8BD19015C7A",
|
||||
"bytes": 22110
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T092245Z/102.json",
|
||||
"sha256": "BA2B3483E338BEF9C8C68B9699B2EB10D46EDEE391C44C49A577C68F5B5430AA",
|
||||
"bytes": 14408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T092418Z/101.json",
|
||||
"sha256": "A372A85E71AB26ED274330C98018213DD95A8F75A82DF0452E112D45577AECA1",
|
||||
"bytes": 22110
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T092418Z/102.json",
|
||||
"sha256": "7ADA3C011CFF86C78CBC7B6E88F86F23BD899D6C86A7A8E427C929EBD6E68435",
|
||||
"bytes": 14408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T092948Z/101.json",
|
||||
"sha256": "7FB7E7DF6342206302F1E22534E563FF70CBDF4166D086B5EBAABC65515DC060",
|
||||
"bytes": 22110
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T092948Z/102.json",
|
||||
"sha256": "BF9B065AD1FDF2D940446AA2DE53C182C12CEDAE8A92D4C6B96032746A774808",
|
||||
"bytes": 14408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/fishing-fixed-runs/20260928T091356_36659adf4d474ffcb0c035e5283dfc0c/result.json",
|
||||
"sha256": "F47410E955F07651777964C53BCAA44EAC998E36BB374638FDAF9E3C72094A78",
|
||||
"bytes": 954
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/reward-fixed-runs/20260928T091151_13f7ff597cc5403581497cd095ce5436/result.json",
|
||||
"sha256": "2F05EB961BCEF192F0479A68C9A802EACA61A8CDBF8C04A2D3730436D37A442D",
|
||||
"bytes": 2375
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/130200_639261843009600548.claimed",
|
||||
"sha256": "FDD2D855D7D9806C9AD15E4533CD008563BD1347016510104A9031B801A05790",
|
||||
"bytes": 28
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/55088_639261837988243647.claimed",
|
||||
"sha256": "E8142C1EFBC530D5087E36BF995B45A163E4D7293A3B8033DCACCEC58BE312D5",
|
||||
"bytes": 28
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/130200_639261843009600548/cache/player-kv/v1/b84eace5c350a3cc305e79cc973f5d14512c3bb93bcbcca4c2a44d6803b53f4b/101/state.json",
|
||||
"sha256": "9BE6C6038E3F6DD63BBEB7BD868DF20B72425AB4BD5353784C7C0048CE0055A2",
|
||||
"bytes": 16256
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/130200_639261843009600548/events.jsonl",
|
||||
"sha256": "B02692E3AC5CC48968128D88491A92FE33DDA89469E8436035D4DEF268039794",
|
||||
"bytes": 735
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/55088_639261837988243647/cache/player-kv/v1/b84eace5c350a3cc305e79cc973f5d14512c3bb93bcbcca4c2a44d6803b53f4b/101/state.json",
|
||||
"sha256": "1F41FC053561B48415DC98E2DECC5161C4A0C5A647FA966B70E8ACB4F5A11CD1",
|
||||
"bytes": 16258
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/55088_639261837988243647/events.jsonl",
|
||||
"sha256": "6A538609E5D7071F12CDF13B674EACD2CD09DAE542F9C2BA04E6DA2B81E5061B",
|
||||
"bytes": 6720
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Preflight.dll",
|
||||
"sha256": "AAA1276630E8633C131072DDF638639B92F60134A0425E17616A4A5A2A436607",
|
||||
"bytes": 355328
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"createdUtc": "2026-09-28T09:15:05.5662477Z",
|
||||
"stage": "code-regressions-passed-live-pending",
|
||||
"items": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/不可用药水引导恢复最小修正方案-待评审.md",
|
||||
"sha256": "B04789B943A4426C500F3A78BE9758A762527BDBA51B402428AA72E67C52D9BB",
|
||||
"bytes": 10282,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/no-visible-guide-check.json",
|
||||
"sha256": "1A8057B3172BFED8951C9AD2622F1F0D075DAAEFDC807C3B9C55145ACD7CA690",
|
||||
"bytes": 1399,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/manual-login-verified.json",
|
||||
"sha256": "2BBED98EF18BAB5AA641C52B36E23F5E6FFBE1A80F6FBD30A0BB4650B50E464D",
|
||||
"bytes": 1412,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/manual-handoff-reconciliation.json",
|
||||
"sha256": "5E78B809197FA264B1AB62598192BB12406BCCFA861C503E195BEF1EA4FB71B2",
|
||||
"bytes": 141,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T082052Z/101.json",
|
||||
"sha256": "33E8D998725FA1468EA0167AE3C3BDC8F7F1C75749ABCA9D2868251C19C568A5",
|
||||
"bytes": 22107,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs",
|
||||
"sha256": "93A354CBB683D3B6CB0B0A4A3AA2DAD2445A8281156F9E0180A93FAF93C7EF4B",
|
||||
"bytes": 31273,
|
||||
"baselineSame": false
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs",
|
||||
"sha256": "34C32F02597DB7A1877BB1B87B73EC1F6E368360EBBAA080D6B0B2577799E825",
|
||||
"bytes": 53687,
|
||||
"baselineSame": false
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "40EE14EBFF6F3D61B6270EA01E73C48DCA0B279B924D26DE6911C0261D7293F9",
|
||||
"bytes": 20093,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs",
|
||||
"sha256": "3EE995F29639DA4A0E81D04E249DE5F8F1F958F3513A690C7B96EF7098B02DEE",
|
||||
"bytes": 123663,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/FishingStage.cs",
|
||||
"sha256": "A79E40F3CD633DD3814FEFCBF5654E0B5B68B8F5D41DE50857039C53EC62EF2F",
|
||||
"bytes": 22969,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs",
|
||||
"sha256": "937EF7EC0BC258303DE2A8C740F8B245C716C2EF9F4773550BBED3DE05190CA3",
|
||||
"bytes": 130654,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/FishingReward/FishingRewardPanel.cs",
|
||||
"sha256": "3C39458B01439DB4B8B3B40649A01A816A77688127B48462B02866828D28B0D9",
|
||||
"bytes": 59049,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Home/HomeBtnPotion.cs",
|
||||
"sha256": "A3625D3A0DDAE96920CC618C1560AE9DA72E62DCBAB8E4ADF2E701EC5AF92D76",
|
||||
"bytes": 4311,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Potion/EventPotionPanel.cs",
|
||||
"sha256": "23B4DBB989B1A3A29C62C752A94A43A8AC285B4959A0DF7EF57FE903E30A10CF",
|
||||
"bytes": 75454,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPotionDataManager.cs",
|
||||
"sha256": "F449C9A7F71BF4E0FBD69A5D825E6E99495158C3C42E84B2B5526DD1D31C1510",
|
||||
"bytes": 52782,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/ABPackage/pkgPrepare/Export/GuidanceConfig.asset",
|
||||
"sha256": "5926124E5633166CC1B91569B8A71AB2C388AA3446A736B3E7E42B3EBD9F3D3A",
|
||||
"bytes": 147854,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/guide-baseline-projection.jsonl",
|
||||
"sha256": "A3D056313FE0F40D395FE92F97BEDE31BA47D8D79A3C4C28781395A43118E89C",
|
||||
"bytes": 26976,
|
||||
"baselineSame": true
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishingevent.json",
|
||||
"sha256": "C8A4A9794E9390C94B9C8F1927B3E718B3EB9F784F0889508E1E576DD4B77A2D",
|
||||
"bytes": 1000464,
|
||||
"baselineSame": true
|
||||
}
|
||||
]
|
||||
}
|
||||
162
CodexOutput/upserver/Gameplay101Validation/review-hashes.json
Normal file
162
CodexOutput/upserver/Gameplay101Validation/review-hashes.json
Normal file
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"purpose": "101完整业务包方案审查,项目根相对路径;仅焦点依赖,共享状态和日志不冻结;不得运行正式接口或Unity",
|
||||
"createdUtc": "2026-09-28T07:49:57.0583879Z",
|
||||
"count": 31,
|
||||
"items": [
|
||||
{
|
||||
"path": "cfgData/tbeventpackmanager.json",
|
||||
"sha256": "FC9CEA913387D84824251358260BBDBAC98DEA37FBCEAD74ACFA0F833710D4BE",
|
||||
"bytes": 663446
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishcard.json",
|
||||
"sha256": "0E534C8AE67B77FA3FA295D73EE3CCED4C6B788F6FEED6DAE19ABF93D11839A0",
|
||||
"bytes": 456977
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishdata.json",
|
||||
"sha256": "846EEF5FF4139BBC5B9891686CCDD7AA8E836F1D1CBB6EAD546B14B60093C2E0",
|
||||
"bytes": 1756698
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishingevent.json",
|
||||
"sha256": "C8A4A9794E9390C94B9C8F1927B3E718B3EB9F784F0889508E1E576DD4B77A2D",
|
||||
"bytes": 1000464
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbglobalconfig.json",
|
||||
"sha256": "9AEE49D6041E2888798AEDB89ACD6503E6FB866EAAA1D148F2F5D0E13D2F5DA0",
|
||||
"bytes": 6818
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbmapdata.json",
|
||||
"sha256": "1B81E9F1727BC1F39DF68AA98BECEACB94601A818BC82667C29E92304EEE8646",
|
||||
"bytes": 112619
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbroddata.json",
|
||||
"sha256": "A1634FD01B03C23218D652B9944CAA7B08E38587CA89C41A5B7E2974A4DD74E6",
|
||||
"bytes": 36327
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/ABPackage/pkgPrepare/Export/GuidanceConfig.asset",
|
||||
"sha256": "5926124E5633166CC1B91569B8A71AB2C388AA3446A736B3E7E42B3EBD9F3D3A",
|
||||
"bytes": 147854
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "63C369187806A2645C8C6A1411397A6CB7CDDBF5A2DC0E41D905872168DC8675",
|
||||
"bytes": 5105
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "6581E2EF316B764F0E7B984B4A8040B93087A467FA374AA0E5E979D356580A04",
|
||||
"bytes": 99384
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs",
|
||||
"sha256": "C7EB34DB6FB42A44E9D930592D2928CC96CEC4D1D532A66A3207E82F263C02DB",
|
||||
"bytes": 4635
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "FBDB253D3415E35D7D30F867DA057A84E91EAA7DE2FE74094707C517CB8B51A1",
|
||||
"bytes": 76183
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs",
|
||||
"sha256": "4CA9538F432F4FAA7029E2A5A22B0F4D45C3B39E1E676B60058B87928B559483",
|
||||
"bytes": 3989
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"sha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"bytes": 16384
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "40EE14EBFF6F3D61B6270EA01E73C48DCA0B279B924D26DE6911C0261D7293F9",
|
||||
"bytes": 20093
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs",
|
||||
"sha256": "45300AA455CF43C07286A442E7A2C8534B3654C4AEB8316CA5EB3A20593AEA0D",
|
||||
"bytes": 6963
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitStage.cs",
|
||||
"sha256": "89AD2688AB4CACAECA1B12EEC1DD44CFEDEDA6A8AB11E671848E84BAE6AC09E0",
|
||||
"bytes": 432
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/FishingReward/FishingRewardPanel.cs",
|
||||
"sha256": "3C39458B01439DB4B8B3B40649A01A816A77688127B48462B02866828D28B0D9",
|
||||
"bytes": 59049
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/101真实玩法与迁移档恢复业务包-待评审-2026-09-28.md",
|
||||
"sha256": "88F1FF7DBFB4CF1BF4BB9C882229D9EDE150E09EEE1ACFA31E32DCC0844F7B9B",
|
||||
"bytes": 10124
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2第四次真实闭环与新进程恢复记录-2026-09-28.md",
|
||||
"sha256": "ECE690DCCACF7D79993E4ED180319B6DF3551453F2D22B6289ECC2302F96CB86",
|
||||
"bytes": 8347
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/guide-baseline-projection.jsonl",
|
||||
"sha256": "A3D056313FE0F40D395FE92F97BEDE31BA47D8D79A3C4C28781395A43118E89C",
|
||||
"bytes": 26976
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/unity-real-precast.cs.txt",
|
||||
"sha256": "46DD79612453B8A1CE7A9E7E796282B7BDBC0BC38545C8D24BAC374927A6FFE2",
|
||||
"bytes": 1236
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Program.cs",
|
||||
"sha256": "57A44158B84B864B5E853EE74BFA4CBA07801E3231AA8F78398543230F984910",
|
||||
"bytes": 2349
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-gameplay-state.cs.txt",
|
||||
"sha256": "50DD8E9D61C71DBF244515328F09ECBCC2FB93492510031B81EAB83EF8B2240E",
|
||||
"bytes": 255
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-state.cs.txt",
|
||||
"sha256": "040D25CC55A85210B0DD89EB1B7AC9E16CF78DF030E55D859F8F2FC8511004F6",
|
||||
"bytes": 36
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Preflight.dll",
|
||||
"sha256": "AAA1276630E8633C131072DDF638639B92F60134A0425E17616A4A5A2A436607",
|
||||
"bytes": 355328
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D4-独立执行复核.md",
|
||||
"sha256": "BA76ABE48A069998EEBA53AEAA27BA99859B376EB99FBA0DF347DF09A814B86D",
|
||||
"bytes": 3997
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D5-执行复核裁决与关闭.md",
|
||||
"sha256": "467E9226A800F2B1E4610805F783308EB906FDCD2C362853C68F67F5378EB614",
|
||||
"bytes": 2910
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/runs/20260928T073630Z-345b3ee1f47a419abf876bf5b5506d89/account.json",
|
||||
"sha256": "307C31E6FDC45282FDF1E9BA9BB16A20E930CB592F7589D130CBBE4E6F1E11BE",
|
||||
"bytes": 278
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/runs/20260928T073630Z-345b3ee1f47a419abf876bf5b5506d89/after.json",
|
||||
"sha256": "A6CB8A3A0FA3080150FA91D7E2EEBA1D25D7BC59001BFA1641D742B713CE3A2C",
|
||||
"bytes": 16491
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"purpose": "不可用药水引导恢复最小方案审查;项目根相对路径;不含共享状态日志和仍活动的run",
|
||||
"createdUtc": "2026-09-28T08:55:44.7861282Z",
|
||||
"count": 19,
|
||||
"items": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/不可用药水引导恢复最小修正方案-待评审.md",
|
||||
"sha256": "B04789B943A4426C500F3A78BE9758A762527BDBA51B402428AA72E67C52D9BB",
|
||||
"bytes": 10282
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/no-visible-guide-check.json",
|
||||
"sha256": "1A8057B3172BFED8951C9AD2622F1F0D075DAAEFDC807C3B9C55145ACD7CA690",
|
||||
"bytes": 1399
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/manual-login-verified.json",
|
||||
"sha256": "2BBED98EF18BAB5AA641C52B36E23F5E6FFBE1A80F6FBD30A0BB4650B50E464D",
|
||||
"bytes": 1412
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/Gameplay101Validation/manual-handoff-reconciliation.json",
|
||||
"sha256": "5E78B809197FA264B1AB62598192BB12406BCCFA861C503E195BEF1EA4FB71B2",
|
||||
"bytes": 141
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T082052Z/101.json",
|
||||
"sha256": "33E8D998725FA1468EA0167AE3C3BDC8F7F1C75749ABCA9D2868251C19C568A5",
|
||||
"bytes": 22107
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs",
|
||||
"sha256": "64B4155167A1AA07A5FE0287DE7E1091AF83EF017026337EF86D2C93326CD0F4",
|
||||
"bytes": 29637
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs",
|
||||
"sha256": "4CC10F91095FE2F058997AA798936C556ABCC04797582CF8990E53A05E79EF35",
|
||||
"bytes": 42357
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "40EE14EBFF6F3D61B6270EA01E73C48DCA0B279B924D26DE6911C0261D7293F9",
|
||||
"bytes": 20093
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs",
|
||||
"sha256": "3EE995F29639DA4A0E81D04E249DE5F8F1F958F3513A690C7B96EF7098B02DEE",
|
||||
"bytes": 123663
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/FishingStage.cs",
|
||||
"sha256": "A79E40F3CD633DD3814FEFCBF5654E0B5B68B8F5D41DE50857039C53EC62EF2F",
|
||||
"bytes": 22969
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs",
|
||||
"sha256": "937EF7EC0BC258303DE2A8C740F8B245C716C2EF9F4773550BBED3DE05190CA3",
|
||||
"bytes": 130654
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/FishingReward/FishingRewardPanel.cs",
|
||||
"sha256": "3C39458B01439DB4B8B3B40649A01A816A77688127B48462B02866828D28B0D9",
|
||||
"bytes": 59049
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Home/HomeBtnPotion.cs",
|
||||
"sha256": "A3625D3A0DDAE96920CC618C1560AE9DA72E62DCBAB8E4ADF2E701EC5AF92D76",
|
||||
"bytes": 4311
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Potion/EventPotionPanel.cs",
|
||||
"sha256": "23B4DBB989B1A3A29C62C752A94A43A8AC285B4959A0DF7EF57FE903E30A10CF",
|
||||
"bytes": 75454
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPotionDataManager.cs",
|
||||
"sha256": "F449C9A7F71BF4E0FBD69A5D825E6E99495158C3C42E84B2B5526DD1D31C1510",
|
||||
"bytes": 52782
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/ABPackage/pkgPrepare/Export/GuidanceConfig.asset",
|
||||
"sha256": "5926124E5633166CC1B91569B8A71AB2C388AA3446A736B3E7E42B3EBD9F3D3A",
|
||||
"bytes": 147854
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/guide-baseline-projection.jsonl",
|
||||
"sha256": "A3D056313FE0F40D395FE92F97BEDE31BA47D8D79A3C4C28781395A43118E89C",
|
||||
"bytes": 26976
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishingevent.json",
|
||||
"sha256": "C8A4A9794E9390C94B9C8F1927B3E718B3EB9F784F0889508E1E576DD4B77A2D",
|
||||
"bytes": 1000464
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
# 不可用药水引导修正:裁决与实施记录
|
||||
|
||||
2026-09-28,主会话。独立方案审查通过,无P1/P2。主会话于2026-09-28T08:58:34.5804905Z核对19项SHA256及长度,19/19一致。
|
||||
|
||||
## 裁决与批准
|
||||
|
||||
| 审查项 | 裁决 |
|
||||
|---|---|
|
||||
| 1 Init处延后恢复 | 接受;在现有存档取出后、原恢复循环前处理。 |
|
||||
| 2 存档/isUpdate保持 | 接受;只保留该组到新字典并continue,不改进度、不清其他指针、不额外Save。 |
|
||||
| 3 GetEvent与异常 | 接受;仅只读GetEvent(4,5)严格=-1,查询失败走原恢复并告警。 |
|
||||
| 4 其他路径边界 | 接受;仅Editor非SERVICE_HOST、KV Enabled/Ready、EventPotion01有效未完成节点。 |
|
||||
| 5 回调误改风险 | 接受已核实风险;选择源头延后方案,不删除钓鱼门。报告“唯一正确选择”限定为本次已比较的三个选项,不推成一般架构结论。 |
|
||||
| 6 红绿与回归 | 接受;实际Init与AddIndex/GuideNextEvent,覆盖无活动/有活动/异常/节点及原奖励消费回归。 |
|
||||
| 7 退出与闭环 | 接受;先确认现会话已退出drain并退役permit,再改代码;后续完整闭环连续执行。 |
|
||||
|
||||
P3-1接受:实际检查节点panelName恰为EventPotionPanel,新增节点不匹配负例。P3-2接受:活动类型4/子类型5使用具名常量或同处明确语义注释。
|
||||
|
||||
批准仅修改DataCenter.GuideData.cs与UserService.KVFishingRewardValidation.cs,允许本目录记录命令/测试/运行证据。不改配置、钓鱼费用/奖励逻辑、存档数据、claimed,不打包。实施以完整方案为准;不额外安排实施前复核。
|
||||
|
||||
## 检查点0
|
||||
|
||||
实际CLI已见68504的playing=false/ready=false/Error=null;事件记录在08:35:55.4493751Z已closed,未新增fishing事件。没有为了满足步骤再发QuitStage;接下来核cache和最终服务器快照,退役当前许可。退出是谁触发的不作推断,不把本轮只读检查写成主会话执行了退出。
|
||||
|
||||
## 检查点1:有效红测与生产修正
|
||||
085931Z最终快照与082052Z的101全部55键一致;permit已归档,全部claimed保留。红测前两次因夹具静态PF赋值次序、原异步库Edit Mode上下文缺失提前失败,不计目标红测;预加载改同步完成,夹具临时补齐/恢复原上下文与runner,未改DLL或Init加载流程。guide-red-result3.json在实际Init完成且无异步异常后,明确失败于不可用药水指针为空断言;目标红测成立。随后按合同仅增加Init分支和私有只读判断,活动4/5具名,异常告警并原恢复。待全绿验收。
|
||||
|
||||
## 检查点2:限定实现与回归通过
|
||||
奖励固定验证55组243断言全绿(原45组171+新增10组72);消费19组81断言;M09/M10/M12的12断言;B2-20真实31模块双epoch的83断言及restored=true全部通过。Editor编译0错误(272历史警告),SERVICE_HOST编译exit0/0错误。本轮测试均mock,formalRequests=0。17项非修改焦点hash仍与原清单一致;仅两项批准源码变化,生产增加30行左右、既有逻辑不重排。新hash见guide-implementation-hashes.json。测试环境前两次失败记录保留,不冒充红测;有效红测为result3,绿测为guide-green-result.json。
|
||||
新增实际Init测试临时补齐原异步库Edit Mode上下文,结束恢复上下文/runner/资源定义/容器;没有修改第三方DLL或真实配置文件。生产不改默认PF/非Editor/SERVICE_HOST行为。后续新进程101实际闭环仍待执行,未宣布整体关闭。
|
||||
|
||||
## 检查点3:真实验证准备,等待正常退出
|
||||
固定回归后CLI核对playing/enabled/ready=false、error/run=null、permitExists=false;清理成功。09:15:22Z对68504发正常CloseMainWindow且返回true;再次查进程仍在,日志止于关闭请求前,不强杀、不启动第二实例,已请用户查看退出/保存对话框。091527Z新备份10155键/10245键均与085931Z逐值一致;准备新v3脚本但尚未执行。
|
||||
本轮备份工具共两轮(085931Z、091527Z),应用层合计4登录+4Get,工具Set/Delete=0;隔离测试formalRequests=0。实际钓鱼次数仍0,尚无新运行许可/新claim。原13个claim全部保留。下一步仍在主会话,先等旧进程确实退出再launch;用户启动CLI后核环境与最新基线再进入Play。若时间跨日或有外部操作,应刷新备份而非盲用091527Z。无需新增内部实施复核。
|
||||
|
||||
检查点3续:用户确认正常关闭后,主会话检查68504不存在,再经uloop launch启动项目,新进程55088(本地17:16:38)。加载完成,待用户启动CLI Loop;尚无新许可/Play/实际收鱼。
|
||||
|
||||
## 检查点4:真实登录与动作前基线通过
|
||||
用户确认CLI已启动,19/19实施hash一致,新进程55088空闲、固定API核对正确;091527Z距当前仅3分钟,未跨日,使用该基线建立既有v3。09:19:17Z claim,09:19:26Z ready;首轮采样尚未完成登录,不误报失败。随后实际IsLogin=true、101/InternalId2/kv-loop/API正确、level62、gold36550472、Energy7305;药水GetEvent=-1、curDefine/curGroup/curSaveData均null,存档EventPotion01|4|False。没有GuideSaveDataNew写入审计。
|
||||
092018Z动作前55键完整快照,GuideSaveDataNew原值保持,所有55键与cache.baseline一致,pending=0/activeBatch=null/unknownBatch=null,无fishing事件,accepted4。相对091527Z仅MonthlySignEvent(签到index6→7、日序3→4)、NewPlayerDataDic(体力7275→7305/登录统计)、ShopPackBuyCount(日序270→271)变化;正常签到路径与截图吻合,非钓鱼奖励/非补发,操作人已请用户确认。两次截图先每日赠礼后主页x5,AI未模拟UI输入。
|
||||
用户表示已可甩杆;已交用户一次普通抛竿/拉杆/收鱼,成功停奖励页先不收下,失败停止不重试。当前仍活动Play及v3,不能直接Stop/重进。后续奖励快照、收下、正常退出、新进程恢复及最终复核未完成。此次新增一轮只读备份工具2登录+2Get/Set0/Delete0(含102附带观测);游戏写入另计。
|
||||
|
||||
检查点4续:09:21:37Z用户实际抛竿通过原门,fishing-energy-applied为7305−5=7300,consume-confirmed票据sequence6及consume-ready已记录;09:21:39Z strike完成(写0),当前战斗中。实际尝试计1,不允许第二次自动尝试。
|
||||
|
||||
## 检查点5:唯一一次真实收鱼与奖励落库
|
||||
09:21:54Z fish10231 reward-confirmed(主档sequence12、Map_5_102 sequence11)及presented各1;用户报告已点击收下,主会话明确不再抛竿。奖励页停留截图未采集,不能补造;以原审计确认+用户收下说明+实际主页截图+服务器全量对账作为已获得证据,最终复核说明此偏差。092245Z快照与092018Z仅NewPlayerDataDic/Map_5_102两键变化;金币36550472→36552317(+1845)、体力7305→7300(−5)、energyRM7231→7236;鱼10231从6|0|54|0|False→6|9.23|54|5|False。GuideSaveDataNew及BattlePassRecordTask均保持,其他鱼不变。全55键cache相等,pending=0、active/unknown=null;consume/reward confirmed各1、presented1、fault0。实际三引导指针仍空,药水存档仍4/未完成。用户签到操作人尚未单独确认;签到+30及MonthlySignEvent变化已明确归因签到路径,未归入钓鱼收益。准备正常退出和新进程v1恢复。
|
||||
|
||||
## 检查点6:正常退出与恢复准备
|
||||
奖励后Unity Error=0。经QuitStage在09:23:42Z记录closed,CLI实际playing=false/Ready=false/Error=null,cache待存/active/unknown均空。092418Z退出后全量55键与092245Z全部一致;v3许可归档permit-retired-guide-live-55088.json,全部14个claim保留。以092418Z制作既有v1恢复准备脚本,仅准备未执行;09:24:39Z向旧编辑器发正常关闭请求,不强杀。恢复仅登录读取/正常退出,不再抛竿,需验证金币36552317、体力7300、鱼10231=6|9.23|54|5|False、药水原存档保持。
|
||||
|
||||
检查点6续:已确认55088完全退出,uloop launch启动恢复进程130200(本地17:25:00)。待用户启动CLI后执行prepare-guide-recovery-v1.cs.txt及只读恢复核验guide-recovered-values.cs.txt,不运行第二次钓鱼。
|
||||
|
||||
## 检查点7:新进程恢复完成,交付待复核
|
||||
恢复进程130200以v1登录101,09:28:49Z ready;guide-recovered-values.json为valuesPass=true、55键mismatches=[],实际金币36552317/体力7300/energyRM7236,鱼10231原值6|9.23|54|5|False及内存最大重量9.23/等级6一致,EventPotion01仍4/未完成且三个指针空。初次动态采样在启动阶段空引用,补GContext就绪判断;后续游戏Error0,非生产缺陷修复。
|
||||
正常QuitStage在09:29:30Z closed,pending0/active与unknown为空。最终S3为092948Z,与S2 092418Z全部55键一致;两run最终cache与S3全部相等,10245键各轮观测一致。恢复run只有一次主档同值accepted,无钓鱼事件;v1许可已归档,根目录无permit,全部15claim保留。编辑器非Play,本包101停用协作窗口结束。
|
||||
已编写合并实施交付与独立复核提示词,明确签到、提前收下缺奖励页截图、采样前置及请求统计偏差。下一步独立复核侧,仅复核本两文件及101业务包;主会话待核hash/逐项裁决后才能正式关闭,不继续新增开发或自封通过。
|
||||
@@ -0,0 +1,86 @@
|
||||
# 不可用药水引导恢复:最小修正方案
|
||||
|
||||
2026-09-28,主会话。状态:待完整独立方案评审;未修改源码。补充原《101真实玩法与迁移档恢复业务包》,本次评审覆盖修正、回归及剩余真实闭环,内部检查点不另开评审。
|
||||
|
||||
## 1. 问题和目标
|
||||
|
||||
101已成功登录KV,账号和存档均正确。用户看到的是普通主页,没有药水引导。只读证据 `no-visible-guide-check.json` 显示:curDefine/curGroupDefine指向EventPotion01/EventPotionPanel,CurPanelName为空,实际GetEvent(4,5)=-1。源存档 `GuideSaveDataNew` 中保留 `EventPotion01|4|0`。
|
||||
|
||||
原因链:GuideDataCenter.Init不检查活动可用性就恢复未完成引导指针;药水入口HomeBtnPotion在无活动时隐藏;CheckRewardGuide因指针非空拦截。因此不能要求用户去完成当前没有入口的引导,也不能把它解释成登录失败。
|
||||
|
||||
目标:在本次Editor KV运行中,没有可用药水活动时,历史EventPotion01继续保持未完成存档,但不恢复为“当前活动引导”;已有普通钓鱼准入规则保持,用户可以在通过真实预检后完成一次普通收鱼和重启恢复。
|
||||
|
||||
## 2. 方案选择
|
||||
|
||||
| 选项 | 影响 | 裁定建议 |
|
||||
|---|---|---|
|
||||
| 在GuideDataCenter.Init延后恢复这一个不可用引导 | 源头不产生活动指针;保留旧进度,正常钓鱼回调无需绕门 | **推荐**,限定Editor KV和EventPotion01 |
|
||||
| 放宽CheckRewardGuide接受非空药水指针 | 鱼死亡、奖励ApplySuccess会直接AddIndex(true),可能将药水引导误标完成并写档 | 不采用,不能只凭界面不可见放行 |
|
||||
| 改存档为完成、清除存档、开启过期活动 | 改变玩家历史进度或活动配置,掩盖恢复语义问题 | 不采用 |
|
||||
|
||||
关键源码依据:FishingUpdateSys鱼血量归零处直接AddIndex(true),FishingRewardPanel.ApplySuccess同样调用;GuideDataCenter.AddIndex(true)会把curSaveData.isFinish改true并Save。只改测试门会把现在的前置拦截变成收鱼时的错误写档。
|
||||
|
||||
## 3. 精确改动合同
|
||||
|
||||
生产改动仅 `Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs`,位置为Init遍历引导组、取得现有_saveData之后、执行原恢复循环之前。新增一个限定条件分支,必要时在本类内用一个私有判断函数容纳活动查询与异常处理;不抽取/重排整个恢复循环,不新增文件或通用引导框架。
|
||||
|
||||
所有条件同时满足才延后恢复:
|
||||
|
||||
1. 编译条件 `UNITY_EDITOR && !SERVICE_HOST`,并且PlayerKVGameplayLoop.Enabled与Ready均为true。
|
||||
2. 当前组恰为GroupName.EventPotion01,已有存档且isFinish=false,guideSubIndex>0且在当前定义数组范围内;对应节点属于EventPotionPanel。空定义/越界不由这个例外消化,仍走原诊断与检查。
|
||||
3. 通过现有FishingEventData.GetEvent(4,5)查询,结果严格等于-1。这是当前玩家实际活动可用性,**不**根据本地配置最后日期、硬编码活动ID或仅比较存档日期判断。不得调用GetEventAndInit、SetEvent、FixPotionData等有初始化/清理效果的接口。
|
||||
|
||||
满足时:把同一_saveData按原键加入本次keyValuePairs,然后continue;不进入该组的原恢复/JumpIndex逻辑,不修改isUpdate,不设置curSaveData/curDefine/curGroupDefine,不发布CompleteGuide或AddIndex事件,不额外调用Save。原字典中的该组数据保留;最终替换字典的既有逻辑照常执行。
|
||||
|
||||
必须保留的行为:
|
||||
|
||||
- 本分支不清空任何已存在的引导指针;它只阻止这一个不可用组在本次Init中被挂载,不覆盖其他组已经恢复的状态。
|
||||
- 活动查询异常/依赖不可用时不延后:记录具体查询失败的警告并继续原恢复路径,由未变的钓鱼准入拒绝。不能把异常当成GetEvent=-1。
|
||||
- 活动可用、其他组(含EventPotion02)、已完成组、索引0均保持原路径。本修正不把全部过期活动、全部不可见引导都放行。
|
||||
- 默认PF路径、非Editor、SERVICE_HOST不启用此分支。全平台/全部活动的引导恢复政策仍为后续范围,不借此扩大正式启用。
|
||||
- 如果将来药水活动重新可用,下次正常登录仍能按保留的进度走原恢复逻辑。本轮不新增定时恢复、跨日热切换或自动完成政策。
|
||||
|
||||
测试改动仅 `Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs`,在既有fishing-reward固定验证入口增加隔离案例。不改CheckRewardGuide、钓鱼/奖励/费用代码、许可规则、配置/场景/资源,不改101/102服务器数据作为测试准备。
|
||||
|
||||
## 4. 必须验证的行为
|
||||
|
||||
复用既有Unity隔离容器、mock KV、真实GuidanceConfig和当前101参考值。验证实际GuideDataCenter.Init恢复路径;不能只写一个与新if相同的真假表来冒充集成验证。Init是async void:固定测试须在无Play/无活动许可时启动,在已配置mock依赖的隔离容器内调用,按guidanceGroupDefines初始化完成和下一Unity调度帧观察结果,设有限超时,收集异步异常;每例Dispose引导订阅并恢复容器,不让未结束的异步继续到下一例。
|
||||
|
||||
| 验证 | 应有结果 |
|
||||
|---|---|
|
||||
| 修复前红测:101真实EventPotion01残留+无活动 | 实际Init恢复指针,证明当前阻塞可重现;不能使用手工把指针清空的替身 |
|
||||
| 修复后同输入 | 三个当前指针不因该组赋值;该组全部存档字段不变,不新增CompleteGuide/该组保存副作用 |
|
||||
| 相同存档+隔离配置构造可用药水活动 | 通过实际GetEvent(4,5)返回有效ID,原恢复成功,不丢旧进度;不修改真实cfg文件/时间 |
|
||||
| 活动查询失败 | 保留原恢复及门拒绝,不误判可用性;异常信息可追溯 |
|
||||
| 其他未完成组/其他已恢复指针 | 继续原恢复,或保留其他指针;CheckRewardGuide仍拒绝真实活动引导 |
|
||||
| 已完成、索引0、无存档、边界索引 | 新例外不改变旧行为;异常数据不被“延期”藏起 |
|
||||
| 延后后调用实际AddIndex(true)与GuideNextEvent | 没有当前引导时不得改变药水完成标记、索引、产生药水GuideSaveDataNew改值或CompleteGuide通知 |
|
||||
| 原普通鱼完整奖励路径 | 通过真实CheckRewardGuide/原31模块加载与奖励通知,原费用/奖励确认先后、普通引导未完成/特殊鱼等负例不变 |
|
||||
|
||||
测试中若原Init因其他合法引导需要Save,使用mock记录并逐字段比较,区别既有副作用与本修正产生的副作用;不能笼统要求整个Init在所有输入下零写。101实际样本则必须验证其GuideSaveDataNew原值保持。
|
||||
|
||||
验证范围:现有fishing-reward全组加新案例、既有4C1固定消费回归、M10/31模块加载原回归,以及Editor与SERVICE_HOST编译。非Editor既有_cheatingScore历史错误、StorageError/L7问题按原状态保留,不用修复本问题为由扩大改动。出现新失败才扩大针对性测试;不重跑101导入或全项目千项hash。
|
||||
|
||||
## 5. 连续实施与真实验收
|
||||
|
||||
完整独立评审后主会话核本方案焦点hash并逐条裁决。当前68504仍在Play且有活动v3许可:实施前必须正常QuitStage、确认drain/closed、保存最终快照并归档许可,保留全部claim;不能在用户运行中改源码触发域重载。此退出与后续新进程登录是同一业务包内部执行步骤,不新增评审。
|
||||
|
||||
随后连续完成:红测→上述两文件最小修改→固定回归和编译→新进程/新备份/既有v3许可→101实际登录→动作前核验及快照→用户手动一次普通抛竿/拉杆/收鱼→奖励确认后收下→正常退出→新进程v1恢复→统一交付复核。
|
||||
|
||||
新的运行基线为最新已验证的合法KV进度。目前参考 `KVGameplayLoopTests/backups/20260928T082052Z/101.json` 55键,与081406Z全等;后续以正常退出时新的全量快照补接证据,不能回滚原D导入after。任何用户实际操作差异均先归因,不能覆盖。
|
||||
|
||||
动作前必须满足:101/kv-loop/固定API、Ready且无错误、无未确认保存;实际GetEvent(4,5)=-1时当前引导指针为空,GuideSaveDataNew保留原值;其余原普通鱼/引导/活动准入仍检查。若药水活动变为可用,则保留正常引导,不能为了赶进度用例外放行。
|
||||
|
||||
操作仍由用户完成。第一次抛竿前先冻结完整服务器/运行时基线;奖励成功先停奖励面板采样,再收下;失败不自动再付费,不补发、不重导、不删除claim。本修正不保证自然随机鱼必然符合已有门。
|
||||
|
||||
验收除原金币/体力/鱼档/任务票据与新进程恢复外,必须新增:普通收鱼过程中EventPotion01没有被AddIndex误完成,GuideSaveDataNew保持;修正不需要用户完成一个不存在入口的药水活动。全部完成再统一交付复核,不把“已不拦截”当作闭环完成。
|
||||
|
||||
固定http://s101.local:18080/;Unity CLI Loop;不使用UnitySkills;不打包。
|
||||
|
||||
## 6. 评审提示词与交付边界
|
||||
|
||||
请独立审查本最小补充方案,并核同目录 `stale-guide-review-hashes.json`。重点:Init处延期是否避免恢复错误指针;save数据和isUpdate是否保持;GetEvent只读语义与异常分支;其他组/PF/非Editor不回归;AddIndex(true)/GuideNextEvent/奖励通知是否可能误改存档;实际Init的红绿验证是否充分;当前活动会话退出后才能编码;剩余真实闭环是否完整覆盖。
|
||||
|
||||
给出通过/有条件通过/不通过,逐条列问题严重级别、依据和最小修改。不要把原失败现场再拆成独立实施复核;不要要求改档完成引导或删除钓鱼门。只读审查,不运行Unity/正式接口,不修改共享状态或业务代码,仅落盘 `Gameplay101Validation/不可用药水引导恢复独立方案审查.md`。
|
||||
|
||||
作者自查:根因、三选一取舍、两文件范围、精确分支、状态/持久化边界、失败分支、红绿与原回归、实际运行、统一验收均已明确。尚无实施批准或代码修改;下一步交审核侧。原31项方案受审清单不回写,本补充清单只冻结相关源码/输入/证据,不冻结共享日志与活动run文件。
|
||||
@@ -0,0 +1,36 @@
|
||||
# Gameplay101Validation 不可用药水引导恢复独立方案审查
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本方案编写与101首次运行;此前参与为业务包方案审查。本轮只读+hash重算+源码核对;未运行Unity/正式接口/修改共享状态。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
`stale-guide-review-hashes.json`:**19/19重算全部一致**。
|
||||
|
||||
## 总判定
|
||||
|
||||
**通过。** 无P1/P2;P3两条不阻塞。根因链准确、三选一取舍正确(放宽门会导致AddIndex(true)误完成引导——本审查独立核实该危险真实存在)、改动合同最小且边界严格。
|
||||
|
||||
## 重点逐项(按§6提示词)
|
||||
|
||||
**1. Init处延期避免错误指针:正确。** 根因链经源码核实:`GuideDataCenter.Init`(:95 async void)不检查活动可用性即恢复未完成指针→CheckRewardGuide因指针非空拦截→用户被要求完成无入口的引导。延期分支置于取现有_saveData之后、原恢复循环之前——**源头不产生活动指针**,正确位置。
|
||||
|
||||
**2. save数据与isUpdate保持:合同明确。** 延期时同_saveData按原键加入keyValuePairs后continue;不设curSaveData/curDefine/curGroupDefine、不改isUpdate、不发布事件、不额外Save、不清其他组指针、保留原字典数据——**只阻止挂载不丢进度**(活动将来可用时下次登录仍能原路恢复)。
|
||||
|
||||
**3. GetEvent只读语义与异常分支:严格。** `GetEvent(4,5)`(:449)只读查询严格=-1才延期;禁用GetEventAndInit/SetEvent/FixPotionData等有副作用接口;**异常不当作-1**(记录警告继续原恢复,由钓鱼准入拒绝)——保守方向正确。
|
||||
|
||||
**4. 其他组/PF/非Editor不回归:边界完备。** 限定`UNITY_EDITOR&&!SERVICE_HOST`+KV Ready+恰EventPotion01+isFinish=false+guideSubIndex>0且在范围内;EventPotion02/已完成/索引0/其他组/活动可用均原路径;默认PF与非Editor完全不触发。
|
||||
|
||||
**5. AddIndex(true)/GuideNextEvent误改风险:真实且被正确规避。** 本审查独立核实三处`AddIndex(true)`调用(FishingUpdateSys:2037/3028+FishingRewardPanel:582)——若选路线2放宽CheckRewardGuide,收鱼/鱼死亡时会把EventPotion01误标完成并写档。**路线1(源头延期)是唯一正确选择**;延期后无当前引导→AddIndex(true)无目标可改。
|
||||
|
||||
**6. 红绿验证充分:是。** 红测用101真实EventPotion01残留(非清指针替身)重现阻塞;绿测同输入指针不挂载+存档不变;可用药水活动经隔离配置构造走原恢复(不丢旧进度);异常/其他组/边界全覆盖;**"延后后调用AddIndex(true)不得改药水标记"的专项验证**直接锁定核心风险;Init为async void的测试时序(完成信号/下一帧观察/有限超时/每例恢复容器)考虑周全。
|
||||
|
||||
**7. 当前会话退出后才编码+剩余闭环覆盖:完整。** 68504在Play须先正常QuitStage/归档许可——不能运行中改源码触发域重载;后续连续执行(红测→两文件修改→回归→新进程→真实抛竿→收下→退出→v1恢复→统一复核)与原业务包合同一致;新增验收项"EventPotion01未被误完成+GuideSaveDataNew保持"精确对应本修正的风险。
|
||||
|
||||
## P3清单(不阻塞)
|
||||
|
||||
- **P3-1**:延期分支的条件2要求"对应节点属于EventPotionPanel"——建议实现时以`guidanceGroupDefines`节点数组实际Panel名断言(而非仅组名推断),测试加一条节点Panel不匹配时不延期的负例。
|
||||
- **P3-2**:`GetEvent(4,5)`的magic数字(type4/subType5)建议在修正分支内用具名常量或注释标明语义(药水活动类型对),便于未来维护。
|
||||
|
||||
## 结论
|
||||
|
||||
**通过本最小修正方案。** 主会话核hash(已代验19/19)逐条裁决后:先正常退出当前68504会话(归档许可/保留claim),再连续执行红测→两文件修改→回归→新进程真实闭环→统一交付复核。原业务包合同继续有效;本修正不扩大到全平台/全部活动引导政策。
|
||||
41
CodexOutput/upserver/Gameplay101Validation/完整业务包独立方案审查.md
Normal file
41
CodexOutput/upserver/Gameplay101Validation/完整业务包独立方案审查.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Gameplay101Validation 完整业务包独立方案审查
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本方案编写;此前参与为P2-α-A/B/C/D与4C1/4C2全链审查(本包直接复用这些已关闭单元的入口与合同)。本轮只读+hash重算;未运行Unity/正式接口/修改共享文档。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
`Gameplay101Validation/review-hashes.json`:**31/31重算全部一致**。Preflight.dll独立核验=`AAA1276630E8633C…`(与方案引用一致);导入after参考run目录(20260928T073630Z)八件证据在位。
|
||||
|
||||
## 总判定
|
||||
|
||||
**通过。** 无P1/P2;P3三条不阻塞。方案是对已验证组件(4C2入口+D导入档+既有许可体系)的正确组合复用,生产代码零改动可信,且从4C1–4C2全部教训中吸收了流程改进。
|
||||
|
||||
## 重点逐项(按§7提示词)
|
||||
|
||||
**1. 101既有账号与55键备份:充分。** S0门要求55键与D导入after**原值一致**(身份/关键档/配置匹配+解码有效)——不一致即停不覆盖;S0兼作v3许可backupPath(位于KVGameplayLoopTests下满足现有许可约束——方案如实说明导入after不能直接用);101其他客户端停用至包结束(不沿用已结束的15分钟窗口);102不需停用且附带快照仅观测——三个账号边界各自准确。
|
||||
|
||||
**2. v3/v1边界:清楚。** v3=一次钓鱼动作(S0的55键为许可键上限);v1=恢复登录(S2备份建立);钓鱼写门六键+必须在S0键集+新键维持拒绝——与4C2已关闭合同一致;"许可键集≠允许点击55种业务"的限定诚实。
|
||||
|
||||
**3. PF身份依赖:如实。** "登录仍先PF身份→s101→KV加载,存在PF域名解析依赖;不能宣称完全不访问PF;PF存档写入不在授权范围、发现即停"——与4C2第四次运行的DNS现实一致。
|
||||
|
||||
**4. 登录写与钓鱼写的区分:明确。** S1在**动作前**冻结(登录稳定且未抛竿);S0→S1登录规范化/跨日差异**单列归因**不混入钓鱼奖励;S1→S2业务差异可解释——三层快照切分正确(直接吸收4C2第四次"用户先操作后采样"的教训:本方案明确"主会话完成动作前采样后才通知用户")。
|
||||
|
||||
**5. 一次扣费与奖励/退出确认:闭合。** 一次付费动作、失败不重试、自然鱼不保证抽中合格鱼且拦截照停不改随机、`fishing-reward-confirmed`先于`presented`、QuitStage正常退出不靠强杀、未确认票据为0或有明确终态、**"扣费已确认而奖励失败则如实记账,不自动补发"**——与4C1/4C2失败合同完全一致。
|
||||
|
||||
**6. 新进程恢复:充分。** 新进程+S2的v1许可+不操作玩法+恢复值与S2核对+S3差异归因(登录附带变化单列);"恢复失败不把S0重新导入"。
|
||||
|
||||
**7. 备份工具附带102只读:正确。** 锁定DLL仅`--backup-101-102`分支(import分支禁止);每轮1登录+1Get/账号、无Set/Delete;102快照只报告观测值——"不能把其他客户端变化归于本次101游戏"的限度诚实。
|
||||
|
||||
**8. 失败不重导/重放/绕过:贯穿。** §5全部失败分支(PF解析/加载/准入/并发/Unknown/写门)均为停止+留证;"不授权任意故障修复代码,必须改业务逻辑则完整评审补充"——与既定边界一致。
|
||||
|
||||
**9. 执行方式(一次授权连续执行+统一复核):合理。** 把备份/许可/准备从独立评审改为内部检查点是正确的效率取舍——所有组件均已各自过审,本包只是组合执行;提示词要求"只将真实阻断项作为开工条件,不因文档样式另设实施前复核"——与本审查判断一致。四轮备份8登录+8Get与游戏请求分开计数、"不能把工具计数当游戏总请求数"——吸取4C2口径教训。
|
||||
|
||||
## P3清单(不阻塞)
|
||||
|
||||
- **P3-1**:S0快照与D导入after的对账建议直接复用D4复核的逐值比较脚本产物(hash引用而非重算),并在交付中交叉引用两份独立对账。
|
||||
- **P3-2**:检查点2"协作点击收下"——若CLI LongPress适配(4C1经验)需要再次使用,建议在交付中记录实际输入方式(用户手动/CLI模拟)与参数,延续既有约定。
|
||||
- **P3-3**:S3后建议附一次最终101全量Get快照(S4概念,仅读)作为交付对账终点——当前S3即恢复退出后快照已含此意,显式命名即可(可选)。
|
||||
|
||||
## 结论
|
||||
|
||||
**通过完整业务包方案。** 主会话核hash(已代验31/31+DLL)逐条裁决后,取得你的一次运行授权即可连续执行(登录→一次收鱼→保存→退出→新进程恢复→统一复核)。本包证明范围=101这条真实链;26模块外键/全活动/热换号/4B3B/C/G4不因此完成——方案自身声明准确。
|
||||
52
CodexOutput/upserver/Gameplay101Validation/方案复核裁决与执行记录.md
Normal file
52
CodexOutput/upserver/Gameplay101Validation/方案复核裁决与执行记录.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# 101完整业务包:方案复核裁决与执行记录
|
||||
|
||||
2026-09-28,主会话。独立报告《完整业务包独立方案审查.md》通过,无P1/P2。主会话于2026-09-28T07:53:29.6197453Z重算受审31项SHA256及长度,31/31一致。批准按完整业务包连续执行,生产代码零改动;不新增实施前复核。
|
||||
|
||||
## 逐条裁决
|
||||
|
||||
| 报告项 | 裁决 |
|
||||
|---|---|
|
||||
| 1 账号与备份 | 接受;S0须新取且与D导入55键逐值一致,其他客户端停用是实际运行前提。 |
|
||||
| 2 v3/v1边界 | 接受;一次钓鱼/恢复分新进程,55键只是许可上限,保留现有严格钓鱼写门。 |
|
||||
| 3 PF身份 | 接受;PF身份依赖保留,不能称游戏无PF请求。 |
|
||||
| 4 登录/钓鱼写 | 接受;先取得动作前S1和登录差异,才通知用户抛竿。 |
|
||||
| 5 费用/奖励/退出 | 接受;最多一次付费,失败不重试;奖励确认后展示,正常退出和drain。 |
|
||||
| 6 恢复 | 接受;新进程v1,基于S2,恢复失败不重导。 |
|
||||
| 7 102备份 | 接受;工具附带102登录/Get,无102游戏或KV写;登录元数据副作用不隐瞒。 |
|
||||
| 8 失败边界 | 接受;不绕门、不重放、不自动补发;需要业务代码变更才补审方案。 |
|
||||
| 9 连续执行 | 接受;准备/运行/恢复为内部检查点,最后统一交付复核。 |
|
||||
|
||||
P3-1部分采纳:交叉引用D4的两份独立对账,复用比较口径;但旧产物的hash不能证明新S0一致,必须重算新S0与D-after的Ordinal原值、UTF8 hash和长度,不以旧hash替代新快照验证。
|
||||
|
||||
P3-2采纳:记录每次实际输入为用户手动或CLI模拟,后者记录参数。计划请用户手动完成抛竿/拉杆和收下,不另造输入适配。
|
||||
|
||||
P3-3采纳命名澄清:S3就是恢复进程正常退出后的最终全量Get快照,不增加重复S4请求。报告“八件证据”沿用7文件加目录的口径。
|
||||
|
||||
## 运行范围与前提
|
||||
|
||||
用户本轮“复核完成,继续”承接已呈现的完整业务包,按该范围推进,无需逐动作重复许可。最多一次101普通付费钓鱼及奖励保存、正常退出和新进程恢复;四轮备份附带102只读。旧导入窗口和许可不复用。开始时仍须核实101当前其他客户端已停用这一事实,不能由历史确认推断。
|
||||
|
||||
本轮先完成CLI空闲/API/进程claim检查并记录;停用事实未确认前不进入Play。固定http://s101.local:18080/,Unity CLI Loop,不打包、不改生产代码。
|
||||
|
||||
## 检查点0:开始执行
|
||||
|
||||
用户明确确认:101其他客户端已停用。确认记录UTC:2026-09-28T07:56:02.8476756Z。31项hash再次一致,开始S0备份,不调用import分支。
|
||||
|
||||
S0:backups/20260928T075611Z,101为55键,与D-after逐值Ordinal及UTF8 hash/长度55/55一致。工具2登录+2Get、Set/Delete=0;102附带45键快照只作观测。
|
||||
|
||||
## 2026-09-28 用户明确手动引导+抛竿收鱼,先恢复登录
|
||||
|
||||
用户明确:“我会完成药水活动引导,然后操作抛竿和收鱼,但是先需要检查登陆失败的问题”。据此,本轮先修复运行接管配置;界面引导/抛竿/收鱼由用户手动,主会话不模拟点击,不修改引导数据/业务代码。相较原自动验证范围,手动完成药水引导为用户明确新增操作;不代表允许新键、导入、覆盖进度、绕过准入或重复扣费。
|
||||
|
||||
基线调整:最新081406Z只读备份10155键与上次075950Z正常退出后逐值一致,保留已确认两键登录更新,不再以原D-after为起点。工具本轮2登录+2Get,零KV写。恢复继续使用既有v3和原55键,药水epdk及GuideSaveDataNew已在其中;引导完成后先核对实际写入与动作前基线,再开始一次普通钓鱼。若正常界面无活动入口、出现新键/错误或费用不明即停,不以改时间/强开面板/标记完成解决。
|
||||
|
||||
旧90064手动Play为默认PF入口、CustomID为空。正常QuitStage请求未使此未登录会话退出Play;只读确认IsLogin=false/InternalId=0、无KV会话后停止其Play,随后空闲检查通过,08:15:36Z发出CloseMainWindow正常关闭请求。未强杀、未删claim,待旧进程退出再启动新进程和新许可。本操作不是用Stop替代已登录游戏的保存退出。
|
||||
## 2026-09-28 手动接管登录恢复成功(68504)
|
||||
|
||||
用户确认新编辑器正常后,31项受审hash仍一致。使用081406Z的55键备份及既有v3许可启动新进程68504_639261801774257712,08:20:01.3796001Z ready。实际IsLogin=true、CustomId=101、InternalId=2、SaveBackend=kv-loop、EventApiURL=http://s101.local:18080/;等级62、金币36550472、体力7275、装备20001,Console Error=0。空账号/默认PF入口造成的本次登录失败已通过恢复正确运行配置解决,生产代码零改动;并非永久解除一次性测试许可机制。
|
||||
|
||||
手动接管前备份082052Z:10155键与081406Z逐值相同,游戏接受2次同值保存,pending=0、active/unknown为空、fishing事件0。证据manual-login-verified.json、manual-handoff-reconciliation.json、manual-handoff-screen.json及Rendering_20260928_162102_487.png。当前实际画面为游戏主页;没有停止Play、退役permit或关闭编辑器,留给用户接管。
|
||||
|
||||
实际运行时GetEvent(4,5)=-1,当前没有可用药水活动;curGroupDefine仍为EventPotion01。这次不再只是本地配置推测。药水引导无法直接通过当前活动入口完成的原因需单独处理;登录问题已解决,不能混称仍无法登录。暂不抛竿/强开活动/改档结束引导。用户正常界面操作仍由用户执行,之后需报告结果再核写入;尚未进行收鱼或新进程恢复。
|
||||
|
||||
本次恢复准备+接管前两轮备份共4登录+4Get(含附带102),无工具Set/Delete;游戏请求另计。当前有效许可仍在,101其他客户端应保持不并用。后续不要直接Stop再Play复用同一进程claim。
|
||||
66
CodexOutput/upserver/Gameplay101Validation/首次运行结果与引导阻塞.md
Normal file
66
CodexOutput/upserver/Gameplay101Validation/首次运行结果与引导阻塞.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# 101首次运行结果与引导阻塞
|
||||
|
||||
2026-09-28,主会话。**101真实登录与历史档加载成功;动作前发现未完成的EventPotion01活动引导,按已评审方案停止本次玩法。未抛竿、未扣费、未领奖,收鱼和新进程恢复尚未完成。** 本轮生产代码零改动,不需要对现有代码重复实施复核;后续若扩大到活动引导业务,须先给出具体路径和最小补充方案。
|
||||
|
||||
## 运行与证据
|
||||
|
||||
用户已确认101其他客户端停用;31项受审hash再次一致。进程 `90064_639261625195875237` 原无run/claim,建立v3许可后仅一次Play。
|
||||
|
||||
| 环节 | 结果/证据 |
|
||||
|---|---|
|
||||
| S0 07:56:11Z | `KVGameplayLoopTests/backups/20260928T075611Z`,10155键与D导入after逐值及UTF8 hash/长度55/55相同,见S0-reconciliation.json。 |
|
||||
| 当前解码 | checkpoint0-decode.json:与S0原值相同的PF源在当前配置诊断Valid/0;这是本地合成描述符诊断。后续真实登录加载成功为另一个运行证据。 |
|
||||
| 登录 07:57:46Z | ready,PlayerId101,Error=null;实际金币36550472、装备20001,与历史主档相符。固定API检查通过;PF身份登录成功,无本次错误日志。 |
|
||||
| 动作前 07:58:05Z | unlockedMag/Strike=true、frequency31、cruise=-1,无collectingTarget/piggy/bargain/challenge;但guideNode/guideGroup均true。 |
|
||||
| S1 07:58:23Z | 101仍55键且当时与S0原值相同;此时登录保存尚未在此快照反映,**不能当作登录写已确认的合格动作基线**。没有通知用户抛竿。 |
|
||||
| 阻塞定位 | checkpoint1-guide-detail-corrected.json:EventPotion01,EventPotionPanel,节点“正确的位置”,按钮root_main/PotionScrollView/Container/Data_Item-0/gild_group/gild1,文本GuidePotion_02。截图Rendering_20260928_155846_096.png另显示签到弹窗,未点击“收下”。 |
|
||||
| 正常退出 | 07:59:26.7902335Z出现closed,已走QuitStage和bridge drain;未强制停止。 |
|
||||
| 停止后最终快照 07:59:50Z | `KVGameplayLoopTests/backups/20260928T075950Z`。这是失败分支取证快照,**不是新进程恢复S3**。 |
|
||||
| 最终状态 | playing=false、ready=false、Error=null、无permit;Enabled=true为该进程静态运行标志残留,不代表仍可开始业务。11旧claim一致,新claim保留;下一次必须新进程。 |
|
||||
|
||||
采样小片段首次出现JsonConvert重复类型引用及错误的energy成员名,编译阶段未执行;改成既有公开成员的只读匿名结果后成功,原失败证据保留。不是生产代码编译错误或业务运行异常。
|
||||
|
||||
## 为什么停止
|
||||
|
||||
原档GuideSaveDataNew已有 `EventPotion01|4|0`,最终仍保持原值。`DataCenter.GuideData.cs` 的Init恢复未完成引导,设置curGroupDefine/curDefine;此次只读采样证实运行时恢复了EventPotion01。
|
||||
|
||||
`UserService.KVFishingReward.cs:58` 的CheckRewardGuide要求当前没有活动引导;本包方案§5也明确这一条件。因此主会话在抛竿前停止,**没有为了生成拒绝异常再调用钓鱼入口**。现有证据不支持把它说成新迁移代码导致的异常,也不证明药水活动引导能在当前活动时间下正常完成。
|
||||
|
||||
## 保存对账与影响
|
||||
|
||||
最终101仍55键,仅两键原值不同;其余53键(包括GuideSaveDataNew、全部鱼档及未知键)保持。见final-reconciliation.json。
|
||||
|
||||
- ShopPackBuyCount:`{"0":264}`→`{"0":270}`。`DataCenter.PlayerShopData.cs:683` InitShopPackData按DayOfYear重置,与本次日期匹配。
|
||||
- NewPlayerDataDic:newData的19槽字符串完全不变,所以金币36550472、体力7275、EnergyRM7231、钓鱼31/累计147未变。其内vipL基准337→343、滚动槽平移6天,对应PlayerData.UpdateVIPScoreDic;ad登录统计19由17/264→18/270,对应AchievementDataManager登录日更新;rt活动30301021→30301027,后者配置时间2026/9/27 18:00至9/28 18:00,符合现有AllRefresh活动刷新。未点击签到,不能把这些登录更新算成钓鱼奖励。
|
||||
|
||||
游戏审计接受3次保存(ShopPackBuyCount、GuideSaveDataNew、NewPlayerDataDic),最终三个值hash全部等于各自write-attempt;其中GuideSaveDataNew是同值保存。最终cache baseline55键与服务器快照逐值相同,pending=0、activeBatch=null、unknownBatch=null,closed=1,fishing事件=0,见final-save-and-scope-verification.json。接受次数不冒充HTTP Set次数。
|
||||
|
||||
三轮备份工具合计6登录+6Get、KV Set/Delete=0;游戏另外执行PF身份/s101登录、加载和保存,不能声称整个会话无写或无PF访问。未做全流量抓包,不声称完整HTTP请求计数。102三次45键快照逐值相同,未在游戏登录102。
|
||||
|
||||
## 下一步与边界
|
||||
|
||||
本次运行结束,101停用窗口到此结束;已退役的许可不复用,不回灌S0覆盖本次合法登录更新。
|
||||
|
||||
下一步仍由主会话处理:检查EventPotion01在当前活动周期的正常恢复/完成路径、涉及键和消耗,再形成一次最小补充方案。该范围应覆盖引导处理后继续普通钓鱼和恢复的整个剩余闭环,不再拆成取证、准备、单次点击等小评审。不能直接改GuideSaveDataNew为完成、清空引导指针或放宽钓鱼门。也不应让用户盲点活动或签到来试错。
|
||||
|
||||
若需恢复运行,新的起点必须是当前最终服务器存档并重新核对,而非原D导入after。原方案S0等于D-after的前提已经被合法登录写推进,补充方案需明确引用本次最终快照及两键差异。此次没有请求对失败现场再单独开一轮实施复核;完整业务包仍未关闭。
|
||||
|
||||
## 用户拟手动接管(2026-09-28)
|
||||
|
||||
用户表示“我来手动操作”;后续界面点击交给用户,不以脚本替代操作。当前编辑器已经退出Play,旧permit退役,不能直接复用90064启动。
|
||||
|
||||
只读核查:药水业务SyncData写epdk,该键已在101的55键中;HomeBtnPotion依赖GetEvent(4,5),无活动时隐藏入口;EventPotionPanel.InitGuidance进入面板后才根据关卡状态正常结束/恢复引导。旧档epdk.EventID=40000186;本地cfgData/tbfishingevent.json没有此ID,24条Type4/SubType5记录中最后结束日为2026-04-12。此为本地配置证据,不能在未核游戏实际加载表前断言当前UI必定无入口;不能通过修改活动时间或强开面板来替代真实路径。未重启/建立新permit/进入Play,代码和存档均未修改。
|
||||
## 2026-09-28 用户手动Play登录失败诊断
|
||||
|
||||
只读CLI实测当前90064已再次Play,Enabled=false/Ready=false/无permit;实际SaveBackend默认playfab,配置CustomID和PlayFabUserService.CustomId均为空,EventApiURL仍正确为http://s101.local:18080/。界面显示“请检查网络连接然后重试/登录失败”,Console Error=0。
|
||||
|
||||
PFLoginAct从配置取空ID;UserService.LoginWithBackend在正整数账号检查处直接返回ELoginStep.Api,未进入本次LoginCore网络调用。当前“网络”文字是通用失败提示,根因是手动接管时未恢复正确账号/KV入口。此前101成功登录和药水引导阻塞是另一轮运行,不应混为同一问题。
|
||||
|
||||
主会话退役临时许可后未完成手动接管配置,是本次流程衔接缺口。不能只填101让其使用默认PF存档;恢复迁移档操作需正确KV入口及新的进程许可。当前仅诊断,未改代码/配置、未重试登录、未主动停止用户Play。证据:Gameplay101Validation/user-login-question-{state,all-logs,errors,config,cause,screen}.json及Rendering_20260928_161223_576.png。
|
||||
## 2026-09-28 用户确认界面无药水引导:实测后台残留
|
||||
|
||||
用户说明当前没有药水引导,主会话重新只读检查:账号101已登录,KV ready=true;curDefine/curGroupDefine非空且指向EventPotion01/EventPotionPanel,CurPanelName为空,GetEvent(4,5)=-1。证据no-visible-guide-check.json。界面无引导与后台有历史恢复指针同时成立;此前要求用户手动完成药水引导不准确,不能继续要求用户寻找不存在的活动入口。
|
||||
|
||||
具体拦截点是UserService.KVFishingReward.cs的CheckRewardGuide,用任一引导指针非空直接拒绝。GuideDataCenter.Init可恢复历史未完成指针,而TriggerGuideNext会按目标面板匹配才推进,不能简单把非空等价于当前可见引导。最小修正需要同时核对残留指针对钓鱼通知的影响,不能直接删除全部引导保护,也不通过改存档完成标记处理。本轮没有修改代码、引导状态或存档,未触发抛竿。
|
||||
|
||||
下一步应由主会话形成并提交针对“不可用活动的不可见残留引导”的最小修正方案,完整评审后编码。当前仍保持已登录主页供用户查看,原业务包未完成,不再等待用户完成药水活动。
|
||||
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"scope": "4C1 design review only; no implementation approval",
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "010C0F0630EF1F2ED1F3F42456189761B73A24E40CE089DF801F3FCAAECE7BBE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs",
|
||||
"sha256": "F79A465380AE49ED42CAF0C2F5B9077AEDD96D02E83052E4272EA106EE141BDD"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingData.cs",
|
||||
"sha256": "8C7DC3D35064675F59B24F48F850EC786F920090641B68019ED538743BC1A0A4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "ECAD77F8AA1B15663D91F444072EE2958CB7FBA874374AC353BCCFC59C7351B0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "E75C8BEDE21878286EF4E247BB3BE24CE81B81BFD1EEB3106E7B10468FFA9195"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "5280FA3F592C7C5EC784B5FFDF406E89C65A09E76DE8B56801B48158294EA88D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "6AA8973A276C0D297B1FC9076349F2CC15EC4B58968FFA721274118261CB162E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"sha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"sha256": "0B0DADD2757A62BD32A644623A0F20B3E0029AE36E939F8D1EF387482ECB94C4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Turntable/FishingTurntablePanel.cs",
|
||||
"sha256": "5A92713B981AF04C219741DD0C67DD542EF6241261662E952CD8EC3EC97AC7D5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/AchievementDataManager.cs",
|
||||
"sha256": "B544364F33F06E8DB82C68F57F5B63B42B09DB3B4B26546FDEAA3767CD0AB6FA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BattlePassData.cs",
|
||||
"sha256": "A0DB928E245C36FD00C6DD2147646898045C71F48076D14656700DE76BE7568D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs",
|
||||
"sha256": "3EE995F29639DA4A0E81D04E249DE5F8F1F958F3513A690C7B96EF7098B02DEE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs",
|
||||
"sha256": "9F7FBFBAAB175786FF7F3A87C8B01ADDA529B1F66DB9277872D5AB6C9A8F86BA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/MiniBP/MiniBattlePassDataProvider.cs",
|
||||
"sha256": "78A5FA196AA75DA056BA715D1C59A467569C10C6E5BAA66589E3852F1B707224"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/LuckyTask/LuckyTaskData.cs",
|
||||
"sha256": "81A58B96FCB7DD117E8C6C6D1F0D754EFC14A811D29DDF3AE0D702758DE3BC1F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/EventLuckGame/EventLuckyGameModel.cs",
|
||||
"sha256": "1246C4CB881140AE6460907FCD7C7E146AE5C8307A7D032C93495A713E99101D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/EventStrikeLucky/EventLuckMagicData.cs",
|
||||
"sha256": "D4C363E2F9840611494A78E9D2550FE1150BBC519CA81C4409898D761ED20278"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Activity/EventSubscriber/PlayDataEventSubscriber.cs",
|
||||
"sha256": "4BB9DC8723A1C29866B250A3A8A8ED2D5E05D7DBA88A1A2A60D96F617E1E7F22"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Activity/ActivityManager.cs",
|
||||
"sha256": "AAABFC0C06489206A49ED7C0F69B8E361BECD25D35F374EAF80BAE99AC00EF47"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Activity/Condition/AccountLevelConditionChecker.cs",
|
||||
"sha256": "C62162E31EFB208CC0243025631301344179501CF7D31948479E597DCFD2DDE4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Activity/Condition/FishCountConditionChecker.cs",
|
||||
"sha256": "30342BDEF196B634340246EB49F8582E0C0E52AFA1AE6527A65B5485A11E0305"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Tables/TbEnergyDef.cs",
|
||||
"sha256": "06E750E837D7D92B70BED14CC1A8318FDE364925C6DF8AB69E0C4B58BB7259CB"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "0ECA65FB6FD41ADBBEA6550F5ED24B3072759C2FEECBE8F0936C48DC0FCAFAFA"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C1普通钓鱼消费确认方案-待评审-2026-09-24.md",
|
||||
"sha256": "240E5667D875915BE3196A2BA71A32D425B7CD25F2BC008FEB65D2F8F70B225B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4C1普通钓鱼消费确认-2026-09-24.md",
|
||||
"sha256": "B39BE42D846B29EE8D668EA1B1A681EA95D7A0093F3E899915663509E629DFBE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4R1复验裁决与后续最小范围-2026-09-24.md",
|
||||
"sha256": "0EF9F602EFEF39DDF63A6E7A7BC39FA273622BCD8543F47962A75D4275E22E99"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4R1关闭复验-2026-09-24.md",
|
||||
"sha256": "2D2D3CDA2B51C89B55EA0ADB7CD3D472A2824398153034CE8D3DB0D94FA7EBD5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4R1报错修复验收与关闭裁决-2026-09-24.md",
|
||||
"sha256": "8FD6A927B6B5F1FD2C01C3C24A6AF908FC061D2DDD7900C7BAE2B9F11323E654"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "9546DDE9B1530596A69261CD75D9C50E2C73939BC9A130675724D5FD583277AC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发状态.md",
|
||||
"sha256": "C47C4433E271C49B483E369D8D19BF1E1868DDB9C3D5903857E4EF30EC3D5E9D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/TODO.md",
|
||||
"sha256": "9A2FAE13BB8F74D51582A96F3D385430F06BEBE6A21325750EAEBB15BEBF483D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发日志.md",
|
||||
"sha256": "831383D8064E2AF0FAADE0BC330273CAC45422FD57C55D5D7CA5D857A4596977"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
|
||||
"sha256": "0C01337779064C79FE40ED2ECFB4D0B38C1047B504107D4C93C49929C23A5748"
|
||||
}
|
||||
],
|
||||
"expectedAbsent": [
|
||||
"Client/Assets/Scripts/Services/UserService.KVFishingValidation.cs",
|
||||
"Client/Assets/Scripts/Services/UserService.KVFishingValidation.cs.meta",
|
||||
"CodexOutput/upserver/阶段4C1普通钓鱼消费确认方案独立审查-2026-09-24.md"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"purpose": "Post-review closure documents; original implementation-review-hashes.json unchanged",
|
||||
"originalManifestSha256": "2922A85B2FDCA677EF41ACCE6A9F719B73B30210DB50F38B4D61113F9A45F5F9",
|
||||
"items": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "E6F40AD091A2DF43B269883B8ECE4FB0FE5B950D928ADC3E53F6C77B68F188D3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发状态.md",
|
||||
"sha256": "E7740DAE20E18B084D4380EF53BA94D324F5FBEC7463C5883502D385C298B2B2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/TODO.md",
|
||||
"sha256": "DA55637BB58F878952DA9F32598923B6DB8D823EA94D02278C9DA7D617AF975B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发日志.md",
|
||||
"sha256": "9A0709B637476CB9A83187175EC8952B7739796205065AC244A75817901DC01D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C1方案审查裁决与实施记录-2026-09-24.md",
|
||||
"sha256": "C31B0DB627E1F0B73E684C134B51FEB844C2170E96DA567C8C2E8A16F19B6798"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
|
||||
"sha256": "CF02ACDF0507A030B5C970A4A6D2BA8F224BA00CD39710768701C576B034BB48"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/closure-baseline-verification.json",
|
||||
"sha256": "36F1FDB6D809453025F295BE73F5723756E75357349DF62F9328804BDC4B0DBD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C1实施复核裁决与关闭-2026-09-24.md",
|
||||
"sha256": "8AC0B6C406DC5567545E21D8FD1E9E7F2A38FF056F56F9BFE609D439A3D5827A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C1普通钓鱼消费确认实施独立复核-2026-09-24.md",
|
||||
"sha256": "0778CC6B4F40B4029D788069865746E69F256858EC1B2BD59B811841D749A19F"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,867 @@
|
||||
{
|
||||
"phase": "4C1-implementation-review",
|
||||
"baseline": "checkpoint0 before snapshots + current implementation; no git commit claim",
|
||||
"items": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T074727Z/101.json",
|
||||
"sha256": "273C9802B997D524B8607DB6D39E7326C9E2BD70E69F2745C2B38EE02F94BB63",
|
||||
"bytes": 119
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T074727Z/102.json",
|
||||
"sha256": "B43CC4AB7E55B72AF46D76F082AD612F7994C7CE63272A7C526E714355027723",
|
||||
"bytes": 14350
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T075711Z/101.json",
|
||||
"sha256": "494C66D85C1DEAA483E082970BB1C05339281CF2B65D41F46DB6FDCDFCEAB9DE",
|
||||
"bytes": 119
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T075711Z/102.json",
|
||||
"sha256": "FA399797255FC155784F0833BFF9C5EAEC9E09E8F2028A2CE7AA6D50AF6ABE8D",
|
||||
"bytes": 14352
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T080345Z/101.json",
|
||||
"sha256": "7BF4ACA573AAB8AFE1D1B38D912AA3CAC10E551EF42CD6AB11813B61FF4AA671",
|
||||
"bytes": 119
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T080345Z/102.json",
|
||||
"sha256": "90999F8CCDFC3BA31E0F0660661F1795C4F0B7146BCFE5B3E3A65C05248CA066",
|
||||
"bytes": 14352
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/fishing-fixed-runs/20260924T074449_1e80dd8c76dc43ca9826e38646e47ddf/events.jsonl",
|
||||
"sha256": "AECADF52485A1855DBC5BFAA4B7D78F567691DF341B7F6B2B6866FC7FD92FB44",
|
||||
"bytes": 19790
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/fishing-fixed-runs/20260924T074449_1e80dd8c76dc43ca9826e38646e47ddf/result.json",
|
||||
"sha256": "580FE02644A372CFF7C02446779C41E75427DCDB8EEC723444E3BB55E9A9D45D",
|
||||
"bytes": 905
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/fishing-fixed-runs/20260924T075803_7affe913e6b04553ac6cf0bd5b674152/events.jsonl",
|
||||
"sha256": "E0EAE63D20DF18DDEC546CA724147635501889190CA99E13D96D1E2FFD00E571",
|
||||
"bytes": 22615
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/fishing-fixed-runs/20260924T075803_7affe913e6b04553ac6cf0bd5b674152/result.json",
|
||||
"sha256": "70619308D5B1AC188907BABE53DB1AB6980C1BCA3A24D4CAFDA5358DC205C7F1",
|
||||
"bytes": 954
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "7BC77C779080965C9817E785FD756E45F9E277058A7A5F885F140E86E7FA0B5D",
|
||||
"bytes": 4780
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "744479E335240E467A4FD0435918E4CFAC072B62DCC8DF930A37C8E3133B59EF",
|
||||
"bytes": 65642
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "13D9F39D3743BBB5955E934CD788CADF201398E1F231B30A57A500445FE935F8",
|
||||
"bytes": 98695
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingValidation.cs",
|
||||
"sha256": "1BE3806283DBD6A7D8A41CD42E7B5385D326BBEDAFAED04C4BBB6F4F5DB3E0D5",
|
||||
"bytes": 27355
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingValidation.cs.meta",
|
||||
"sha256": "9CB396FED05DD6310B9916C6191A509AF94B696BEA428EE896312307CF4BDA4D",
|
||||
"bytes": 243
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "AB1F7E8EAFD3E8B0C2BE96620BF4DE8B6D12C1998656D0807B86BCEE990968FA",
|
||||
"bytes": 40259
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/b2-regression.log",
|
||||
"sha256": "F9DA1D53DEA417BF27ED6FC61232C4970FD75A05B5739E55918EF58DFD5F42A2",
|
||||
"bytes": 3563
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/b3a-regression.log",
|
||||
"sha256": "3A2DE3CDCF8C5372E1EC7C9634D9A98144CC8FD54769E02900294DE3949F1042",
|
||||
"bytes": 647
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "0ECA65FB6FD41ADBBEA6550F5ED24B3072759C2FEECBE8F0936C48DC0FCAFAFA",
|
||||
"bytes": 4259
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Activity/ActivityManager.cs",
|
||||
"sha256": "AAABFC0C06489206A49ED7C0F69B8E361BECD25D35F374EAF80BAE99AC00EF47",
|
||||
"bytes": 13145
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Activity/Condition/AccountLevelConditionChecker.cs",
|
||||
"sha256": "C62162E31EFB208CC0243025631301344179501CF7D31948479E597DCFD2DDE4",
|
||||
"bytes": 976
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Activity/Condition/FishCountConditionChecker.cs",
|
||||
"sha256": "30342BDEF196B634340246EB49F8582E0C0E52AFA1AE6527A65B5485A11E0305",
|
||||
"bytes": 993
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Activity/EventSubscriber/PlayDataEventSubscriber.cs",
|
||||
"sha256": "4BB9DC8723A1C29866B250A3A8A8ED2D5E05D7DBA88A1A2A60D96F617E1E7F22",
|
||||
"bytes": 774
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "E75C8BEDE21878286EF4E247BB3BE24CE81B81BFD1EEB3106E7B10468FFA9195",
|
||||
"bytes": 15712
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/DataCenter/AchievementDataManager.cs",
|
||||
"sha256": "B544364F33F06E8DB82C68F57F5B63B42B09DB3B4B26546FDEAA3767CD0AB6FA",
|
||||
"bytes": 7880
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/DataCenter/BattlePassData.cs",
|
||||
"sha256": "A0DB928E245C36FD00C6DD2147646898045C71F48076D14656700DE76BE7568D",
|
||||
"bytes": 32925
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs",
|
||||
"sha256": "3EE995F29639DA4A0E81D04E249DE5F8F1F958F3513A690C7B96EF7098B02DEE",
|
||||
"bytes": 123663
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "ECAD77F8AA1B15663D91F444072EE2958CB7FBA874374AC353BCCFC59C7351B0",
|
||||
"bytes": 64387
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs",
|
||||
"sha256": "9F7FBFBAAB175786FF7F3A87C8B01ADDA529B1F66DB9277872D5AB6C9A8F86BA",
|
||||
"bytes": 28637
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/EventLuckGame/EventLuckyGameModel.cs",
|
||||
"sha256": "1246C4CB881140AE6460907FCD7C7E146AE5C8307A7D032C93495A713E99101D",
|
||||
"bytes": 10593
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/EventRecharge/HomeBtnRecharge.cs",
|
||||
"sha256": "DAFA4D59A28955ACC0EE3812E0CEFC46F21B62E4F3F970D480DD6135EDDFA271",
|
||||
"bytes": 6329
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/EventStrikeLucky/EventLuckMagicData.cs",
|
||||
"sha256": "D4C363E2F9840611494A78E9D2550FE1150BBC519CA81C4409898D761ED20278",
|
||||
"bytes": 25231
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "010C0F0630EF1F2ED1F3F42456189761B73A24E40CE089DF801F3FCAAECE7BBE",
|
||||
"bytes": 93691
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/GampPlay/FishingB/FishingData.cs",
|
||||
"sha256": "8C7DC3D35064675F59B24F48F850EC786F920090641B68019ED538743BC1A0A4",
|
||||
"bytes": 8230
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs",
|
||||
"sha256": "F79A465380AE49ED42CAF0C2F5B9077AEDD96D02E83052E4272EA106EE141BDD",
|
||||
"bytes": 127636
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/LuckyTask/LuckyTaskData.cs",
|
||||
"sha256": "81A58B96FCB7DD117E8C6C6D1F0D754EFC14A811D29DDF3AE0D702758DE3BC1F",
|
||||
"bytes": 12994
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/MiniBP/MiniBattlePassDataProvider.cs",
|
||||
"sha256": "78A5FA196AA75DA056BA715D1C59A467569C10C6E5BAA66589E3852F1B707224",
|
||||
"bytes": 43960
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"sha256": "0B0DADD2757A62BD32A644623A0F20B3E0029AE36E939F8D1EF387482ECB94C4",
|
||||
"bytes": 135929
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "6AA8973A276C0D297B1FC9076349F2CC15EC4B58968FFA721274118261CB162E",
|
||||
"bytes": 75709
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"sha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"bytes": 16384
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "5280FA3F592C7C5EC784B5FFDF406E89C65A09E76DE8B56801B48158294EA88D",
|
||||
"bytes": 33780
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/Tables/TbEnergyDef.cs",
|
||||
"sha256": "06E750E837D7D92B70BED14CC1A8318FDE364925C6DF8AB69E0C4B58BB7259CB",
|
||||
"bytes": 1803
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/before/Client/Assets/Scripts/UI/Turntable/FishingTurntablePanel.cs",
|
||||
"sha256": "5A92713B981AF04C219741DD0C67DD542EF6241261662E952CD8EC3EC97AC7D5",
|
||||
"bytes": 35364
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/checkpoint0.json",
|
||||
"sha256": "B3BC74A073A6111B4E34E637188BE082DED239B89F3BFAC8A6E86A79E9ECFD4C",
|
||||
"bytes": 134
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/checkpoint3-progress.json",
|
||||
"sha256": "D51E963B244A3605C9B8AE1660EA33E07E40549B987A615209F42C301DBB62F9",
|
||||
"bytes": 4635
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-connected.json",
|
||||
"sha256": "519FB3F042BC3FC0FC0C20D2FF7C7647D6AEBBF070CBCD73038E0AE4118D41B0",
|
||||
"bytes": 123
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-extended.json",
|
||||
"sha256": "31DFDC199A5DCC8619A1C71A1CCB14D5D4326D3182BF4A25AE2D167C2937148D",
|
||||
"bytes": 90888
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-first.json",
|
||||
"sha256": "FA675689BD9F6D581E27569F83C62885DA9B9CA6A790B21B3122BB9841B70F4B",
|
||||
"bytes": 217
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-fixture.json",
|
||||
"sha256": "6B41D791824766656E5EB1930CB28C10819F393DB222801964C04728A99C13BF",
|
||||
"bytes": 89724
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-normal-disable-fix.json",
|
||||
"sha256": "8CBBB08917267C0F6445363ECDB6A787B8D64B0C2411596AE6521B011B25A0EB",
|
||||
"bytes": 89724
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-normal-disable-red.json",
|
||||
"sha256": "3B7D813CF5B4C7A153DE7885F484CEA7E2D63C0FF06EC5A4B0E63ED947F35EF6",
|
||||
"bytes": 90888
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-recovery.json",
|
||||
"sha256": "3500797E8E7B1BDE7A6814149030918A44DEE41FF66BDA4DEE741A8A54997E79",
|
||||
"bytes": 90888
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-subscribers.json",
|
||||
"sha256": "3006E03ADDBB8476A5262D9F4275931D4603020091DC1D1354954CC0D68F17C3",
|
||||
"bytes": 90888
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-tween-fixture.json",
|
||||
"sha256": "7D582108903A74D109FD7C29C318A2178DBA477677141DF83F15B7A2B6FF557F",
|
||||
"bytes": 89724
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/compile-tween-init.json",
|
||||
"sha256": "AA20B46DBC3CB02CF8ADB6CD2EBBC31C631375E35D8DB63BABCAE026370CDD42",
|
||||
"bytes": 89724
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/config-consume-gate.json",
|
||||
"sha256": "4C4BB1B54D45802BE7D4B35FF2B7691419A87189287676B74B348ADCE040C33D",
|
||||
"bytes": 141
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/control-source-tests-retry.log",
|
||||
"sha256": "16C66D158A9A7F83EC51BF30057D3A14FE8497C34EAC6B96A940C697AB6821AE",
|
||||
"bytes": 118
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/control-source-tests.log",
|
||||
"sha256": "45FE9064C6495996C1F62D37F5DDA610FBE014D54D3F5594EA88EE86125D4A61",
|
||||
"bytes": 244
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/ControlSlice.cs.txt",
|
||||
"sha256": "470353CC1AD50154592B09A1F976AFB87CF9AA1AAE5FA8DF06D2F96726BCA809",
|
||||
"bytes": 3269
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/ControlTests.cs.txt",
|
||||
"sha256": "D3F7C24DF3A5A0D258D545F03711E415FE3F7EF1A0215AF35951162E06C33870",
|
||||
"bytes": 5131
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/ControlTests.csproj",
|
||||
"sha256": "73F28041B7C941F1A33815F4ADF0415A59BCCC543D8850B1D0EA6FB7147CBF6D",
|
||||
"bytes": 705
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/DataCenter.PlayerData.cs.diff.txt",
|
||||
"sha256": "0956EE8AA84F486BAAB5D3682951A3F33F17E5E4B7CC0CBBC57619A5883647D5",
|
||||
"bytes": 1688
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/default-player-baseline-compile.log",
|
||||
"sha256": "481D725E4DAC206CF5372F9BE2B91C4BF89AE4B259BFA051EC8D2BA61D4E89D9",
|
||||
"bytes": 53117
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/default-player-baseline.rsp",
|
||||
"sha256": "2B30364ED2BD58A115F9C467E01FC03BD04442D96FD83AD4BE1C47D27D16424C",
|
||||
"bytes": 150230
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/default-player-compile.log",
|
||||
"sha256": "BDD25BFF3BE76F288FB77958A4765EFDD921A7FB5E345C8F8625F9355B8611C1",
|
||||
"bytes": 51751
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/default-player-preprocessed-diff.txt",
|
||||
"sha256": "8CF7DD32FD5E3FFEB0EB339D737ED28A594BCEA6E9EED6EAF6CA6A143DAA6B78",
|
||||
"bytes": 1901
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/default-player.rsp",
|
||||
"sha256": "628E26C7E758F49F8164513E864D17FEFDA98E205982961D7F67F28EBC5F3956",
|
||||
"bytes": 150065
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/exit-editor-regression.log",
|
||||
"sha256": "441E34FEDDD534D3F267ED8EB6032F71FB4261C9B6B576C926D01B2EEE6145F9",
|
||||
"bytes": 408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/exit-service-host-regression.log",
|
||||
"sha256": "85E2AE97AAFB8FCA9966AEA47E0CABF9D7C474698E422E1492657A7C05F53B15",
|
||||
"bytes": 408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/final-idle-state.json",
|
||||
"sha256": "ECF80797BF91526C76BDC5B3F3D9D17D99F83D0ECAADAF3F1E6DCA1BC7D17B54",
|
||||
"bytes": 742
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/FishingBehaviorB.cs.diff.txt",
|
||||
"sha256": "D7F334A836BEEF4E49ADDCAD3D431F1125F4A83B161714E493386606365DDE9A",
|
||||
"bytes": 10413
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/KVGameplayLoopSetup.cs.diff.txt",
|
||||
"sha256": "390A9DCD2C38F356D2BD202D8E60B1E228289C01A927EC42E7B2CE05EFA76983",
|
||||
"bytes": 2913
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/legacy-red-retry.log",
|
||||
"sha256": "F49A2390F2446BD1278B82AA431C1AAABB366608F386A6466AF65AFC1E805FC6",
|
||||
"bytes": 199
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/legacy-red.log",
|
||||
"sha256": "B0F309E385A083F99F390D9919778270CF288CD56193B9CBF056054373EABB74",
|
||||
"bytes": 269
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/LegacyRed.cs.txt",
|
||||
"sha256": "99C3F0A4710D05861CF626BA4227550911951EDFBB8207623C3A5D83F0C6BD74",
|
||||
"bytes": 1977
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/LegacyRed.csproj",
|
||||
"sha256": "63AFFA033B4AF3E649149DEEF53CE8645EC88FDFE726367B683834DEE141321E",
|
||||
"bytes": 650
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/LegacySlice.cs.txt",
|
||||
"sha256": "FB44927FB28B1771E9ABEEF7B719CD839DF8BEFA236B3E171315D7E902817777",
|
||||
"bytes": 1526
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/normal-disable-green.json",
|
||||
"sha256": "68E0C383CD0C5D256DC3C5CEE7EACB872F1A366F7239420E68A9BF459E1B0C8F",
|
||||
"bytes": 1303
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/normal-disable-red.json",
|
||||
"sha256": "494021AE463D59C45A8C683B18869D0AC01B673854D044F34A913F9292991D35",
|
||||
"bytes": 5119
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/permit-consume-129848.json",
|
||||
"sha256": "01CD4C2E7D6FCF83E001D2FF8E5A3B470C1D1F370E09FD6551F3B67519E0621C",
|
||||
"bytes": 1109
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/permit-green.log",
|
||||
"sha256": "82226930A7A4255889E8D8D1F18EB2685936AD02E2082BE3AAFD9DF1BF7E1369",
|
||||
"bytes": 444
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/permit-recovery-41828.json",
|
||||
"sha256": "C2098383B30899390AA78DA080166925E2A1E720CBBAE3DE107EB139BBC23E18",
|
||||
"bytes": 1074
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/permit-red-retry.log",
|
||||
"sha256": "851332BB8D64AA5694B310ED34F1950A61A53C42C50135EEA8569208B9D7353E",
|
||||
"bytes": 444
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/permit-red.log",
|
||||
"sha256": "BB88062219908CD54004FF5B787061B1FC19A4CF83B95D2FDA57B62AC3E1C960",
|
||||
"bytes": 271
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/PermitTests.cs.txt",
|
||||
"sha256": "DF17BFF936647D0950B91694AB9EA2DA867B0013C35E5FBA6CB033685BD91283",
|
||||
"bytes": 1465
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/PermitTests.csproj",
|
||||
"sha256": "5BF225E30BF3769CF07188D8BE692EE532A41603B1AF59B0BEB5A69730356043",
|
||||
"bytes": 763
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/r1-permit-regression.log",
|
||||
"sha256": "E3A82FF7DBB2679EC6A74750A1DEE57AF296FF35FDC2DFA9CBA48976CF736A37",
|
||||
"bytes": 144
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-activity-logs.json",
|
||||
"sha256": "49CC333B735E4C9CCFB553CED11C8E25BA6D55CB42DE0FA370B760C20774FDB6",
|
||||
"bytes": 10250
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-after-cast-errors.json",
|
||||
"sha256": "922DB4F63B9A2058FB68E20A5D241E0EB326CD3DCD7E739C5A2C5DD9ED19767E",
|
||||
"bytes": 156
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-after-cast-ui.json",
|
||||
"sha256": "30C5A41364F795CDCC1E92006F03A09B389F173539FC9B09B13B8DD788E57A54",
|
||||
"bytes": 8838
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-after-confirm-gates.json",
|
||||
"sha256": "EA967F82557A509EC46CFFAA6D5093DAC5DA7D656268C036886BBF07A19ADB12",
|
||||
"bytes": 2024
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-after-consume-backup.log",
|
||||
"sha256": "76E5EE17D12CBB98E3830A7ED0CEB2CD06204BC892B13D80D5D9127A48481EF4",
|
||||
"bytes": 1296
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-after-consume-diff.json",
|
||||
"sha256": "1B4A417018EB7E97AD792C32F8250CCB05B96C1C3EEDD8F8458DB3BA159FC50B",
|
||||
"bytes": 1666
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-after-quit-state.json",
|
||||
"sha256": "F27E23B213205FAC46220C2579066790FB2B1205B9E7767223E7C13AB2C46C95",
|
||||
"bytes": 739
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-before-cast-gates-retry.json",
|
||||
"sha256": "E4740D05C35FF5565B95F54024D1E9135C72BC4F23CA8FF175BB3FB6D6C9EB78",
|
||||
"bytes": 2024
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-before-cast-gates.json",
|
||||
"sha256": "0D0597797EC05F0FF5FFF3FDC147B99ED2BD7B671C423B9B43CB5626CBA5ADDD",
|
||||
"bytes": 4953
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-cast-click.json",
|
||||
"sha256": "00D0A46B2D405F22AC1A28C95077E32D628249C89681E552ACA5083B7C4F97AE",
|
||||
"bytes": 231
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-cast-shortpress.json",
|
||||
"sha256": "EAE7ABF1940D68BF38264ED3880123D9CCBD74FB5E44BB95D22A6EBEBF694445",
|
||||
"bytes": 249
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-cast-ui.json",
|
||||
"sha256": "E0F818A68111DB0F6FBD372F0009297049A17A8D091BCA8CF032AF248E70D62D",
|
||||
"bytes": 8838
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-confirmed-screenshot.json",
|
||||
"sha256": "D52789EB225E1EA8F2C40B768C25C4A78D87749BF94278B4DBCF90C6E6837F63",
|
||||
"bytes": 863
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-final-backup.log",
|
||||
"sha256": "7E8E978A6A6CDDEB765DF4D443F62E09FEB45D967630F4B125E517ED70CB7988",
|
||||
"bytes": 1296
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-final-errors.json",
|
||||
"sha256": "C0E857C5B50BDF4B615ED644E57D0C06B59ABB09D5D6BBD0B119F92D69E6BCB3",
|
||||
"bytes": 3183
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-fishing-ui.json",
|
||||
"sha256": "876E3C1CD5C46CFEB057509BFDD8555C313A798F020C764910C26CD151CCF46B",
|
||||
"bytes": 763
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-home-ui.json",
|
||||
"sha256": "706AE8C937488A9B597976ADA226936332A755BE4B3B13DB79DB73785307276B",
|
||||
"bytes": 8716
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-initial-ui.json",
|
||||
"sha256": "24BBBB8AB31F3C8B2EC326BBA3EDD32358AD17798A642BF960913FF0D3A054D5",
|
||||
"bytes": 280
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-login-screenshot.json",
|
||||
"sha256": "CD7E84731C876675D1D6F1750B1DDB1E5AE89F92C701DD15FAC59B90EAFB3326",
|
||||
"bytes": 402
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-login-ui.json",
|
||||
"sha256": "182634BA47C9E00DF91E552AEC3C66A7C5C025478C2B2E7ACB34E70B1D7FCE89",
|
||||
"bytes": 1645
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-normal-quit.json",
|
||||
"sha256": "A74D6EB4C40AA46509C7BA0C11CE4E6DDF03B4E56F6E6CA5BBEA2A2E923D8491",
|
||||
"bytes": 331
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-play.json",
|
||||
"sha256": "CC6C75A7F694FAAE136DBADFCFFBCEE5244511FBD0E03BEF1444F700A2EE31E3",
|
||||
"bytes": 85
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-preflight-backup.log",
|
||||
"sha256": "959D25C516131D0CC96F313912B7BC8CA5940C99D4C6996DE3C6A23D22671B3D",
|
||||
"bytes": 1296
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-preflight-matrix.json",
|
||||
"sha256": "52BED99E31A5155B31F74709C113F95CB2F7DC329D0EFA1C3DDF1B67629B5570",
|
||||
"bytes": 4329
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-prepare.json",
|
||||
"sha256": "131347ECF7085C8195E8CC9F9E4B7C109D3E1E122F5E13F89D9A166861993ECC",
|
||||
"bytes": 561
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/real-start-state.json",
|
||||
"sha256": "377A8F811491F06BDA4A4E2DC5CDAFA66AE8BC40FA5434B6E0EED52E41620A76",
|
||||
"bytes": 704
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-after-quit-state.json",
|
||||
"sha256": "252479153BE67D6DBFC674CB7C93009B4CA911D406D0EA075523B60DC96345C2",
|
||||
"bytes": 741
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-before-play-state.json",
|
||||
"sha256": "9C76922E5F2B14B7871338053C5A7CEF7DC5A35E386248CC0A50CC09BAEF547F",
|
||||
"bytes": 599
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-cli-recheck.json",
|
||||
"sha256": "8915A7552CD9F2756D0D6B8B92DF4FF6654F9AFF4E8CC50A980CA209B95252D4",
|
||||
"bytes": 441
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-cli-version.json",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
|
||||
"bytes": 0
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-final-diff.json",
|
||||
"sha256": "A4356A340780C9E707BD1162258DF4999FD8EEBA5AEC579DD94D2160752113B0",
|
||||
"bytes": 1175
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-final-errors.json",
|
||||
"sha256": "D508E87597CA83A9D551D26597C5E6CC9FFBE79019289660C9237BA9BB43944B",
|
||||
"bytes": 157
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-fresh-cache.json",
|
||||
"sha256": "4C5905686234F7334F6DF6BD5AA2CE5F59B5F2602D8DF9AE53AF57DF887659CB",
|
||||
"bytes": 117
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-loading-state.json",
|
||||
"sha256": "4004ACC685B920481945DAD097B8AE459D36A56FAFC85BEA140303237ABF47E8",
|
||||
"bytes": 739
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-normal-quit.json",
|
||||
"sha256": "A74D6EB4C40AA46509C7BA0C11CE4E6DDF03B4E56F6E6CA5BBEA2A2E923D8491",
|
||||
"bytes": 331
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-play.json",
|
||||
"sha256": "CC6C75A7F694FAAE136DBADFCFFBCEE5244511FBD0E03BEF1444F700A2EE31E3",
|
||||
"bytes": 85
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-prepare.json",
|
||||
"sha256": "9C76922E5F2B14B7871338053C5A7CEF7DC5A35E386248CC0A50CC09BAEF547F",
|
||||
"bytes": 599
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-screenshot.json",
|
||||
"sha256": "18EBA2A01D2D410FD2C6CEF41C01A6D4F08D0FF25EF0D98028EE6E6A96E6B902",
|
||||
"bytes": 402
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/recovery-values.json",
|
||||
"sha256": "5471A686A55B81001EE41C0AA43BB49AC6D0F85BBAC05BE48C4A96DA09699DF4",
|
||||
"bytes": 986
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/scope-diff.json",
|
||||
"sha256": "6D30C13179AAD2F5B49BB5AE9F84782FDAFD9D2894901ECE22B3604983237E40",
|
||||
"bytes": 2335
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/screenshots/Rendering_20260924_155358_522.png",
|
||||
"sha256": "5C730B28D9D6BFDB4AA6F07BFC19153147909F96513A5D12BEA98F513A2C0E4B",
|
||||
"bytes": 2951406
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/screenshots/Rendering_20260924_155444_597.png",
|
||||
"sha256": "4EA42589CF068FBD38E6B45C5D3D12AB8CF5FDB22785301B962B1C285F56B9BB",
|
||||
"bytes": 2879104
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/screenshots/Rendering_20260924_155514_552.png",
|
||||
"sha256": "F60081A7D960B93E188634F3C4D25007ACFD6A457FB522425C0B17FF040FA321",
|
||||
"bytes": 2877424
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/screenshots/Rendering_20260924_155558_458.png",
|
||||
"sha256": "B8866015425F6B4BEB21E8C3569D45443858C381704E4820414050060F32FA2C",
|
||||
"bytes": 2676132
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/screenshots/Rendering_20260924_160317_070.png",
|
||||
"sha256": "246ABC6BCD9764A6EF08CD4B145AEBBC091B66E91BD3E8D1733E95A19B3CCCCC",
|
||||
"bytes": 2962442
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/service-host-compile.log",
|
||||
"sha256": "24BDB1F41133A610B886A32009EF38AE0A0BCC587F9E5E9B878A431AC8C49D88",
|
||||
"bytes": 53454
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/service-host-preprocessed-diff.txt",
|
||||
"sha256": "B839E61D8CC1E99D33F6089516D8B7538EE08223151D83B1A01B1762E7E47254",
|
||||
"bytes": 3752
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/service-host.rsp",
|
||||
"sha256": "79E0CC9BFB703D61AEE54840AAFD9E0211A09FD7660D285C22EDF9E68B47E447",
|
||||
"bytes": 150160
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/syntax-first.log",
|
||||
"sha256": "66C94ACD08EFEA5086AA17EA87AEC150A4D02BBF4986BCECD0D403F85D29DAF2",
|
||||
"bytes": 53454
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/syntax.rsp",
|
||||
"sha256": "7F51B29C1BEBF7E05968094BD886C90AF0419C3200B5012BBC11712678FA385A",
|
||||
"bytes": 150130
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-existing-regressions.json",
|
||||
"sha256": "60DD445E38DDE582BEE4C3A61A7F49DDC2EC1389793966BBA0F4A0FD77484EBF",
|
||||
"bytes": 1369
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-extended-retry.json",
|
||||
"sha256": "F7126ECDCFC147219FD5169E7775885426E92658B26808828FE74A09E749BA29",
|
||||
"bytes": 4964
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-extended.json",
|
||||
"sha256": "98153B4519116750450CA0D27625B897CC20E248F6853970486D6BED4B2B1729",
|
||||
"bytes": 131
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-first.json",
|
||||
"sha256": "3289D5130C1444916801806E703735073BE5F9F9D95D8DE74976482B09AD81C7",
|
||||
"bytes": 5423
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-init.json",
|
||||
"sha256": "BE733C3CFD10957C7C0B6993FA7E2285C92DA97BB3ECC7FADB424AA35B2F811B",
|
||||
"bytes": 316
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-recovery-retry.json",
|
||||
"sha256": "69A28ED3763F4508C121DA90FAE535E5C042279042B83A9F169F12AE837FF7BF",
|
||||
"bytes": 1252
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-recovery.json",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
|
||||
"bytes": 0
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-retry.json",
|
||||
"sha256": "0937559F42A573D50B708137C754C10B0AB9749918ACBE3F8F7884B14E9B0ACA",
|
||||
"bytes": 963
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-subscribers.json",
|
||||
"sha256": "BE733C3CFD10957C7C0B6993FA7E2285C92DA97BB3ECC7FADB424AA35B2F811B",
|
||||
"bytes": 316
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed-tween-retry.json",
|
||||
"sha256": "60BF00E12C3D7EE63250A08A99F4BDB0D4410B36C8FAFD42E661382D4C2471EC",
|
||||
"bytes": 5244
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-fixed.cs.txt",
|
||||
"sha256": "2D99C338F4133971A894B6C1DC7EF53DB304523FE26B6C67999DEAEC999F69AA",
|
||||
"bytes": 72
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-launch.log",
|
||||
"sha256": "C82AA20018160CBCBD3B05372E50DB7D924773657BCBE74B1DCA23DF67CFD8F7",
|
||||
"bytes": 167
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-live-gates.cs.txt",
|
||||
"sha256": "FF58C261B24456A51C5702CDD20E7820634233B79EA4AF6267EA65428BE0CAE6",
|
||||
"bytes": 1354
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-normal-quit-process-approved.log",
|
||||
"sha256": "D040EBC71521BCC45F2C65FB19D958A39C855584709D4C536FC5E1B742041EED",
|
||||
"bytes": 161
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-normal-quit-process.log",
|
||||
"sha256": "C2BE8D5D799BF2C9749671E7AECB456B6B6778E46A7732470286914ECD079839",
|
||||
"bytes": 50
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-prepare-fishing.cs.txt",
|
||||
"sha256": "466EE1A277F53383DDDBA360FF979925277432EB18C363B9D9AA7EBA8AF3D92E",
|
||||
"bytes": 948
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-prepare-recovery.cs.txt",
|
||||
"sha256": "15A74858E81ADB812DB0B10B5AC939AF7F3FB4175D5D14859555D48782274C0F",
|
||||
"bytes": 941
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-quit-request.cs.txt",
|
||||
"sha256": "FFCF211E2EEFC134BFA6286289EECA591A1728E4067BD6EB5413A715A49686A8",
|
||||
"bytes": 162
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-recovered-values.cs.txt",
|
||||
"sha256": "1C3A6570E213BA47AF494B4E72BE0177CE0A5D2E64609FE47D7D7D844B33FF45",
|
||||
"bytes": 622
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/unity-recovery-launch.log",
|
||||
"sha256": "C82AA20018160CBCBD3B05372E50DB7D924773657BCBE74B1DCA23DF67CFD8F7",
|
||||
"bytes": 167
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingConsumeTests/UserService.KVGameplayLoop.cs.diff.txt",
|
||||
"sha256": "288B6E79C1EFD42C31EF863CC218FE0C9B383C66FBA84546ED12A6CD1A936AEA",
|
||||
"bytes": 11305
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/fishing-fixed-runs/20260924T074932_c6600abed66e46da8241eec269ea8a1d/events.jsonl",
|
||||
"sha256": "1D14E6F7DA6657CA02D83A8DFB91865E0F0BBEE5048BADCC91034048B9743CAC",
|
||||
"bytes": 21622
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/fishing-fixed-runs/20260924T074932_c6600abed66e46da8241eec269ea8a1d/result.json",
|
||||
"sha256": "2FB94C36916C2360DEF20468DA11FCDF1D6EF2BE6D1FA6B1512C8F66FDC6CAF0",
|
||||
"bytes": 905
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/129848_639258318484354090/events.jsonl",
|
||||
"sha256": "4312392839B109134CE5CE0C4FDFCBE660388EA0DC101C8C6398A1B0C8220375",
|
||||
"bytes": 2537
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/41828_639258336171434448/events.jsonl",
|
||||
"sha256": "F6B4E142126BF9D5F57D7A0E68F31432CFCA59419B1B4C70FE02D52504E99073",
|
||||
"bytes": 735
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/TODO.md",
|
||||
"sha256": "CF52ACBF36B4A3ED7503420629A13D72E287B8F05CAEDDFF2A5699A15377176B",
|
||||
"bytes": 56967
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4C1实施独立复核-2026-09-24.md",
|
||||
"sha256": "194D8C017C2EE7C5B32E12BAFA9352C7DFED074275B1681AD1DF3CCFC1887AD4",
|
||||
"bytes": 5139
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发日志.md",
|
||||
"sha256": "9BAF30E6BD88E7D868ADA5E417FBA72E910F9AE0DA295866008E316ABEC7AB5B",
|
||||
"bytes": 150374
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发状态.md",
|
||||
"sha256": "D7F6E1631B8914CD320546923B6ECB88E9872EB5BE4B36277BD8B912CE5639C2",
|
||||
"bytes": 51496
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "F5B7F230B67754F483D8D58CC08895774D4EFEB2248837A33FFCD8474E24AB63",
|
||||
"bytes": 48532
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
|
||||
"sha256": "B1640FA71931D77C1C6E119CD5564E0F9E6136DEC05A67D7902A203783A33E9A",
|
||||
"bytes": 8575
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C1方案审查裁决与实施记录-2026-09-24.md",
|
||||
"sha256": "DE3745E255DBB3C2CE4FD232337E95C1BD091BB9E471B61C84AD7F5E86AB55C6",
|
||||
"bytes": 9954
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C1普通钓鱼消费确认实施交付与验收-2026-09-24.md",
|
||||
"sha256": "50F48265474B38798D9AC51A2B13F7A12D506DAB41142B8E71496153C28136E2",
|
||||
"bytes": 7723
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C1普通钓鱼消费确认方案-待评审-2026-09-24.md",
|
||||
"sha256": "240E5667D875915BE3196A2BA71A32D425B7CD25F2BC008FEB65D2F8F70B225B",
|
||||
"bytes": 18914
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C1普通钓鱼消费确认方案独立审查-2026-09-24.md",
|
||||
"sha256": "EF2081F8D6C70CABEB7D390E904A0B5514DBBAEB8B7AF15D3CF76D52B00625D8",
|
||||
"bytes": 6137
|
||||
}
|
||||
],
|
||||
"count": 172
|
||||
}
|
||||
1609
CodexOutput/upserver/KVFishingRewardDesign/plan-review-hashes.json
Normal file
1609
CodexOutput/upserver/KVFishingRewardDesign/plan-review-hashes.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"phase": "4C2-controller-cancel-fix-plan-review",
|
||||
"items": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "3104B3356F7D34A8963A4A87E49DD10407E11D6DE36AAF661797EE7A6BF4D101",
|
||||
"bytes": 20005
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs",
|
||||
"sha256": "14827CA257A76495906BE0233B5DE404A9D01BB5DB0FE7FB390B8B6AD9B0C6EA",
|
||||
"bytes": 41479
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingUpdateSys.cs",
|
||||
"sha256": "937EF7EC0BC258303DE2A8C740F8B245C716C2EF9F4773550BBED3DE05190CA3",
|
||||
"bytes": 130654
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/FishingReward/FishingRewardPanel.cs",
|
||||
"sha256": "5289088D2BD73F433D333BEB18079E363470651140CEBB064AB0AFCA80297978",
|
||||
"bytes": 58984
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2第二次真实尝试与收线取消记录-2026-09-24.md",
|
||||
"sha256": "4A4D735FE50C105DFAE08513BCB7AEEDD27E8D6193DE40691A08E3C97B3AAF1F",
|
||||
"bytes": 5232
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2收线取消缺陷最小修复方案-待评审-2026-09-24.md",
|
||||
"sha256": "47CF3AFA8295F7D479CD2C07860E8E9064030510E4258B5A80A23C49F8063FB1",
|
||||
"bytes": 4410
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/diagnostic-impl/run62216-summary.json",
|
||||
"sha256": "49736290FBA25E420AFBF0AEF0F9E148A73F2A8207F01DDDCE578117416FBEDC",
|
||||
"bytes": 1924
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/diagnostic-impl/run62216-final-state.json",
|
||||
"sha256": "F927149DA4CFF93C696E0E6FDD07B571847F475B428F159DBFECE2494F0FDC27",
|
||||
"bytes": 847
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/62216_639258472117601499/events.jsonl",
|
||||
"sha256": "7F637600EE65C56BC0C1E281192BD393F6568DC19AFF2B7EB617744BF0EE443A",
|
||||
"bytes": 4231
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"phase": "4C2-controller-cancel-fix-implemented-final",
|
||||
"files": {
|
||||
"Client/Assets/Scripts/Services/UserService.KVFishingReward.cs": {
|
||||
"sha256": "40EE14EBFF6F3D61B6270EA01E73C48DCA0B279B924D26DE6911C0261D7293F9",
|
||||
"bytes": 20093
|
||||
},
|
||||
"Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs": {
|
||||
"sha256": "4CC10F91095FE2F058997AA798936C556ABCC04797582CF8990E53A05E79EF35",
|
||||
"bytes": 42357
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"phase": "4C2-preconsume-diagnostic-implemented",
|
||||
"note": "post-implementation snapshot; review manifest remains pre-change baseline",
|
||||
"items": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "6581E2EF316B764F0E7B984B4A8040B93087A467FA374AA0E5E979D356580A04",
|
||||
"bytes": 99384
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/ConsumeControlSlice.cs.txt",
|
||||
"sha256": "791C696684CBC568CDDE6FF8EEBE450BA706C75ADFB269E10C3A7436E9ACF197",
|
||||
"bytes": 3751
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/ConsumeControlTests.cs.txt",
|
||||
"sha256": "8B3759DAA681C8D9926D8678EB58A6525E8AA249397990A4D9B089F40D7ECAB6",
|
||||
"bytes": 5325
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2扣费前拦截诊断审查裁决与实施批准-2026-09-24.md",
|
||||
"sha256": "94CB2631C7C18C915317C1911002B37619DA78B2CF66CB827AE31C445DE758C8",
|
||||
"bytes": 4723
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2扣费前拦截诊断实施记录-2026-09-24.md",
|
||||
"sha256": "F6E5434B164836C2FDC464FA0151C43336E0788767453900A291A566CA76AECB",
|
||||
"bytes": 4450
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2扣费前拦截诊断方案独立审查-2026-09-24.md",
|
||||
"sha256": "2B7952FB5B2D9F28AC2244699E9560BAADF9B8BD73CEBFE3EE6B6425C1A76B89",
|
||||
"bytes": 16344
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"count": 302,
|
||||
"matched": 302,
|
||||
"mismatches": [],
|
||||
"manifestSHA256": "F26BDABDC7880ED5A853DA6E67E4D79718B80BDA76647FB9FA8F269D236E9FC6"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"phase": "4C2-panel-raycast-fix-plan-review",
|
||||
"items": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/FishingReward/FishingRewardPanel.cs",
|
||||
"sha256": "5289088D2BD73F433D333BEB18079E363470651140CEBB064AB0AFCA80297978",
|
||||
"bytes": 58984
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "40EE14EBFF6F3D61B6270EA01E73C48DCA0B279B924D26DE6911C0261D7293F9",
|
||||
"bytes": 20093
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs",
|
||||
"sha256": "4CC10F91095FE2F058997AA798936C556ABCC04797582CF8990E53A05E79EF35",
|
||||
"bytes": 42357
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/PanelSlice.cs.txt",
|
||||
"sha256": "ADDABA0BA1B2929F978D7EB956AC6D6C6788E60C8B6079A2F6929327D52BF075",
|
||||
"bytes": 2085
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/PanelTests.cs.txt",
|
||||
"sha256": "20AE11FE854513D3053341EDB43E4CC0407127248911A899C1A60354E5B09877",
|
||||
"bytes": 1746
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2第三次真实尝试与奖励确认记录-2026-09-24.md",
|
||||
"sha256": "66842339CC16E8E5BAB9BC01BFC8267289B1B21A97ABECDE97CC3F5FA44F642D",
|
||||
"bytes": 3186
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2奖励面板点击穿透最小修复方案-待评审-2026-09-24.md",
|
||||
"sha256": "895E34B893B2936E9AAE28BDD9EE4F055C36FE4AA3F7F13CC1977E50468FBB34",
|
||||
"bytes": 2916
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/29520_639258498367875839/events.jsonl",
|
||||
"sha256": "D1CCD10AB0DC954F2F0F71B23EA17A4D3BDFE2D70E3CF34883E3BF9BD51553F0",
|
||||
"bytes": 6181
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"phase": "4C2-preconsume-diagnostic-plan-review",
|
||||
"count": 16,
|
||||
"items": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "0A76743EC6CCB0A3094B50BC867566A2AE4896A9336B7937B4DF9B79A8949BE8",
|
||||
"bytes": 99010
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingData.cs",
|
||||
"sha256": "8C7DC3D35064675F59B24F48F850EC786F920090641B68019ED538743BC1A0A4",
|
||||
"bytes": 8230
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "3104B3356F7D34A8963A4A87E49DD10407E11D6DE36AAF661797EE7A6BF4D101",
|
||||
"bytes": 20005
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2扣费前拦截诊断最小方案-待评审-2026-09-24.md",
|
||||
"sha256": "2877E0833321A8A3283B37D095857F2D2E2F5EDA09D4B977FF97BC76A8F7F249",
|
||||
"bytes": 3020
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2首次真实尝试与扣费前拦截记录-2026-09-24.md",
|
||||
"sha256": "756133974E8A92DCA423E3F92B1278C9C13A6A583ED372E1E15D319539733EB6",
|
||||
"bytes": 4464
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4C2扣费前拦截诊断-2026-09-24.md",
|
||||
"sha256": "EADC12D4AA2C35507B7FC4CC4E74C4E991FBE07D1BE08FBC54DB8A2E7DBF994F",
|
||||
"bytes": 896
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "8CE3388A326DEF20A5F4CBB1E154AE89048E86987C5574490B758C4F56B8CA51",
|
||||
"bytes": 57391
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-after-attempt-errors.json",
|
||||
"sha256": "657BF9ADF891D6243EF2B3C9234C0F576475A2EC067904035501E35B310061B4",
|
||||
"bytes": 3530
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-attempt-final-diff.json",
|
||||
"sha256": "0BA88ED48BB7ACAE5834C4420A93377EA496D70FFE0F84F6500FD3D9375F3203",
|
||||
"bytes": 397
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-login-reconciliation.json",
|
||||
"sha256": "2B116C7FF3C4BD88342F4D7007B5EAEDC2ADE351041EC8358EAAA98780137E33",
|
||||
"bytes": 905
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-final-idle-state.json",
|
||||
"sha256": "0636C241CDCAFD643E4D0BEEA934ACB3913B6A27FF169439DF8F6940C4869456",
|
||||
"bytes": 830
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-precast-conditions-retry.json",
|
||||
"sha256": "AF2A05F83C6B61BD73D016AB2FFF7DA71FFA83DEE7C5F26303C4E57C46BEB3F1",
|
||||
"bytes": 1236
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/42620_639258392922105429/events.jsonl",
|
||||
"sha256": "F6DC9FF145197254D1544B24A12B91D9C812EBE23DBB4A55D37A0C56F15A0B03",
|
||||
"bytes": 1872
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T094234Z/102.json",
|
||||
"sha256": "A9391829AED82518A72446B706BE282F8F1FB8A768B15C7A5FFCEAD89D1E0A23",
|
||||
"bytes": 14351
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T094501Z/102.json",
|
||||
"sha256": "05CB8DF2F3C83D81BCE44F228DB1FBA6AEF89859BEA923E277FFD3636DC6AACE",
|
||||
"bytes": 14351
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
{
|
||||
"phase": "4C2-preconsume-diagnostic-plan-review",
|
||||
"count": 18,
|
||||
"items": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "0A76743EC6CCB0A3094B50BC867566A2AE4896A9336B7937B4DF9B79A8949BE8",
|
||||
"bytes": 99010
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingData.cs",
|
||||
"sha256": "8C7DC3D35064675F59B24F48F850EC786F920090641B68019ED538743BC1A0A4",
|
||||
"bytes": 8230
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "3104B3356F7D34A8963A4A87E49DD10407E11D6DE36AAF661797EE7A6BF4D101",
|
||||
"bytes": 20005
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2扣费前拦截诊断最小方案-待评审-2026-09-24.md",
|
||||
"sha256": "2877E0833321A8A3283B37D095857F2D2E2F5EDA09D4B977FF97BC76A8F7F249",
|
||||
"bytes": 3020
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2首次真实尝试与扣费前拦截记录-2026-09-24.md",
|
||||
"sha256": "756133974E8A92DCA423E3F92B1278C9C13A6A583ED372E1E15D319539733EB6",
|
||||
"bytes": 4464
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4C2扣费前拦截诊断-2026-09-24.md",
|
||||
"sha256": "EADC12D4AA2C35507B7FC4CC4E74C4E991FBE07D1BE08FBC54DB8A2E7DBF994F",
|
||||
"bytes": 896
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "79A0D1AC0FC0F5036977F02D20C2D2DD64444647581426A6502E953DDF012F58",
|
||||
"bytes": 57695
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-after-attempt-errors.json",
|
||||
"sha256": "657BF9ADF891D6243EF2B3C9234C0F576475A2EC067904035501E35B310061B4",
|
||||
"bytes": 3530
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-attempt-final-diff.json",
|
||||
"sha256": "0BA88ED48BB7ACAE5834C4420A93377EA496D70FFE0F84F6500FD3D9375F3203",
|
||||
"bytes": 397
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-login-reconciliation.json",
|
||||
"sha256": "2B116C7FF3C4BD88342F4D7007B5EAEDC2ADE351041EC8358EAAA98780137E33",
|
||||
"bytes": 905
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-final-idle-state.json",
|
||||
"sha256": "0636C241CDCAFD643E4D0BEEA934ACB3913B6A27FF169439DF8F6940C4869456",
|
||||
"bytes": 830
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/real-precast-conditions-retry.json",
|
||||
"sha256": "AF2A05F83C6B61BD73D016AB2FFF7DA71FFA83DEE7C5F26303C4E57C46BEB3F1",
|
||||
"bytes": 1236
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/42620_639258392922105429/events.jsonl",
|
||||
"sha256": "F6DC9FF145197254D1544B24A12B91D9C812EBE23DBB4A55D37A0C56F15A0B03",
|
||||
"bytes": 1872
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T094234Z/102.json",
|
||||
"sha256": "A9391829AED82518A72446B706BE282F8F1FB8A768B15C7A5FFCEAD89D1E0A23",
|
||||
"bytes": 14351
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T094501Z/102.json",
|
||||
"sha256": "05CB8DF2F3C83D81BCE44F228DB1FBA6AEF89859BEA923E277FFD3636DC6AACE",
|
||||
"bytes": 14351
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI开发接手说明-4C2扣费前拦截-2026-09-24.md",
|
||||
"sha256": "1E632D50FADCDFD026B3D9D2A5A5F8AD7A4CB437BEF40AC3A01B69B89EE790F5",
|
||||
"bytes": 7360
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI开发接手提示词-4C2-2026-09-24.md",
|
||||
"sha256": "981CB6C5594D3E90B049AB37F18D244FE4E13272F2865EADC2719D489BCEB2AC",
|
||||
"bytes": 1189
|
||||
}
|
||||
],
|
||||
"handoffUpdate": "文档交接更新;原16项复验一致,源码未改;旧清单另存before-handoff"
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"status": "offline-verified-real-run-pending-user-input",
|
||||
"items": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingReward.cs",
|
||||
"sha256": "3104B3356F7D34A8963A4A87E49DD10407E11D6DE36AAF661797EE7A6BF4D101",
|
||||
"bytes": 20005
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVFishingRewardValidation.cs",
|
||||
"sha256": "14827CA257A76495906BE0233B5DE404A9D01BB5DB0FE7FB390B8B6AD9B0C6EA",
|
||||
"bytes": 41479
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2引导准入补充实施进展-2026-09-24.md",
|
||||
"sha256": "3ECF87242418D0ABCC8BD3D6ABB7BEC02B1CE8EF51977827630CB0CEFC93414B",
|
||||
"bytes": 4027
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2引导准入补充审查裁决与实施记录-2026-09-24.md",
|
||||
"sha256": "75B97A6AA56251E3CC091BC7CFF692BD069A8A86C3A88AB7F115DD4840E48E0F",
|
||||
"bytes": 4142
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/guide-baseline-projection.jsonl",
|
||||
"sha256": "A3D056313FE0F40D395FE92F97BEDE31BA47D8D79A3C4C28781395A43118E89C",
|
||||
"bytes": 26976
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/supplement-final-regressions-retry.json",
|
||||
"sha256": "0E703907737269CF7589525EFB0F459D681F59C7834EEE991C3E88C22279EA71",
|
||||
"bytes": 3748
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/supplement-final-compile-approved.json",
|
||||
"sha256": "519FB3F042BC3FC0FC0C20D2FF7C7647D6AEBBF070CBCD73038E0AE4118D41B0",
|
||||
"bytes": 123
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/supplement-service-host.log",
|
||||
"sha256": "262CE122010B4B0E541B3C082ACF4B411BBBCC80481CD52570CD58B0D4A1DFE9",
|
||||
"bytes": 53202
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/supplement-real-run-matrix.json",
|
||||
"sha256": "3C2E22255AE57A082F3C26B48D46CA3BA437B680825B1A5F4D02413EAE9395EF",
|
||||
"bytes": 1337
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVFishingRewardTests/runtime-snapshot-public-compile.json",
|
||||
"sha256": "F8527ABE9D52A8907DEEEB973B8B3C043F47CBDD63C907DAB2C3F39F25F65766",
|
||||
"bytes": 489
|
||||
}
|
||||
],
|
||||
"claimedPreserved": [
|
||||
"101820_639258292892095408.claimed",
|
||||
"120896_639258276377220393.claimed",
|
||||
"129848_639258318484354090.claimed",
|
||||
"41828_639258336171434448.claimed",
|
||||
"54200_639258133649707870.claimed"
|
||||
],
|
||||
"permitExists": false
|
||||
}
|
||||
58
CodexOutput/upserver/KVGameBridgeTests/baseline-hashes.json
Normal file
58
CodexOutput/upserver/KVGameBridgeTests/baseline-hashes.json
Normal file
@@ -0,0 +1,58 @@
|
||||
[
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"hash": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"hash": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"hash": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"hash": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"hash": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"hash": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"hash": "F2F0430B4E6E24620CF182A3FE4B83A2AC4024FED6C808B0102E31F26934A2FA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"hash": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"hash": "27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"hash": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj",
|
||||
"hash": "EDD94D2C694A2A960F94EF7F8B1B0529114F9573F989A51C57CCFE57889D8C4D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/KVSyncCoordinatorReviewTests.csproj",
|
||||
"hash": "27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/Program.cs",
|
||||
"hash": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/Program.cs",
|
||||
"hash": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"generatedAtUtc": "2026-09-23T08:08:07.8793823Z",
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"sha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"sha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"sha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"sha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/Program.cs",
|
||||
"sha256": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/KVGameBridgeTests.csproj",
|
||||
"sha256": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj",
|
||||
"sha256": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/KVSyncCoordinatorReviewTests.csproj",
|
||||
"sha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"sha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15"
|
||||
}
|
||||
]
|
||||
}
|
||||
86
CodexOutput/upserver/KVGameBridgeTests/scope-hash-check.json
Normal file
86
CodexOutput/upserver/KVGameBridgeTests/scope-hash-check.json
Normal file
@@ -0,0 +1,86 @@
|
||||
[
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"before": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"after": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"before": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"after": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"before": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"after": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"before": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"after": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"before": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"after": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"before": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"after": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"before": "F2F0430B4E6E24620CF182A3FE4B83A2AC4024FED6C808B0102E31F26934A2FA",
|
||||
"after": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"unchanged": false
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"before": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"after": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"before": "27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6",
|
||||
"after": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"unchanged": false
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"before": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"after": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj",
|
||||
"before": "EDD94D2C694A2A960F94EF7F8B1B0529114F9573F989A51C57CCFE57889D8C4D",
|
||||
"after": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE",
|
||||
"unchanged": false
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/KVSyncCoordinatorReviewTests.csproj",
|
||||
"before": "27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6",
|
||||
"after": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"unchanged": false
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/Program.cs",
|
||||
"before": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"after": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/Program.cs",
|
||||
"before": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD",
|
||||
"after": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD",
|
||||
"unchanged": true
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,804 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"phase": "4B2-checkpoint1",
|
||||
"generatedAt": "2026-09-23T19:45:47.9240270+08:00",
|
||||
"status": "checkpoint1-verified-checkpoint2-design-delta-pending",
|
||||
"originalBaselineChecks": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2游戏加载与内存隔离方案-修订2-待评审-2026-09-23.md",
|
||||
"baselineSha256": "69CD69935B503742065F6D783FC6F9E87CEFCC5FF5C3A83F4F3D605B4C07CC30",
|
||||
"currentSha256": "69CD69935B503742065F6D783FC6F9E87CEFCC5FF5C3A83F4F3D605B4C07CC30",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2字段与模块加载合同-2026-09-23.md",
|
||||
"baselineSha256": "9E1A49E389CD6E9B38FA2CB55E5839ED5356E915AECCD4787FFE6F8276340745",
|
||||
"currentSha256": "9E1A49E389CD6E9B38FA2CB55E5839ED5356E915AECCD4787FFE6F8276340745",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2初稿审查裁决与修订说明-2026-09-23.md",
|
||||
"baselineSha256": "8A27E43F453A517EE1062ACE47DD80C97093C359A8067A1BC36FF371F0913896",
|
||||
"currentSha256": "8A27E43F453A517EE1062ACE47DD80C97093C359A8067A1BC36FF371F0913896",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B2修订2方案-2026-09-23.md",
|
||||
"baselineSha256": "30E55C7DA042131027A261A9E271C29A59F47AC6E607F087B1E874DFD3C4A5EF",
|
||||
"currentSha256": "30E55C7DA042131027A261A9E271C29A59F47AC6E607F087B1E874DFD3C4A5EF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2游戏加载与内存隔离方案-待评审-2026-09-23.md",
|
||||
"baselineSha256": "8992B17D8B1DEAAA99D7DFDCC76AE2D21112FC259C675F6EDEB9205643C9803C",
|
||||
"currentSha256": "8992B17D8B1DEAAA99D7DFDCC76AE2D21112FC259C675F6EDEB9205643C9803C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2方案独立审查-2026-09-23.md",
|
||||
"baselineSha256": "668C089721D7918AEF3EFB319C998B7BC641EFE400D9137E554C294E1BCBD70E",
|
||||
"currentSha256": "668C089721D7918AEF3EFB319C998B7BC641EFE400D9137E554C294E1BCBD70E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2方案作者自审补充-2026-09-23.md",
|
||||
"baselineSha256": "871FF48839FEC190957417A5937A1B8DCD07F6570DDC892834458ED0F1B9F186",
|
||||
"currentSha256": "871FF48839FEC190957417A5937A1B8DCD07F6570DDC892834458ED0F1B9F186",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B2方案-2026-09-23.md",
|
||||
"baselineSha256": "3E667B519C57F48E3462C1EFB44A5BF2E481C1A5DD2DD2C467EFCCBF3EED9AD3",
|
||||
"currentSha256": "3E667B519C57F48E3462C1EFB44A5BF2E481C1A5DD2DD2C467EFCCBF3EED9AD3",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B1实施复核裁决与关闭-2026-09-23.md",
|
||||
"baselineSha256": "953048E94D140E676F884DE4D9E7A695143026E8076DB5D122F537663CD8310F",
|
||||
"currentSha256": "953048E94D140E676F884DE4D9E7A695143026E8076DB5D122F537663CD8310F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B分期与4B1登录存档准备方案-待评审-2026-09-23.md",
|
||||
"baselineSha256": "42EF64F0B96ACFE947C7A2CCAA2CF1B39BDEACF00AB29E4C93F82A284A4606A5",
|
||||
"currentSha256": "42EF64F0B96ACFE947C7A2CCAA2CF1B39BDEACF00AB29E4C93F82A284A4606A5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4存档接线分期与4A方案-2026-09-23.md",
|
||||
"baselineSha256": "024A351F8FBBFBD90FD8EF6E02AFE990F8C8742114AF38C17D211FCF77C17DDF",
|
||||
"currentSha256": "024A351F8FBBFBD90FD8EF6E02AFE990F8C8742114AF38C17D211FCF77C17DDF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4存档调用盘点-2026-09-23.txt",
|
||||
"baselineSha256": "DD74B64CCD1E8BA172826B9C0AD939DB4DCADF12C33C031F6AA91EE8387E32F5",
|
||||
"currentSha256": "DD74B64CCD1E8BA172826B9C0AD939DB4DCADF12C33C031F6AA91EE8387E32F5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/RootCtx.cs",
|
||||
"baselineSha256": "AC666D2F1D94B41C2917DF1C609C3D57D7C0DE659BAB5883298BB76E06C62646",
|
||||
"currentSha256": "AC666D2F1D94B41C2917DF1C609C3D57D7C0DE659BAB5883298BB76E06C62646",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Camp/CampDataMM.cs",
|
||||
"baselineSha256": "6B6E547A7177C7659BD2FF6A80AD988D55BF8BE21B08E2C83A20BEA1902EAAC8",
|
||||
"currentSha256": "6B6E547A7177C7659BD2FF6A80AD988D55BF8BE21B08E2C83A20BEA1902EAAC8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/CustomServerMgr.cs",
|
||||
"baselineSha256": "930C1543450EB169AD83D38F6916423A223AD46D0F48C5AA51107B1407726EDF",
|
||||
"currentSha256": "930C1543450EB169AD83D38F6916423A223AD46D0F48C5AA51107B1407726EDF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"baselineSha256": "03E579D222C308C41F9F7DF9A54FE1E36587F245C4234D44276EF61E4B1BDB80",
|
||||
"currentSha256": "03E579D222C308C41F9F7DF9A54FE1E36587F245C4234D44276EF61E4B1BDB80",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/AchievementDataManager.cs",
|
||||
"baselineSha256": "5619BA908FCD23629EA78CC990207807A9C26AA5BFD9F551FF5163A766DDF5B7",
|
||||
"currentSha256": "5619BA908FCD23629EA78CC990207807A9C26AA5BFD9F551FF5163A766DDF5B7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BargainPackData.cs",
|
||||
"baselineSha256": "86581EA7DC49C486418C4D0AF4CFE2DD0F255CC1475E4F7D95AF1F0F33CD5EEA",
|
||||
"currentSha256": "86581EA7DC49C486418C4D0AF4CFE2DD0F255CC1475E4F7D95AF1F0F33CD5EEA",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BattlePassData.cs",
|
||||
"baselineSha256": "7F4B845E32FC5AF5526BBCE71396868BBE1ECDCD5A677C73CA3470EF41A6AD46",
|
||||
"currentSha256": "7F4B845E32FC5AF5526BBCE71396868BBE1ECDCD5A677C73CA3470EF41A6AD46",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BuffDataCenter.cs",
|
||||
"baselineSha256": "ADDABFE710C50C06A99BB852FDD1A75F97750A2F216A07ADD291045A68525557",
|
||||
"currentSha256": "ADDABFE710C50C06A99BB852FDD1A75F97750A2F216A07ADD291045A68525557",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs",
|
||||
"baselineSha256": "E12CAA181F34558000B64318032124EE05028AF4F18B6E9D340627AEDEA3C92E",
|
||||
"currentSha256": "E12CAA181F34558000B64318032124EE05028AF4F18B6E9D340627AEDEA3C92E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs",
|
||||
"baselineSha256": "40A59C50F9A80A116033B3CDCBFF8784D8CCB6E584CDC2D6968AB63865031926",
|
||||
"currentSha256": "40A59C50F9A80A116033B3CDCBFF8784D8CCB6E584CDC2D6968AB63865031926",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"baselineSha256": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E",
|
||||
"currentSha256": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs",
|
||||
"baselineSha256": "84EA926E2333B507E2302CE0D063FC9DC8842869B9168F618CD23CED21301CC9",
|
||||
"currentSha256": "84EA926E2333B507E2302CE0D063FC9DC8842869B9168F618CD23CED21301CC9",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs",
|
||||
"baselineSha256": "65ABDCA192591BA2048BA22B52EA1807CF183C3A3F7448B58E537342116A6DB5",
|
||||
"currentSha256": "65ABDCA192591BA2048BA22B52EA1807CF183C3A3F7448B58E537342116A6DB5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.SignupData.cs",
|
||||
"baselineSha256": "513C03E8EE34D8A2E9BF5674D13998D427FFE1DE4F530FBE2589F35AD204FCF5",
|
||||
"currentSha256": "513C03E8EE34D8A2E9BF5674D13998D427FFE1DE4F530FBE2589F35AD204FCF5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.SmallGame.cs",
|
||||
"baselineSha256": "FB8F446D36ED5110F36363FD1F66C6C0EC3A4AD0466FBFD6A0717804E3B5721E",
|
||||
"currentSha256": "FB8F446D36ED5110F36363FD1F66C6C0EC3A4AD0466FBFD6A0717804E3B5721E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs",
|
||||
"baselineSha256": "246F05745BC7064B81A32E6F7A3FDD89B90EFF584843AE2837227F26EBD5CD55",
|
||||
"currentSha256": "246F05745BC7064B81A32E6F7A3FDD89B90EFF584843AE2837227F26EBD5CD55",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPackData.cs",
|
||||
"baselineSha256": "32B5194B871D6E1674A56C26DA17647AF1800CAE148E2935AFFBB52CF178453E",
|
||||
"currentSha256": "32B5194B871D6E1674A56C26DA17647AF1800CAE148E2935AFFBB52CF178453E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPartnerGatherManager.cs",
|
||||
"baselineSha256": "CCF2E65969CA2791959DBE46983117362B045925E8D15B83B7EE9E32361BF1B7",
|
||||
"currentSha256": "CCF2E65969CA2791959DBE46983117362B045925E8D15B83B7EE9E32361BF1B7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPinballDataManager.cs",
|
||||
"baselineSha256": "D13C7E97C144986FB4B586EE478E0B0576B31CC304989A4BC043C3A3BE784B6F",
|
||||
"currentSha256": "D13C7E97C144986FB4B586EE478E0B0576B31CC304989A4BC043C3A3BE784B6F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPotionDataManager.cs",
|
||||
"baselineSha256": "76568866B2DA3F0064236D4520247837F08264EA7DD88F831A618416EBF612FA",
|
||||
"currentSha256": "76568866B2DA3F0064236D4520247837F08264EA7DD88F831A618416EBF612FA",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventScratchTicketDataManager.cs",
|
||||
"baselineSha256": "E8DF0E533EA16354ECCEF870783356D880E96F42181046653393F263D86A6F20",
|
||||
"currentSha256": "E8DF0E533EA16354ECCEF870783356D880E96F42181046653393F263D86A6F20",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingBoxData.cs",
|
||||
"baselineSha256": "13E6DA1EB181FB1FC09DE9F04BAC9118F00DDB7AD981D8B4B94ABFC83FE6E0B7",
|
||||
"currentSha256": "13E6DA1EB181FB1FC09DE9F04BAC9118F00DDB7AD981D8B4B94ABFC83FE6E0B7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs",
|
||||
"baselineSha256": "D8D0E3A118F0D67E7A70EE26272777ACF21D581D3B219C8518DC521057581D1A",
|
||||
"currentSha256": "D8D0E3A118F0D67E7A70EE26272777ACF21D581D3B219C8518DC521057581D1A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingEvent_PVPData.cs",
|
||||
"baselineSha256": "A6C2C5CCB7B90D8654589BAA51D4BD02F74F0618E69D30ECE575CF3F4B244E36",
|
||||
"currentSha256": "A6C2C5CCB7B90D8654589BAA51D4BD02F74F0618E69D30ECE575CF3F4B244E36",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/OfferChainsChestManager.cs",
|
||||
"baselineSha256": "1B9601EE74B3A167478841544BB38125D4D0A2B8825EEEF3B8EACD708DC76CEB",
|
||||
"currentSha256": "1B9601EE74B3A167478841544BB38125D4D0A2B8825EEEF3B8EACD708DC76CEB",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/OfferDiscoPartyManager.cs",
|
||||
"baselineSha256": "71DE32B1C9FA56519ECDE05056C1A763A87319E5B1015769F8CE1132507D8994",
|
||||
"currentSha256": "71DE32B1C9FA56519ECDE05056C1A763A87319E5B1015769F8CE1132507D8994",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/PiggyBankPackData.cs",
|
||||
"baselineSha256": "64B3590C00BE4343D3095B91FC34D1545CDC6B9AD79173927A92B6165C35D1E8",
|
||||
"currentSha256": "64B3590C00BE4343D3095B91FC34D1545CDC6B9AD79173927A92B6165C35D1E8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/PlayerFishDataRod.cs",
|
||||
"baselineSha256": "5B1A0567A00FFE4C6AC9EA68F2C17B8F58638110BDF80EB8289938F6AD610305",
|
||||
"currentSha256": "5B1A0567A00FFE4C6AC9EA68F2C17B8F58638110BDF80EB8289938F6AD610305",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/EventCubeMelt/Data/EventCubeMeltManager.cs",
|
||||
"baselineSha256": "12393D346D04AA5F9224FE6F0FF660FAAEDDF1BCE078DD2550D5A22464AD04A8",
|
||||
"currentSha256": "12393D346D04AA5F9224FE6F0FF660FAAEDDF1BCE078DD2550D5A22464AD04A8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/HotUpdate.asmdef",
|
||||
"baselineSha256": "EE4E93C20AFA4FA199A6DEABC135C859F973AAADA4834BDCC554CCCBEBF12B15",
|
||||
"currentSha256": "EE4E93C20AFA4FA199A6DEABC135C859F973AAADA4834BDCC554CCCBEBF12B15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/SandDig/DiggingGameManager.cs",
|
||||
"baselineSha256": "482592F774BD7003D5AF25B8C73BA820C2A03E79F57FEB3276412290894A7E4A",
|
||||
"currentSha256": "482592F774BD7003D5AF25B8C73BA820C2A03E79F57FEB3276412290894A7E4A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"baselineSha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"currentSha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/AggUserService.cs",
|
||||
"baselineSha256": "E7518D6DED134A75BDC1A547022C7EEC5C8E82C29F5C3BCF5E2E567F1744F169",
|
||||
"currentSha256": "E7518D6DED134A75BDC1A547022C7EEC5C8E82C29F5C3BCF5E2E567F1744F169",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/ClubService.cs",
|
||||
"baselineSha256": "70908AC672CB3F9BEC07D714469847637A3CA4BF841016C0F85B4319597618AD",
|
||||
"currentSha256": "70908AC672CB3F9BEC07D714469847637A3CA4BF841016C0F85B4319597618AD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/FootPrintService.cs",
|
||||
"baselineSha256": "08C7E3FAA44641063293F55A4C601CAAD75899DE46079ABF687ADB5249254652",
|
||||
"currentSha256": "08C7E3FAA44641063293F55A4C601CAAD75899DE46079ABF687ADB5249254652",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"baselineSha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"currentSha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs.meta",
|
||||
"baselineSha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1",
|
||||
"currentSha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"baselineSha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"currentSha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs.meta",
|
||||
"baselineSha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E",
|
||||
"currentSha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"baselineSha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"currentSha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"baselineSha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2",
|
||||
"currentSha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"baselineSha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
|
||||
"currentSha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"baselineSha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6",
|
||||
"currentSha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"baselineSha256": "7552C331BCD7B5B51A9726085D25319E9D77653E5519EE76D7772EEB4B757A29",
|
||||
"currentSha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C",
|
||||
"unchanged": false
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs.meta",
|
||||
"baselineSha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570",
|
||||
"currentSha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
|
||||
"baselineSha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290",
|
||||
"currentSha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs.meta",
|
||||
"baselineSha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F",
|
||||
"currentSha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"baselineSha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"currentSha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs.meta",
|
||||
"baselineSha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E",
|
||||
"currentSha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"baselineSha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"currentSha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta",
|
||||
"baselineSha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A",
|
||||
"currentSha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"baselineSha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"currentSha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta",
|
||||
"baselineSha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7",
|
||||
"currentSha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"baselineSha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"currentSha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs.meta",
|
||||
"baselineSha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084",
|
||||
"currentSha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"baselineSha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"currentSha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs.meta",
|
||||
"baselineSha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4",
|
||||
"currentSha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.cs",
|
||||
"baselineSha256": "1D764569F38651E911AFF4E493F10532F03F0E505432BB2AB768E2829C819C26",
|
||||
"currentSha256": "1D764569F38651E911AFF4E493F10532F03F0E505432BB2AB768E2829C819C26",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"baselineSha256": "C3905D3264F5E67056D41FB3DFA433591B6602F35819AD6DC16F0CC4EFF3BDB0",
|
||||
"currentSha256": "C3905D3264F5E67056D41FB3DFA433591B6602F35819AD6DC16F0CC4EFF3BDB0",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/PinataPack/EventPinataPackData.cs",
|
||||
"baselineSha256": "F4FF92A9B1052966C691537334E1D6BF745E23844F935C49368F81E0D2383BCD",
|
||||
"currentSha256": "F4FF92A9B1052966C691537334E1D6BF745E23844F935C49368F81E0D2383BCD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/PinataPack/EventPinataPackDataManager.cs",
|
||||
"baselineSha256": "060ED78FD3CBEC4B37CE1AE88D1044EF082E74CD6C24FC7FE7B10CF62F4ACFA8",
|
||||
"currentSha256": "060ED78FD3CBEC4B37CE1AE88D1044EF082E74CD6C24FC7FE7B10CF62F4ACFA8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/ShootingRange/ShootingRangeData.cs",
|
||||
"baselineSha256": "1871562D484FF1992646F489A6FFCBC28242768845F9F8556E484646FB2B47E5",
|
||||
"currentSha256": "1871562D484FF1992646F489A6FFCBC28242768845F9F8556E484646FB2B47E5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/BlackFridayCouponData.cs",
|
||||
"baselineSha256": "122832325C4A529FD66140EFE0FC77AEC89D25994B88918CF037CA6433530D22",
|
||||
"currentSha256": "122832325C4A529FD66140EFE0FC77AEC89D25994B88918CF037CA6433530D22",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/ChainPackWithProgressData.cs",
|
||||
"baselineSha256": "8109F2DB497FB48F2871CA93BD5DFD2AEE26709FD61F1BBB8D76B52A019E5E84",
|
||||
"currentSha256": "8109F2DB497FB48F2871CA93BD5DFD2AEE26709FD61F1BBB8D76B52A019E5E84",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/ThanksGivingPackData.cs",
|
||||
"baselineSha256": "2324747FD398E52ECAC0722C1A036ADF8AAEDE15FBE4AE58D3ECFD230A5A4080",
|
||||
"currentSha256": "2324747FD398E52ECAC0722C1A036ADF8AAEDE15FBE4AE58D3ECFD230A5A4080",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/ClubRegression.csproj",
|
||||
"baselineSha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"currentSha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/Program.cs",
|
||||
"baselineSha256": "E7AF3AF2C0B9ABE5D79E7D6AB4D28EC1D7A61D52D6D01354A3B1AACA38A0A5AB",
|
||||
"currentSha256": "E7AF3AF2C0B9ABE5D79E7D6AB4D28EC1D7A61D52D6D01354A3B1AACA38A0A5AB",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/ExitTests.csproj",
|
||||
"baselineSha256": "BE85FF83CA411C1524D2586F2396CDAD790F48BC417E030C228F2E538C537665",
|
||||
"currentSha256": "BE85FF83CA411C1524D2586F2396CDAD790F48BC417E030C228F2E538C537665",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/Program.cs",
|
||||
"baselineSha256": "6CC1D07330F0A871EAE93B6452C4070677CF60B1EA6184715ABF5386BBF24AC8",
|
||||
"currentSha256": "6CC1D07330F0A871EAE93B6452C4070677CF60B1EA6184715ABF5386BBF24AC8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/HomeExitTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/Program.cs",
|
||||
"baselineSha256": "546821878709B298CF39F0B13CF403A02364EC87F216A71FF8DBF113B65B4FDD",
|
||||
"currentSha256": "546821878709B298CF39F0B13CF403A02364EC87F216A71FF8DBF113B65B4FDD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/HomeLoginTests.csproj",
|
||||
"baselineSha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"currentSha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/Program.cs",
|
||||
"baselineSha256": "57EF5CE9E3884B8E2C64D69F04B2C555DB490054A87FF0A8F8B25043C6262471",
|
||||
"currentSha256": "57EF5CE9E3884B8E2C64D69F04B2C555DB490054A87FF0A8F8B25043C6262471",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/KVContractTests.csproj",
|
||||
"baselineSha256": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B",
|
||||
"currentSha256": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/Program.cs",
|
||||
"baselineSha256": "7DCA39AC8377FB7E942A057B4CF21083586362911F22DBAB1049DC40E63483F0",
|
||||
"currentSha256": "7DCA39AC8377FB7E942A057B4CF21083586362911F22DBAB1049DC40E63483F0",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/KVGameBridgeTests.csproj",
|
||||
"baselineSha256": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD",
|
||||
"currentSha256": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/Program.cs",
|
||||
"baselineSha256": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4",
|
||||
"currentSha256": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/KVLiveTests.csproj",
|
||||
"baselineSha256": "5C82D8CCF11C8B99715D76A371590646F811BB2836A6BFB22824E9F047C8E87A",
|
||||
"currentSha256": "5C82D8CCF11C8B99715D76A371590646F811BB2836A6BFB22824E9F047C8E87A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/Program.cs",
|
||||
"baselineSha256": "09823E73095B5CA2601A6A768FB8AF2487E58986754DD6603A4AA78CB41FB835",
|
||||
"currentSha256": "09823E73095B5CA2601A6A768FB8AF2487E58986754DD6603A4AA78CB41FB835",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLoginContextTests/KVLoginContextTests.csproj",
|
||||
"baselineSha256": "9D5FA72EEC244192394074DA68C5C200A5288D8C9EE2691A8D0288F250F7DCCF",
|
||||
"currentSha256": "9D5FA72EEC244192394074DA68C5C200A5288D8C9EE2691A8D0288F250F7DCCF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLoginContextTests/Program.cs",
|
||||
"baselineSha256": "8A557D489790E3AF5638BC124FF5084458081B929F1A810FECD5D36D361AB139",
|
||||
"currentSha256": "8A557D489790E3AF5638BC124FF5084458081B929F1A810FECD5D36D361AB139",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"baselineSha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"currentSha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"baselineSha256": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"currentSha256": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/KVSyncCoordinatorReviewTests.csproj",
|
||||
"baselineSha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"currentSha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/Program.cs",
|
||||
"baselineSha256": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD",
|
||||
"currentSha256": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj",
|
||||
"baselineSha256": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE",
|
||||
"currentSha256": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/Program.cs",
|
||||
"baselineSha256": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"currentSha256": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/KVSyncReviewTests.csproj",
|
||||
"baselineSha256": "99F47D2F16BDFDD96712DE6962AFFB18DE335434AF37C1D7E683E4C40250DF6C",
|
||||
"currentSha256": "99F47D2F16BDFDD96712DE6962AFFB18DE335434AF37C1D7E683E4C40250DF6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/Program.cs",
|
||||
"baselineSha256": "0174C63FFE7D8E32933C5FA5FFD185D56646DDF14F39BFC81BF6A46FA0426BCD",
|
||||
"currentSha256": "0174C63FFE7D8E32933C5FA5FFD185D56646DDF14F39BFC81BF6A46FA0426BCD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/KVSyncTests.csproj",
|
||||
"baselineSha256": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73",
|
||||
"currentSha256": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/Program.cs",
|
||||
"baselineSha256": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724",
|
||||
"currentSha256": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/LoginActTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/Program.cs",
|
||||
"baselineSha256": "A858292D8FD17744D02370D14119A11A80A43A46BC3D2E9FAF35E14284493D3A",
|
||||
"currentSha256": "A858292D8FD17744D02370D14119A11A80A43A46BC3D2E9FAF35E14284493D3A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginRegression/LoginRegression.csproj",
|
||||
"baselineSha256": "76E5F2378DFDDF14147898E703A2D847CCBA341251DDB144DD861992DEA72F66",
|
||||
"currentSha256": "76E5F2378DFDDF14147898E703A2D847CCBA341251DDB144DD861992DEA72F66",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/LogoutStorageTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/Program.cs",
|
||||
"baselineSha256": "E954B85E96E0A0DCE8A10099727BEF1E3B895F9E1AB5EDDA6151BE824DC3CB89",
|
||||
"currentSha256": "E954B85E96E0A0DCE8A10099727BEF1E3B895F9E1AB5EDDA6151BE824DC3CB89",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/MapExitTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/Program.cs",
|
||||
"baselineSha256": "9486BB64F8A24B52900F3AEC41790315D117263C83791D66D56E636DDA025A8E",
|
||||
"currentSha256": "9486BB64F8A24B52900F3AEC41790315D117263C83791D66D56E636DDA025A8E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/MinimalLoginTests.csproj",
|
||||
"baselineSha256": "3F9945196BBF05DB9BE08029E6FF77EFD5C5A061022C452E0278DFF6EAD95C0C",
|
||||
"currentSha256": "3F9945196BBF05DB9BE08029E6FF77EFD5C5A061022C452E0278DFF6EAD95C0C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/Program.cs",
|
||||
"baselineSha256": "0799A5480D2215735CD9E8F703FC8727FED406CC0C11FAE6A1A707ADF5DA267F",
|
||||
"currentSha256": "0799A5480D2215735CD9E8F703FC8727FED406CC0C11FAE6A1A707ADF5DA267F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/UnityReferenceCheck.csproj",
|
||||
"baselineSha256": "38ED14F27451795A5A6048EDE6E2336E2EE863A64D63814D6B15A4D85D878752",
|
||||
"currentSha256": "38ED14F27451795A5A6048EDE6E2336E2EE863A64D63814D6B15A4D85D878752",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/NetworkTransportTests.csproj",
|
||||
"baselineSha256": "171C5D091C4C567B17E56627701A20801DD39E50D1238A67E3BB8EF937198250",
|
||||
"currentSha256": "171C5D091C4C567B17E56627701A20801DD39E50D1238A67E3BB8EF937198250",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/Program.cs",
|
||||
"baselineSha256": "BEE6B2416E71483AF27A0F9269886ECCD9D6152868EEBA38899A98A3680E2783",
|
||||
"currentSha256": "BEE6B2416E71483AF27A0F9269886ECCD9D6152868EEBA38899A98A3680E2783",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/Program.cs",
|
||||
"baselineSha256": "99F5BB5B6B80DB1A1F3CCAA0454A0C0170FD7EB18DB240542DB34DC32D8C349F",
|
||||
"currentSha256": "99F5BB5B6B80DB1A1F3CCAA0454A0C0170FD7EB18DB240542DB34DC32D8C349F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/RealtimeTests.csproj",
|
||||
"baselineSha256": "B2441352FB71097AE043DF45866E9BDC61F1908B751DEDF8F2F63C439F80EA2F",
|
||||
"currentSha256": "B2441352FB71097AE043DF45866E9BDC61F1908B751DEDF8F2F63C439F80EA2F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/Program.cs",
|
||||
"baselineSha256": "1DBDCA00429982B9516E9B726C2E411E85E241CE15D6D222D5B9456331BD6A15",
|
||||
"currentSha256": "1DBDCA00429982B9516E9B726C2E411E85E241CE15D6D222D5B9456331BD6A15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/ReentryTests.csproj",
|
||||
"baselineSha256": "2C7EE19DB4C089FD2B38E9E99CF8B22FCFC05E4B66ABF47E040F69213F575A32",
|
||||
"currentSha256": "2C7EE19DB4C089FD2B38E9E99CF8B22FCFC05E4B66ABF47E040F69213F575A32",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/Program.cs",
|
||||
"baselineSha256": "351BAD9C19A29B3307C021BE70103DBB88A89DF8E9F03CD30D6AB5DA68C1E74F",
|
||||
"currentSha256": "351BAD9C19A29B3307C021BE70103DBB88A89DF8E9F03CD30D6AB5DA68C1E74F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/ReviewLifecycleTests.csproj",
|
||||
"baselineSha256": "42C3CBA40FC51390517B4AD9E0BA64C59D6AC8D014EAB3715627C6B54EE316E7",
|
||||
"currentSha256": "42C3CBA40FC51390517B4AD9E0BA64C59D6AC8D014EAB3715627C6B54EE316E7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/Program.cs",
|
||||
"baselineSha256": "765CE60B346FC5867F0D739C4578C475792D2C0E94CE46E6757FDA2910A427E6",
|
||||
"currentSha256": "765CE60B346FC5867F0D739C4578C475792D2C0E94CE46E6757FDA2910A427E6",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/SoundExitTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
}
|
||||
],
|
||||
"checkpoint1Artifacts": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"sha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs",
|
||||
"sha256": "4CA9538F432F4FAA7029E2A5A22B0F4D45C3B39E1E676B60058B87928B559483"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs.meta",
|
||||
"sha256": "5A987A1767ABC28789B1129FB989A7675F56F861B80F2B11C5763CD6DF09AB91"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/Program.cs",
|
||||
"sha256": "840813E6A26AA2839B45C13F88D385727B6D65C89C2D63DD76C32505FED54388"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/KVGameLoadTests.csproj",
|
||||
"sha256": "A51C01A628F397578B558EF8A86CC7A6C0A4A06FF9EB1D7C0B47EECA31E820CF"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-final2.log",
|
||||
"sha256": "5BD57600AD6E1CC85D3191635E01F59434C99C69C6A7D42A84589CB8B4F7E0D0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-final2.exit.json",
|
||||
"sha256": "DB05F64ED83F7A44C0CBF56B89F4CFEA0CC25BFEE11D2C2ABCD2F6565290AE8E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-4B1-final2.log",
|
||||
"sha256": "09E081A2F3BE8143A37004296E2C69B7001ED343F62D03F17552DC72450DE8FC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-4B1-final2.exit.json",
|
||||
"sha256": "5127C7E09A02D814CB2BA4AA40CA905CB0D84969C90ABC4C1D399EFF5878203B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-unity-final2.log",
|
||||
"sha256": "9D89E473EE237B94F11F3E0A923F8C79DD14871DF80B54A6B795504AF01AA6AA"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-unity-final2.exit.json",
|
||||
"sha256": "C915EEAE58994990ED83AF3EFACCA2434EF2CD34E4E93E0859A6A2812AEC05D3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-live-build-final2.log",
|
||||
"sha256": "D70BA54172388C524C8F99FFCB0BA254947A67C4756ABADE865C8FF74916C0A2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-live-build-final2.exit.json",
|
||||
"sha256": "06FDB63BEBA7A57CBEC27F1D7F350E13021794A56312BDAF588511916129BDCB"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/baseline/ClubService.cs.txt",
|
||||
"sha256": "70908AC672CB3F9BEC07D714469847637A3CA4BF841016C0F85B4319597618AD"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"generatedAt": "2026-09-23T19:55:15.6567673+08:00",
|
||||
"status": "D1-D2-approved-checkpoint2-implementation-authorized-not-complete",
|
||||
"reviewHash": "763C8FD1F74080DD6DFA1683904A8273ED41A7EF5613254835D8DDA351391F07",
|
||||
"originalReviewFilesUnchanged": 13,
|
||||
"reviewedRecordPreservedAs": "阶段4B2实施记录-检查点2差异受审快照-2026-09-23.md",
|
||||
"checkpoint1ArtifactsUnchanged": 14,
|
||||
"files": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2检查点2字段差异审查裁决-2026-09-23.md",
|
||||
"sha256": "6ED4919FB6BF2AA103186CEBFE251719CC5515284521B8180F2A7BB54D0D1923"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2字段与模块加载合同-正式版-2026-09-23.md",
|
||||
"sha256": "E4F048B6001B408360881E11B39B98FA2F5B43750F1D360A864649585574341A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2实施记录-检查点2差异受审快照-2026-09-23.md",
|
||||
"sha256": "6108E90C894FAD2F5FA518F380E1740650B5F87C4571F3992B301D39F9960DFC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2实施记录-2026-09-23.md",
|
||||
"sha256": "F10AB039C62BEDAEC3384BD2C0A9CC1E7DAF78178963205D3BBDF7936244E935"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发日志.md",
|
||||
"sha256": "5B57F569E20ADADE6AC21BA970C2176509A559348AF76BBF119352B260B03243"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "A1C4B7F4572A6EC53696D253E206D700B700F9524EF4022A5C8AE7A01D3F6016"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发状态.md",
|
||||
"sha256": "9382294F0AAF427542CC8FD90F9AF60367D432F86CE4638433B5F7E8191E667E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/TODO.md",
|
||||
"sha256": "6CA850B1476422EB55F07ED953044C9B6911F5CDBD5531B6C8F446FB56DED49D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/README.md",
|
||||
"sha256": "5817F2D0B0772F3CED3B297FCCB833C94EE5F42BDDC9E7345BAA44BA3B4A73D4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/后续实现方案.md",
|
||||
"sha256": "21750F693D456A8A3B082486458A334D7DF71C7B3C879A827BD1497BE80D146B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/当前阶段范围裁决-仅最小登录.md",
|
||||
"sha256": "40BA2394142461BCB1CEFCFA90A8340587150F256E4719359282246AEAA060F3"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"checkedAt": "2026-09-23T19:52:33.1238758+08:00",
|
||||
"phase": "4B2-checkpoint2-delta-ruling",
|
||||
"note": "Verified before updating shared implementation record. Original reviewed record is archived byte-for-byte separately.",
|
||||
"reviewPath": "CodexOutput/upserver/阶段4B2检查点2字段差异独立审查-2026-09-23.md",
|
||||
"reviewSha256": "763C8FD1F74080DD6DFA1683904A8273ED41A7EF5613254835D8DDA351391F07",
|
||||
"checks": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2检查点2字段差异补审方案-2026-09-23.md",
|
||||
"expected": "AB01A679E1927633EAC6D9C9F4B1FE0AED745F91BBDA6ED18B9E4A1B37D861B9",
|
||||
"actual": "AB01A679E1927633EAC6D9C9F4B1FE0AED745F91BBDA6ED18B9E4A1B37D861B9",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B2检查点2字段差异-2026-09-23.md",
|
||||
"expected": "0358BFEDEC89113FEA6EB1BC51AB3334BA9ED1F03FE3B2096A9C001A6D6FA8C3",
|
||||
"actual": "0358BFEDEC89113FEA6EB1BC51AB3334BA9ED1F03FE3B2096A9C001A6D6FA8C3",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2修订2审查裁决与实施批准-2026-09-23.md",
|
||||
"expected": "71DF63FCEE375F8D6E6B0DCB9AD332CCBCC44668B6EA9BBB7C4E08046E58C8B6",
|
||||
"actual": "71DF63FCEE375F8D6E6B0DCB9AD332CCBCC44668B6EA9BBB7C4E08046E58C8B6",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2实施记录-2026-09-23.md",
|
||||
"expected": "6108E90C894FAD2F5FA518F380E1740650B5F87C4571F3992B301D39F9960DFC",
|
||||
"actual": "6108E90C894FAD2F5FA518F380E1740650B5F87C4571F3992B301D39F9960DFC",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2游戏加载与内存隔离方案-修订2-待评审-2026-09-23.md",
|
||||
"expected": "69CD69935B503742065F6D783FC6F9E87CEFCC5FF5C3A83F4F3D605B4C07CC30",
|
||||
"actual": "69CD69935B503742065F6D783FC6F9E87CEFCC5FF5C3A83F4F3D605B4C07CC30",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2字段与模块加载合同-2026-09-23.md",
|
||||
"expected": "9E1A49E389CD6E9B38FA2CB55E5839ED5356E915AECCD4787FFE6F8276340745",
|
||||
"actual": "9E1A49E389CD6E9B38FA2CB55E5839ED5356E915AECCD4787FFE6F8276340745",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2修订2方案独立审查-2026-09-23.md",
|
||||
"expected": "46DC68FD2C04BE6A2B3FB04A39BF588EB9C1E87B07F8B8C28FFACB0B8CE90A99",
|
||||
"actual": "46DC68FD2C04BE6A2B3FB04A39BF588EB9C1E87B07F8B8C28FFACB0B8CE90A99",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2方案受审基线-修订2-2026-09-23.json",
|
||||
"expected": "CD6306401F6FEEE6509A8237E89BCAF1D5812E444FAE3E98721B025AE7EC74F1",
|
||||
"actual": "CD6306401F6FEEE6509A8237E89BCAF1D5812E444FAE3E98721B025AE7EC74F1",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"expected": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E",
|
||||
"actual": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/AchievementDataManager.cs",
|
||||
"expected": "5619BA908FCD23629EA78CC990207807A9C26AA5BFD9F551FF5163A766DDF5B7",
|
||||
"actual": "5619BA908FCD23629EA78CC990207807A9C26AA5BFD9F551FF5163A766DDF5B7",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/FootPrintService.cs",
|
||||
"expected": "08C7E3FAA44641063293F55A4C601CAAD75899DE46079ABF687ADB5249254652",
|
||||
"actual": "08C7E3FAA44641063293F55A4C601CAAD75899DE46079ABF687ADB5249254652",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"expected": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C",
|
||||
"actual": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs",
|
||||
"expected": "4CA9538F432F4FAA7029E2A5A22B0F4D45C3B39E1E676B60058B87928B559483",
|
||||
"actual": "4CA9538F432F4FAA7029E2A5A22B0F4D45C3B39E1E676B60058B87928B559483",
|
||||
"matches": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint1-source-hashes.json",
|
||||
"expected": "187D8BCEC6CF6D5BECABA3FE951BA4629DAB3E5B32D36DE9681FC4D8E71F34A9",
|
||||
"actual": "187D8BCEC6CF6D5BECABA3FE951BA4629DAB3E5B32D36DE9681FC4D8E71F34A9",
|
||||
"matches": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,840 @@
|
||||
{
|
||||
"generatedAt": "2026-09-23T20:15:43.3598388+08:00",
|
||||
"phase": "4B2-checkpoint2-partial",
|
||||
"status": "core-codecs-M08-M23-validated-D3-pending",
|
||||
"note": "Not complete checkpoint2 or B2-20. Original reviewed artifacts preserved.",
|
||||
"baselineChecks": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2游戏加载与内存隔离方案-修订2-待评审-2026-09-23.md",
|
||||
"baselineSha256": "69CD69935B503742065F6D783FC6F9E87CEFCC5FF5C3A83F4F3D605B4C07CC30",
|
||||
"currentSha256": "69CD69935B503742065F6D783FC6F9E87CEFCC5FF5C3A83F4F3D605B4C07CC30",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2字段与模块加载合同-2026-09-23.md",
|
||||
"baselineSha256": "9E1A49E389CD6E9B38FA2CB55E5839ED5356E915AECCD4787FFE6F8276340745",
|
||||
"currentSha256": "9E1A49E389CD6E9B38FA2CB55E5839ED5356E915AECCD4787FFE6F8276340745",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2初稿审查裁决与修订说明-2026-09-23.md",
|
||||
"baselineSha256": "8A27E43F453A517EE1062ACE47DD80C97093C359A8067A1BC36FF371F0913896",
|
||||
"currentSha256": "8A27E43F453A517EE1062ACE47DD80C97093C359A8067A1BC36FF371F0913896",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B2修订2方案-2026-09-23.md",
|
||||
"baselineSha256": "30E55C7DA042131027A261A9E271C29A59F47AC6E607F087B1E874DFD3C4A5EF",
|
||||
"currentSha256": "30E55C7DA042131027A261A9E271C29A59F47AC6E607F087B1E874DFD3C4A5EF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2游戏加载与内存隔离方案-待评审-2026-09-23.md",
|
||||
"baselineSha256": "8992B17D8B1DEAAA99D7DFDCC76AE2D21112FC259C675F6EDEB9205643C9803C",
|
||||
"currentSha256": "8992B17D8B1DEAAA99D7DFDCC76AE2D21112FC259C675F6EDEB9205643C9803C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2方案独立审查-2026-09-23.md",
|
||||
"baselineSha256": "668C089721D7918AEF3EFB319C998B7BC641EFE400D9137E554C294E1BCBD70E",
|
||||
"currentSha256": "668C089721D7918AEF3EFB319C998B7BC641EFE400D9137E554C294E1BCBD70E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2方案作者自审补充-2026-09-23.md",
|
||||
"baselineSha256": "871FF48839FEC190957417A5937A1B8DCD07F6570DDC892834458ED0F1B9F186",
|
||||
"currentSha256": "871FF48839FEC190957417A5937A1B8DCD07F6570DDC892834458ED0F1B9F186",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B2方案-2026-09-23.md",
|
||||
"baselineSha256": "3E667B519C57F48E3462C1EFB44A5BF2E481C1A5DD2DD2C467EFCCBF3EED9AD3",
|
||||
"currentSha256": "3E667B519C57F48E3462C1EFB44A5BF2E481C1A5DD2DD2C467EFCCBF3EED9AD3",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B1实施复核裁决与关闭-2026-09-23.md",
|
||||
"baselineSha256": "953048E94D140E676F884DE4D9E7A695143026E8076DB5D122F537663CD8310F",
|
||||
"currentSha256": "953048E94D140E676F884DE4D9E7A695143026E8076DB5D122F537663CD8310F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B分期与4B1登录存档准备方案-待评审-2026-09-23.md",
|
||||
"baselineSha256": "42EF64F0B96ACFE947C7A2CCAA2CF1B39BDEACF00AB29E4C93F82A284A4606A5",
|
||||
"currentSha256": "42EF64F0B96ACFE947C7A2CCAA2CF1B39BDEACF00AB29E4C93F82A284A4606A5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4存档接线分期与4A方案-2026-09-23.md",
|
||||
"baselineSha256": "024A351F8FBBFBD90FD8EF6E02AFE990F8C8742114AF38C17D211FCF77C17DDF",
|
||||
"currentSha256": "024A351F8FBBFBD90FD8EF6E02AFE990F8C8742114AF38C17D211FCF77C17DDF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4存档调用盘点-2026-09-23.txt",
|
||||
"baselineSha256": "DD74B64CCD1E8BA172826B9C0AD939DB4DCADF12C33C031F6AA91EE8387E32F5",
|
||||
"currentSha256": "DD74B64CCD1E8BA172826B9C0AD939DB4DCADF12C33C031F6AA91EE8387E32F5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/RootCtx.cs",
|
||||
"baselineSha256": "AC666D2F1D94B41C2917DF1C609C3D57D7C0DE659BAB5883298BB76E06C62646",
|
||||
"currentSha256": "AC666D2F1D94B41C2917DF1C609C3D57D7C0DE659BAB5883298BB76E06C62646",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Camp/CampDataMM.cs",
|
||||
"baselineSha256": "6B6E547A7177C7659BD2FF6A80AD988D55BF8BE21B08E2C83A20BEA1902EAAC8",
|
||||
"currentSha256": "6B6E547A7177C7659BD2FF6A80AD988D55BF8BE21B08E2C83A20BEA1902EAAC8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/CustomServerMgr.cs",
|
||||
"baselineSha256": "930C1543450EB169AD83D38F6916423A223AD46D0F48C5AA51107B1407726EDF",
|
||||
"currentSha256": "930C1543450EB169AD83D38F6916423A223AD46D0F48C5AA51107B1407726EDF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"baselineSha256": "03E579D222C308C41F9F7DF9A54FE1E36587F245C4234D44276EF61E4B1BDB80",
|
||||
"currentSha256": "03E579D222C308C41F9F7DF9A54FE1E36587F245C4234D44276EF61E4B1BDB80",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/AchievementDataManager.cs",
|
||||
"baselineSha256": "5619BA908FCD23629EA78CC990207807A9C26AA5BFD9F551FF5163A766DDF5B7",
|
||||
"currentSha256": "B544364F33F06E8DB82C68F57F5B63B42B09DB3B4B26546FDEAA3767CD0AB6FA",
|
||||
"unchanged": false
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BargainPackData.cs",
|
||||
"baselineSha256": "86581EA7DC49C486418C4D0AF4CFE2DD0F255CC1475E4F7D95AF1F0F33CD5EEA",
|
||||
"currentSha256": "86581EA7DC49C486418C4D0AF4CFE2DD0F255CC1475E4F7D95AF1F0F33CD5EEA",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BattlePassData.cs",
|
||||
"baselineSha256": "7F4B845E32FC5AF5526BBCE71396868BBE1ECDCD5A677C73CA3470EF41A6AD46",
|
||||
"currentSha256": "7F4B845E32FC5AF5526BBCE71396868BBE1ECDCD5A677C73CA3470EF41A6AD46",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BuffDataCenter.cs",
|
||||
"baselineSha256": "ADDABFE710C50C06A99BB852FDD1A75F97750A2F216A07ADD291045A68525557",
|
||||
"currentSha256": "ADDABFE710C50C06A99BB852FDD1A75F97750A2F216A07ADD291045A68525557",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs",
|
||||
"baselineSha256": "E12CAA181F34558000B64318032124EE05028AF4F18B6E9D340627AEDEA3C92E",
|
||||
"currentSha256": "E12CAA181F34558000B64318032124EE05028AF4F18B6E9D340627AEDEA3C92E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs",
|
||||
"baselineSha256": "40A59C50F9A80A116033B3CDCBFF8784D8CCB6E584CDC2D6968AB63865031926",
|
||||
"currentSha256": "40A59C50F9A80A116033B3CDCBFF8784D8CCB6E584CDC2D6968AB63865031926",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"baselineSha256": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E",
|
||||
"currentSha256": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs",
|
||||
"baselineSha256": "84EA926E2333B507E2302CE0D063FC9DC8842869B9168F618CD23CED21301CC9",
|
||||
"currentSha256": "84EA926E2333B507E2302CE0D063FC9DC8842869B9168F618CD23CED21301CC9",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs",
|
||||
"baselineSha256": "65ABDCA192591BA2048BA22B52EA1807CF183C3A3F7448B58E537342116A6DB5",
|
||||
"currentSha256": "65ABDCA192591BA2048BA22B52EA1807CF183C3A3F7448B58E537342116A6DB5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.SignupData.cs",
|
||||
"baselineSha256": "513C03E8EE34D8A2E9BF5674D13998D427FFE1DE4F530FBE2589F35AD204FCF5",
|
||||
"currentSha256": "513C03E8EE34D8A2E9BF5674D13998D427FFE1DE4F530FBE2589F35AD204FCF5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.SmallGame.cs",
|
||||
"baselineSha256": "FB8F446D36ED5110F36363FD1F66C6C0EC3A4AD0466FBFD6A0717804E3B5721E",
|
||||
"currentSha256": "FB8F446D36ED5110F36363FD1F66C6C0EC3A4AD0466FBFD6A0717804E3B5721E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs",
|
||||
"baselineSha256": "246F05745BC7064B81A32E6F7A3FDD89B90EFF584843AE2837227F26EBD5CD55",
|
||||
"currentSha256": "246F05745BC7064B81A32E6F7A3FDD89B90EFF584843AE2837227F26EBD5CD55",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPackData.cs",
|
||||
"baselineSha256": "32B5194B871D6E1674A56C26DA17647AF1800CAE148E2935AFFBB52CF178453E",
|
||||
"currentSha256": "32B5194B871D6E1674A56C26DA17647AF1800CAE148E2935AFFBB52CF178453E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPartnerGatherManager.cs",
|
||||
"baselineSha256": "CCF2E65969CA2791959DBE46983117362B045925E8D15B83B7EE9E32361BF1B7",
|
||||
"currentSha256": "CCF2E65969CA2791959DBE46983117362B045925E8D15B83B7EE9E32361BF1B7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPinballDataManager.cs",
|
||||
"baselineSha256": "D13C7E97C144986FB4B586EE478E0B0576B31CC304989A4BC043C3A3BE784B6F",
|
||||
"currentSha256": "D13C7E97C144986FB4B586EE478E0B0576B31CC304989A4BC043C3A3BE784B6F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPotionDataManager.cs",
|
||||
"baselineSha256": "76568866B2DA3F0064236D4520247837F08264EA7DD88F831A618416EBF612FA",
|
||||
"currentSha256": "76568866B2DA3F0064236D4520247837F08264EA7DD88F831A618416EBF612FA",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventScratchTicketDataManager.cs",
|
||||
"baselineSha256": "E8DF0E533EA16354ECCEF870783356D880E96F42181046653393F263D86A6F20",
|
||||
"currentSha256": "E8DF0E533EA16354ECCEF870783356D880E96F42181046653393F263D86A6F20",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingBoxData.cs",
|
||||
"baselineSha256": "13E6DA1EB181FB1FC09DE9F04BAC9118F00DDB7AD981D8B4B94ABFC83FE6E0B7",
|
||||
"currentSha256": "13E6DA1EB181FB1FC09DE9F04BAC9118F00DDB7AD981D8B4B94ABFC83FE6E0B7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs",
|
||||
"baselineSha256": "D8D0E3A118F0D67E7A70EE26272777ACF21D581D3B219C8518DC521057581D1A",
|
||||
"currentSha256": "D8D0E3A118F0D67E7A70EE26272777ACF21D581D3B219C8518DC521057581D1A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingEvent_PVPData.cs",
|
||||
"baselineSha256": "A6C2C5CCB7B90D8654589BAA51D4BD02F74F0618E69D30ECE575CF3F4B244E36",
|
||||
"currentSha256": "A6C2C5CCB7B90D8654589BAA51D4BD02F74F0618E69D30ECE575CF3F4B244E36",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/OfferChainsChestManager.cs",
|
||||
"baselineSha256": "1B9601EE74B3A167478841544BB38125D4D0A2B8825EEEF3B8EACD708DC76CEB",
|
||||
"currentSha256": "1B9601EE74B3A167478841544BB38125D4D0A2B8825EEEF3B8EACD708DC76CEB",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/OfferDiscoPartyManager.cs",
|
||||
"baselineSha256": "71DE32B1C9FA56519ECDE05056C1A763A87319E5B1015769F8CE1132507D8994",
|
||||
"currentSha256": "71DE32B1C9FA56519ECDE05056C1A763A87319E5B1015769F8CE1132507D8994",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/PiggyBankPackData.cs",
|
||||
"baselineSha256": "64B3590C00BE4343D3095B91FC34D1545CDC6B9AD79173927A92B6165C35D1E8",
|
||||
"currentSha256": "64B3590C00BE4343D3095B91FC34D1545CDC6B9AD79173927A92B6165C35D1E8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/PlayerFishDataRod.cs",
|
||||
"baselineSha256": "5B1A0567A00FFE4C6AC9EA68F2C17B8F58638110BDF80EB8289938F6AD610305",
|
||||
"currentSha256": "5B1A0567A00FFE4C6AC9EA68F2C17B8F58638110BDF80EB8289938F6AD610305",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/EventCubeMelt/Data/EventCubeMeltManager.cs",
|
||||
"baselineSha256": "12393D346D04AA5F9224FE6F0FF660FAAEDDF1BCE078DD2550D5A22464AD04A8",
|
||||
"currentSha256": "12393D346D04AA5F9224FE6F0FF660FAAEDDF1BCE078DD2550D5A22464AD04A8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/HotUpdate.asmdef",
|
||||
"baselineSha256": "EE4E93C20AFA4FA199A6DEABC135C859F973AAADA4834BDCC554CCCBEBF12B15",
|
||||
"currentSha256": "EE4E93C20AFA4FA199A6DEABC135C859F973AAADA4834BDCC554CCCBEBF12B15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/SandDig/DiggingGameManager.cs",
|
||||
"baselineSha256": "482592F774BD7003D5AF25B8C73BA820C2A03E79F57FEB3276412290894A7E4A",
|
||||
"currentSha256": "482592F774BD7003D5AF25B8C73BA820C2A03E79F57FEB3276412290894A7E4A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"baselineSha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"currentSha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/AggUserService.cs",
|
||||
"baselineSha256": "E7518D6DED134A75BDC1A547022C7EEC5C8E82C29F5C3BCF5E2E567F1744F169",
|
||||
"currentSha256": "E7518D6DED134A75BDC1A547022C7EEC5C8E82C29F5C3BCF5E2E567F1744F169",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/ClubService.cs",
|
||||
"baselineSha256": "70908AC672CB3F9BEC07D714469847637A3CA4BF841016C0F85B4319597618AD",
|
||||
"currentSha256": "70908AC672CB3F9BEC07D714469847637A3CA4BF841016C0F85B4319597618AD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/FootPrintService.cs",
|
||||
"baselineSha256": "08C7E3FAA44641063293F55A4C601CAAD75899DE46079ABF687ADB5249254652",
|
||||
"currentSha256": "F1C5D2DFCAE37A7C124A2D46711DC5DEA31F025083EBBF9D60528C096CCB31B8",
|
||||
"unchanged": false
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"baselineSha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"currentSha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs.meta",
|
||||
"baselineSha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1",
|
||||
"currentSha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"baselineSha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"currentSha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs.meta",
|
||||
"baselineSha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E",
|
||||
"currentSha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"baselineSha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"currentSha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"baselineSha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2",
|
||||
"currentSha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"baselineSha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
|
||||
"currentSha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"baselineSha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6",
|
||||
"currentSha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"baselineSha256": "7552C331BCD7B5B51A9726085D25319E9D77653E5519EE76D7772EEB4B757A29",
|
||||
"currentSha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C",
|
||||
"unchanged": false
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs.meta",
|
||||
"baselineSha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570",
|
||||
"currentSha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
|
||||
"baselineSha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290",
|
||||
"currentSha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs.meta",
|
||||
"baselineSha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F",
|
||||
"currentSha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"baselineSha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"currentSha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs.meta",
|
||||
"baselineSha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E",
|
||||
"currentSha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"baselineSha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"currentSha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta",
|
||||
"baselineSha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A",
|
||||
"currentSha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"baselineSha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"currentSha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta",
|
||||
"baselineSha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7",
|
||||
"currentSha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"baselineSha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"currentSha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs.meta",
|
||||
"baselineSha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084",
|
||||
"currentSha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"baselineSha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"currentSha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs.meta",
|
||||
"baselineSha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4",
|
||||
"currentSha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.cs",
|
||||
"baselineSha256": "1D764569F38651E911AFF4E493F10532F03F0E505432BB2AB768E2829C819C26",
|
||||
"currentSha256": "1D764569F38651E911AFF4E493F10532F03F0E505432BB2AB768E2829C819C26",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"baselineSha256": "C3905D3264F5E67056D41FB3DFA433591B6602F35819AD6DC16F0CC4EFF3BDB0",
|
||||
"currentSha256": "C3905D3264F5E67056D41FB3DFA433591B6602F35819AD6DC16F0CC4EFF3BDB0",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/PinataPack/EventPinataPackData.cs",
|
||||
"baselineSha256": "F4FF92A9B1052966C691537334E1D6BF745E23844F935C49368F81E0D2383BCD",
|
||||
"currentSha256": "F4FF92A9B1052966C691537334E1D6BF745E23844F935C49368F81E0D2383BCD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/PinataPack/EventPinataPackDataManager.cs",
|
||||
"baselineSha256": "060ED78FD3CBEC4B37CE1AE88D1044EF082E74CD6C24FC7FE7B10CF62F4ACFA8",
|
||||
"currentSha256": "060ED78FD3CBEC4B37CE1AE88D1044EF082E74CD6C24FC7FE7B10CF62F4ACFA8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/ShootingRange/ShootingRangeData.cs",
|
||||
"baselineSha256": "1871562D484FF1992646F489A6FFCBC28242768845F9F8556E484646FB2B47E5",
|
||||
"currentSha256": "1871562D484FF1992646F489A6FFCBC28242768845F9F8556E484646FB2B47E5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/BlackFridayCouponData.cs",
|
||||
"baselineSha256": "122832325C4A529FD66140EFE0FC77AEC89D25994B88918CF037CA6433530D22",
|
||||
"currentSha256": "122832325C4A529FD66140EFE0FC77AEC89D25994B88918CF037CA6433530D22",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/ChainPackWithProgressData.cs",
|
||||
"baselineSha256": "8109F2DB497FB48F2871CA93BD5DFD2AEE26709FD61F1BBB8D76B52A019E5E84",
|
||||
"currentSha256": "8109F2DB497FB48F2871CA93BD5DFD2AEE26709FD61F1BBB8D76B52A019E5E84",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/ThanksGivingPackData.cs",
|
||||
"baselineSha256": "2324747FD398E52ECAC0722C1A036ADF8AAEDE15FBE4AE58D3ECFD230A5A4080",
|
||||
"currentSha256": "2324747FD398E52ECAC0722C1A036ADF8AAEDE15FBE4AE58D3ECFD230A5A4080",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/ClubRegression.csproj",
|
||||
"baselineSha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"currentSha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/Program.cs",
|
||||
"baselineSha256": "E7AF3AF2C0B9ABE5D79E7D6AB4D28EC1D7A61D52D6D01354A3B1AACA38A0A5AB",
|
||||
"currentSha256": "E7AF3AF2C0B9ABE5D79E7D6AB4D28EC1D7A61D52D6D01354A3B1AACA38A0A5AB",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/ExitTests.csproj",
|
||||
"baselineSha256": "BE85FF83CA411C1524D2586F2396CDAD790F48BC417E030C228F2E538C537665",
|
||||
"currentSha256": "BE85FF83CA411C1524D2586F2396CDAD790F48BC417E030C228F2E538C537665",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/Program.cs",
|
||||
"baselineSha256": "6CC1D07330F0A871EAE93B6452C4070677CF60B1EA6184715ABF5386BBF24AC8",
|
||||
"currentSha256": "6CC1D07330F0A871EAE93B6452C4070677CF60B1EA6184715ABF5386BBF24AC8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/HomeExitTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/Program.cs",
|
||||
"baselineSha256": "546821878709B298CF39F0B13CF403A02364EC87F216A71FF8DBF113B65B4FDD",
|
||||
"currentSha256": "546821878709B298CF39F0B13CF403A02364EC87F216A71FF8DBF113B65B4FDD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/HomeLoginTests.csproj",
|
||||
"baselineSha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"currentSha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/Program.cs",
|
||||
"baselineSha256": "57EF5CE9E3884B8E2C64D69F04B2C555DB490054A87FF0A8F8B25043C6262471",
|
||||
"currentSha256": "57EF5CE9E3884B8E2C64D69F04B2C555DB490054A87FF0A8F8B25043C6262471",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/KVContractTests.csproj",
|
||||
"baselineSha256": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B",
|
||||
"currentSha256": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/Program.cs",
|
||||
"baselineSha256": "7DCA39AC8377FB7E942A057B4CF21083586362911F22DBAB1049DC40E63483F0",
|
||||
"currentSha256": "7DCA39AC8377FB7E942A057B4CF21083586362911F22DBAB1049DC40E63483F0",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/KVGameBridgeTests.csproj",
|
||||
"baselineSha256": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD",
|
||||
"currentSha256": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/Program.cs",
|
||||
"baselineSha256": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4",
|
||||
"currentSha256": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/KVLiveTests.csproj",
|
||||
"baselineSha256": "5C82D8CCF11C8B99715D76A371590646F811BB2836A6BFB22824E9F047C8E87A",
|
||||
"currentSha256": "5C82D8CCF11C8B99715D76A371590646F811BB2836A6BFB22824E9F047C8E87A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/Program.cs",
|
||||
"baselineSha256": "09823E73095B5CA2601A6A768FB8AF2487E58986754DD6603A4AA78CB41FB835",
|
||||
"currentSha256": "09823E73095B5CA2601A6A768FB8AF2487E58986754DD6603A4AA78CB41FB835",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLoginContextTests/KVLoginContextTests.csproj",
|
||||
"baselineSha256": "9D5FA72EEC244192394074DA68C5C200A5288D8C9EE2691A8D0288F250F7DCCF",
|
||||
"currentSha256": "9D5FA72EEC244192394074DA68C5C200A5288D8C9EE2691A8D0288F250F7DCCF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLoginContextTests/Program.cs",
|
||||
"baselineSha256": "8A557D489790E3AF5638BC124FF5084458081B929F1A810FECD5D36D361AB139",
|
||||
"currentSha256": "8A557D489790E3AF5638BC124FF5084458081B929F1A810FECD5D36D361AB139",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"baselineSha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"currentSha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"baselineSha256": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"currentSha256": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/KVSyncCoordinatorReviewTests.csproj",
|
||||
"baselineSha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"currentSha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/Program.cs",
|
||||
"baselineSha256": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD",
|
||||
"currentSha256": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj",
|
||||
"baselineSha256": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE",
|
||||
"currentSha256": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/Program.cs",
|
||||
"baselineSha256": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"currentSha256": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/KVSyncReviewTests.csproj",
|
||||
"baselineSha256": "99F47D2F16BDFDD96712DE6962AFFB18DE335434AF37C1D7E683E4C40250DF6C",
|
||||
"currentSha256": "99F47D2F16BDFDD96712DE6962AFFB18DE335434AF37C1D7E683E4C40250DF6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/Program.cs",
|
||||
"baselineSha256": "0174C63FFE7D8E32933C5FA5FFD185D56646DDF14F39BFC81BF6A46FA0426BCD",
|
||||
"currentSha256": "0174C63FFE7D8E32933C5FA5FFD185D56646DDF14F39BFC81BF6A46FA0426BCD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/KVSyncTests.csproj",
|
||||
"baselineSha256": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73",
|
||||
"currentSha256": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/Program.cs",
|
||||
"baselineSha256": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724",
|
||||
"currentSha256": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/LoginActTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/Program.cs",
|
||||
"baselineSha256": "A858292D8FD17744D02370D14119A11A80A43A46BC3D2E9FAF35E14284493D3A",
|
||||
"currentSha256": "A858292D8FD17744D02370D14119A11A80A43A46BC3D2E9FAF35E14284493D3A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginRegression/LoginRegression.csproj",
|
||||
"baselineSha256": "76E5F2378DFDDF14147898E703A2D847CCBA341251DDB144DD861992DEA72F66",
|
||||
"currentSha256": "76E5F2378DFDDF14147898E703A2D847CCBA341251DDB144DD861992DEA72F66",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/LogoutStorageTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/Program.cs",
|
||||
"baselineSha256": "E954B85E96E0A0DCE8A10099727BEF1E3B895F9E1AB5EDDA6151BE824DC3CB89",
|
||||
"currentSha256": "E954B85E96E0A0DCE8A10099727BEF1E3B895F9E1AB5EDDA6151BE824DC3CB89",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/MapExitTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/Program.cs",
|
||||
"baselineSha256": "9486BB64F8A24B52900F3AEC41790315D117263C83791D66D56E636DDA025A8E",
|
||||
"currentSha256": "9486BB64F8A24B52900F3AEC41790315D117263C83791D66D56E636DDA025A8E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/MinimalLoginTests.csproj",
|
||||
"baselineSha256": "3F9945196BBF05DB9BE08029E6FF77EFD5C5A061022C452E0278DFF6EAD95C0C",
|
||||
"currentSha256": "3F9945196BBF05DB9BE08029E6FF77EFD5C5A061022C452E0278DFF6EAD95C0C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/Program.cs",
|
||||
"baselineSha256": "0799A5480D2215735CD9E8F703FC8727FED406CC0C11FAE6A1A707ADF5DA267F",
|
||||
"currentSha256": "0799A5480D2215735CD9E8F703FC8727FED406CC0C11FAE6A1A707ADF5DA267F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/UnityReferenceCheck.csproj",
|
||||
"baselineSha256": "38ED14F27451795A5A6048EDE6E2336E2EE863A64D63814D6B15A4D85D878752",
|
||||
"currentSha256": "38ED14F27451795A5A6048EDE6E2336E2EE863A64D63814D6B15A4D85D878752",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/NetworkTransportTests.csproj",
|
||||
"baselineSha256": "171C5D091C4C567B17E56627701A20801DD39E50D1238A67E3BB8EF937198250",
|
||||
"currentSha256": "171C5D091C4C567B17E56627701A20801DD39E50D1238A67E3BB8EF937198250",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/Program.cs",
|
||||
"baselineSha256": "BEE6B2416E71483AF27A0F9269886ECCD9D6152868EEBA38899A98A3680E2783",
|
||||
"currentSha256": "BEE6B2416E71483AF27A0F9269886ECCD9D6152868EEBA38899A98A3680E2783",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/Program.cs",
|
||||
"baselineSha256": "99F5BB5B6B80DB1A1F3CCAA0454A0C0170FD7EB18DB240542DB34DC32D8C349F",
|
||||
"currentSha256": "99F5BB5B6B80DB1A1F3CCAA0454A0C0170FD7EB18DB240542DB34DC32D8C349F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/RealtimeTests.csproj",
|
||||
"baselineSha256": "B2441352FB71097AE043DF45866E9BDC61F1908B751DEDF8F2F63C439F80EA2F",
|
||||
"currentSha256": "B2441352FB71097AE043DF45866E9BDC61F1908B751DEDF8F2F63C439F80EA2F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/Program.cs",
|
||||
"baselineSha256": "1DBDCA00429982B9516E9B726C2E411E85E241CE15D6D222D5B9456331BD6A15",
|
||||
"currentSha256": "1DBDCA00429982B9516E9B726C2E411E85E241CE15D6D222D5B9456331BD6A15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/ReentryTests.csproj",
|
||||
"baselineSha256": "2C7EE19DB4C089FD2B38E9E99CF8B22FCFC05E4B66ABF47E040F69213F575A32",
|
||||
"currentSha256": "2C7EE19DB4C089FD2B38E9E99CF8B22FCFC05E4B66ABF47E040F69213F575A32",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/Program.cs",
|
||||
"baselineSha256": "351BAD9C19A29B3307C021BE70103DBB88A89DF8E9F03CD30D6AB5DA68C1E74F",
|
||||
"currentSha256": "351BAD9C19A29B3307C021BE70103DBB88A89DF8E9F03CD30D6AB5DA68C1E74F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/ReviewLifecycleTests.csproj",
|
||||
"baselineSha256": "42C3CBA40FC51390517B4AD9E0BA64C59D6AC8D014EAB3715627C6B54EE316E7",
|
||||
"currentSha256": "42C3CBA40FC51390517B4AD9E0BA64C59D6AC8D014EAB3715627C6B54EE316E7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/Program.cs",
|
||||
"baselineSha256": "765CE60B346FC5867F0D739C4578C475792D2C0E94CE46E6757FDA2910A427E6",
|
||||
"currentSha256": "765CE60B346FC5867F0D739C4578C475792D2C0E94CE46E6757FDA2910A427E6",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/SoundExitTests.csproj",
|
||||
"baselineSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"currentSha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
}
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "0395CE6B7E68EBA6D3D51C1746E5D28D5B026E0DFCAC808B897EA09A2BD98604"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs.meta",
|
||||
"sha256": "EF0965FDDF7E9989AD14000CA474FD579B61B852C5A2B9F58EBAA8CF20A93A5D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs",
|
||||
"sha256": "A08D89D431584D2E7867F40D703C1BAA9C3DCC12CAB3AD6C0B721023C6241AAF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs.meta",
|
||||
"sha256": "88540CC7F0478280997283ADBE4469E725112C71B59717797EEEC16D816E4B00"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/AchievementDataManager.cs",
|
||||
"sha256": "B544364F33F06E8DB82C68F57F5B63B42B09DB3B4B26546FDEAA3767CD0AB6FA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/FootPrintService.cs",
|
||||
"sha256": "F1C5D2DFCAE37A7C124A2D46711DC5DEA31F025083EBBF9D60528C096CCB31B8"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"sha256": "82498820C7AADE4499942F48950AE34FC2BA6CF4552C5A6B607499841D8C4321"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs.meta",
|
||||
"sha256": "B0D71FC155FF15C31B05F52A2CEDBE5F4F6EBC3AE1905D070A6BC6C73F4CAE52"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameLoadValidation.cs",
|
||||
"sha256": "AD7CA97785EEADB8E6091F415D9FCE3231DC59B20C01450DB38B31CB482A69AB"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameLoadValidation.cs.meta",
|
||||
"sha256": "5695099BC868D6A057449D643FD0B29B767D09419123579FBE7026F1E6B1962A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/Program.cs",
|
||||
"sha256": "036F7ED423E3932ED95BDA3B05FF99F777C0039E1C9098C50F27F8749D1EA906"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/SchemaTests.cs",
|
||||
"sha256": "2B548BA6586818A00C0C81951F42EE989B6A80911D3E61B98D5B07EDA1568A73"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/KVGameLoadTests.csproj",
|
||||
"sha256": "B11437385BC60D5E1169740D6D308716B77551966E15C613AA697CA7F35B3A65"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-codecs-final.log",
|
||||
"sha256": "FE69342584B156D316A4EAD4708C5BB3F842F4D4D66F30A460C14D41B0C3E102"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-codecs-final.exit.json",
|
||||
"sha256": "67C0E543A7AD0760E0B659F8551C9B6081BD72CA345B3CBF0B9E32CAB9EAE1F4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-4B1-regression.log",
|
||||
"sha256": "BFBF7108CB0078C1D8DEEC84CC62B6F36545D9969F345AB95E53F3F579116D70"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-4B1-regression.exit.json",
|
||||
"sha256": "6837C37A4135E8D1A4D58B829407F80E77BAD618E023EEB2C4F05D045FB57E36"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-unity-final.log",
|
||||
"sha256": "5341517272243DF8F2DF32DCFBCA2BEF79E4A89A108F7431F45450957D418C2B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-unity-final.exit.json",
|
||||
"sha256": "517FFCA33978904A39A2C54D87B0FBA18B310EEFBFD04A748F12CF584FAD9263"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-unity-M08-M23-final.log",
|
||||
"sha256": "5EF19E3D584F74AA47B0809689419E5ADF5611771D494CC066E0C8653FF5DEE7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-unity-M08-M23-final.exit.json",
|
||||
"sha256": "4C2BE6430931829C24F94AD3C4AD999D1ABBD1516543CBDF058DA680F177922F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-live-build.log",
|
||||
"sha256": "741FD3250F763BCF43EAB487EE63C500F80F189DE515DE5A50C7DFC96B0229DE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-live-build.exit.json",
|
||||
"sha256": "0C346A79F64834BE3280AB18B2ABD6A6E27F789D87A7C34320212197949AC7BC"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,903 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"phase": "4B2-implementation",
|
||||
"status": "awaiting-independent-implementation-review",
|
||||
"generatedAt": "2026-09-23T22:50:11.9940318+08:00",
|
||||
"gitHead": "f40a816cc414fc4f30d67626d060d90fdc5eaca3",
|
||||
"gitCommitCreated": false,
|
||||
"formalRequests": 0,
|
||||
"stageClosed": false,
|
||||
"B3Started": false,
|
||||
"privacy": {
|
||||
"credentialOrUserPathFlags": 0,
|
||||
"reviewLogs": 27,
|
||||
"scope": "bounded pattern scan of selected review logs; synthetic fixtures, no real account data"
|
||||
},
|
||||
"note": "Shared entry/status/TODO/live logs are excluded; immutable review snapshot included. Author verification is not independent approval.",
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameLoadValidation.cs",
|
||||
"sha256": "6838A1ED5817D12A5DD8B0B91A4E93C7FC8C05B2AE3721346C451AC35810215B"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameLoadValidation.cs.meta",
|
||||
"sha256": "5695099BC868D6A057449D643FD0B29B767D09419123579FBE7026F1E6B1962A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/RootCtx.cs",
|
||||
"sha256": "AC666D2F1D94B41C2917DF1C609C3D57D7C0DE659BAB5883298BB76E06C62646"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Camp/CampDataMM.cs",
|
||||
"sha256": "18100CB24AA36020A72BF04F58E30D8F78F506AFB715075FB5DE14E8770EC764"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/CustomServerMgr.cs",
|
||||
"sha256": "E7786DAFEB61DE87F1426C05683CD745C41243C1F1314B2113C0FE1FF180E8D0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "A9B4A0FEB96B59A0A71C829D978B8616165AB289C014E97C3E2F8AE432CFFAB7"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/AchievementDataManager.cs",
|
||||
"sha256": "B544364F33F06E8DB82C68F57F5B63B42B09DB3B4B26546FDEAA3767CD0AB6FA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BargainPackData.cs",
|
||||
"sha256": "E3AB3F9E80509DDF959A26B8C3C2DA957B760DDC3B82A93D4160711DE31D3748"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BattlePassData.cs",
|
||||
"sha256": "A0DB928E245C36FD00C6DD2147646898045C71F48076D14656700DE76BE7568D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BuffDataCenter.cs",
|
||||
"sha256": "BF01BA7564995C1D83602E5BA32FD0F25C0B0EDFC2FCB8893FA3997C7C76B801"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs",
|
||||
"sha256": "3EE995F29639DA4A0E81D04E249DE5F8F1F958F3513A690C7B96EF7098B02DEE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs",
|
||||
"sha256": "64B4155167A1AA07A5FE0287DE7E1091AF83EF017026337EF86D2C93326CD0F4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "B3BD3C9228284732AF848B0BA6378F01B14359FAD36253DEFF78F78124A90B39"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs",
|
||||
"sha256": "E67ACF9D7D2EAE4B693566046AC0E3B2CA8284E33D79F064C03AEAC9322A3820"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs",
|
||||
"sha256": "DF16245F72E204879B9FC6B67836FE5C9245C660B4F5824579417BA89A6F8F1F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.SignupData.cs",
|
||||
"sha256": "29C7D2D14B0FB30CABDD27395D1ADDC0B091B95B35265832CDC3DD87F4251AB5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.SmallGame.cs",
|
||||
"sha256": "1CC57C337607BC8D6C80AADE6892A35111BCC92B8511A5A04FB48C5D0412E631"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs",
|
||||
"sha256": "9F7FBFBAAB175786FF7F3A87C8B01ADDA529B1F66DB9277872D5AB6C9A8F86BA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPackData.cs",
|
||||
"sha256": "567C70457350471588A1910D91C1332776A4ADCF48CD2759844E558327EC0802"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPartnerGatherManager.cs",
|
||||
"sha256": "775773CE49C4C46A0D221A34EBF6ED598F733A09C80277E5AD4F669A9FEBE269"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPinballDataManager.cs",
|
||||
"sha256": "6B9E368968F90DE34F8C332290BE14CD156A33FD3F34915E199C60C706860FF7"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventPotionDataManager.cs",
|
||||
"sha256": "F449C9A7F71BF4E0FBD69A5D825E6E99495158C3C42E84B2B5526DD1D31C1510"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/EventScratchTicketDataManager.cs",
|
||||
"sha256": "6DBA96113CC2A60E768EA7C634FEEB84089F68FD620641FA922ADB3405E08BFB"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingBoxData.cs",
|
||||
"sha256": "9DFF6E7689E8C0CA1371B660E56C1D989EFE5615A387C2D5CEC793F87EBD0B67"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs",
|
||||
"sha256": "DDE32B179C213CA4B3C7B0929FA807FFA454BDCFC490C3EA6996CBDB2AD7B3DE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingEvent_PVPData.cs",
|
||||
"sha256": "A6C2C5CCB7B90D8654589BAA51D4BD02F74F0618E69D30ECE575CF3F4B244E36"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/OfferChainsChestManager.cs",
|
||||
"sha256": "34AAFE41F880C55393F92E455C37624F6A78899E9B77FFAC318079F0C6C828D2"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/OfferDiscoPartyManager.cs",
|
||||
"sha256": "01D89A3047232B7CF691580A90D58F0D30DB3113C95E912E77BDF881E63A57DF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/PiggyBankPackData.cs",
|
||||
"sha256": "34BDC2AAB3440B0EE8606701914827EAFDEDC9EE76C633CFFBB07279737BAAE6"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/PlayerFishDataRod.cs",
|
||||
"sha256": "5B1A0567A00FFE4C6AC9EA68F2C17B8F58638110BDF80EB8289938F6AD610305"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/EventCubeMelt/Data/EventCubeMeltManager.cs",
|
||||
"sha256": "1B0C5CF5914E9D92682D113DA43330D705DA7314FD9EF492AA30900098251909"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/EventPartnerGather/PartnerInfoManager.cs",
|
||||
"sha256": "809DCE74FC58D70225E42F6DD1DD3EB18B4CFFF0B71B3FC15CEB9CE53B6D3E6F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/EventPartnerGather/PartnerInfoManager.cs.meta",
|
||||
"sha256": "709D0F3132F8FD6FC3465FA89525A91D113606A3B2C85D600A76E3B6EF9029F8"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/HotUpdate.asmdef",
|
||||
"sha256": "EE4E93C20AFA4FA199A6DEABC135C859F973AAADA4834BDCC554CCCBEBF12B15"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/SandDig/DiggingGameManager.cs",
|
||||
"sha256": "E7C63D671C883BAD12625BC4FD436468D7F2560BC63A5DB5F7D0B6FFBA56559A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"sha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/AggUserService.cs",
|
||||
"sha256": "5D3F52F1BB091225A318543D8FC500F4B362B4E979C83C6DC981D4C202BC9297"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/ClubService.cs",
|
||||
"sha256": "DC94626E1F386F17FCCA3D3C12D357FE95CEE8E5F50A943E73770399F3B2CD42"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/FootPrintService.cs",
|
||||
"sha256": "F1C5D2DFCAE37A7C124A2D46711DC5DEA31F025083EBBF9D60528C096CCB31B8"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"sha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs.meta",
|
||||
"sha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"sha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs.meta",
|
||||
"sha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs",
|
||||
"sha256": "D3C9179594392FC0E624266CFBB5020EEC76D4E00B110B36D99457373F914C5C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs.meta",
|
||||
"sha256": "535C8F9874260A972C09DD26AD19EFDF5792C90A8455AC40B2AA6A5D8047DE65"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs",
|
||||
"sha256": "0C250F2997CB30CD2E2B950E51F3FB17C7ED45206A696CEC54C671D15F7A0AD0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs.meta",
|
||||
"sha256": "88540CC7F0478280997283ADBE4469E725112C71B59717797EEEC16D816E4B00"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"sha256": "CC4725497B0CB8CBFDE8E0A5A32DFCFC2C101B9306AFD9F5BDCA41A49727E897"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs.meta",
|
||||
"sha256": "B0D71FC155FF15C31B05F52A2CEDBE5F4F6EBC3AE1905D070A6BC6C73F4CAE52"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs",
|
||||
"sha256": "C22524279905407EF64957BFC6B853A4B24F9B1B15A2B55A1038558DB5649AB9"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs.meta",
|
||||
"sha256": "5B7E6C662C2C4BEB362868FA0C7305AB35E91ADCB8E88AFCEF8F6131A0EC0425"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs",
|
||||
"sha256": "18ABD846BE9FA9F1A0828ADD8B31CFED1EBD1A0F3114ACBA17B65ABC2AC87B10"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs.meta",
|
||||
"sha256": "9F739CD65CE2CC71E13659CBB294BDC806B0C93FC4C30A61982C4F72B0D52DAF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs",
|
||||
"sha256": "C7EB34DB6FB42A44E9D930592D2928CC96CEC4D1D532A66A3207E82F263C02DB"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs.meta",
|
||||
"sha256": "EBD0D67CCA2311F728E4B1D44A87A76E5586D27E1E259C706427CE7461585D69"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"sha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs",
|
||||
"sha256": "4C7D49032229B2CB85DCA0ED5D711181239DD22DCACB4B0624D2A96AF99A691D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs.meta",
|
||||
"sha256": "A163CBEFA86D826B76CA4CDA21F8A8DC4B32FF813D668D1C0EA151856C7D779F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"sha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"sha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"sha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs.meta",
|
||||
"sha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
|
||||
"sha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs.meta",
|
||||
"sha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"sha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs.meta",
|
||||
"sha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "60308BF5B910131C3C815298F4AB3CC8F94BD647482AB6C0E20A5CDBF17892D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs.meta",
|
||||
"sha256": "EF0965FDDF7E9989AD14000CA474FD579B61B852C5A2B9F58EBAA8CF20A93A5D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"sha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta",
|
||||
"sha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs",
|
||||
"sha256": "4CA9538F432F4FAA7029E2A5A22B0F4D45C3B39E1E676B60058B87928B559483"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs.meta",
|
||||
"sha256": "5A987A1767ABC28789B1129FB989A7675F56F861B80F2B11C5763CD6DF09AB91"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"sha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta",
|
||||
"sha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"sha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs.meta",
|
||||
"sha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"sha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs.meta",
|
||||
"sha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.cs",
|
||||
"sha256": "653A6BABF45FB08D4921B54A82A40274AD9774BDBEF907E0BFEAFDD15F76A57C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs",
|
||||
"sha256": "7F771A8DF3504521876C19BD00636FD2F2B20B8BB2EDA87B11D71959501BF4C3"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs.meta",
|
||||
"sha256": "88AB5B49AF397D0D1B5228D1D1056B772DE5B9C96998908BF05AFCF9F3BB8448"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"sha256": "23282490F95581BEC6C89857CBAC292D4971771F881B284632C4E0677A0E8B83"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/PinataPack/EventPinataPackData.cs",
|
||||
"sha256": "F4FF92A9B1052966C691537334E1D6BF745E23844F935C49368F81E0D2383BCD"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/PinataPack/EventPinataPackDataManager.cs",
|
||||
"sha256": "2C86A0FADC11BD017288E5AE6362CA86489AE89CAAF87928B6BEF0B78DF41FB4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/ShootingRange/ShootingRangeData.cs",
|
||||
"sha256": "E0D78FF288797F0E523DDA7A29EA80522C7DB0B4FD5AA325FE03A7008E57C12E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/BlackFridayCouponData.cs",
|
||||
"sha256": "8FCA6940B5D0867894EA9A6F358B4FD62ADCE76FCD050A457AE3C37D227BD365"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/ChainPackWithProgressData.cs",
|
||||
"sha256": "CBA7666284FCF7207371BDED1A1930DB3AC2789F5D0696756AD8F8ADA39FA0E5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Shop/ThanksGivingPackData.cs",
|
||||
"sha256": "FEA66AA6CC13880FDFFB35C1C1F66BF8EE9E3D96CF80150A5633FC278D406A3F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4存档调用盘点-2026-09-23.txt",
|
||||
"sha256": "DD74B64CCD1E8BA172826B9C0AD939DB4DCADF12C33C031F6AA91EE8387E32F5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4存档接线分期与4A方案-2026-09-23.md",
|
||||
"sha256": "024A351F8FBBFBD90FD8EF6E02AFE990F8C8742114AF38C17D211FCF77C17DDF"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B1实施复核裁决与关闭-2026-09-23.md",
|
||||
"sha256": "953048E94D140E676F884DE4D9E7A695143026E8076DB5D122F537663CD8310F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2初稿审查裁决与修订说明-2026-09-23.md",
|
||||
"sha256": "8A27E43F453A517EE1062ACE47DD80C97093C359A8067A1BC36FF371F0913896"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2当前TodoItem-2026-09-23.json",
|
||||
"sha256": "2D457281080EE5F164FD1CE2A8358247373B9CBF36BB556520649592EE994968"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2方案独立审查-2026-09-23.md",
|
||||
"sha256": "668C089721D7918AEF3EFB319C998B7BC641EFE400D9137E554C294E1BCBD70E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2方案受审基线-修订2-2026-09-23.json",
|
||||
"sha256": "CD6306401F6FEEE6509A8237E89BCAF1D5812E444FAE3E98721B025AE7EC74F1"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2方案作者自审补充-2026-09-23.md",
|
||||
"sha256": "871FF48839FEC190957417A5937A1B8DCD07F6570DDC892834458ED0F1B9F186"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2检查点2配置隔离与鱼数据派生独立审查-2026-09-23.md",
|
||||
"sha256": "3149293B06A663B65E27C5C0E1B34FDD4AFC95F86CB4A23FFDEED71CBD97BB3C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2检查点2配置与派生差异受审基线-2026-09-23.json",
|
||||
"sha256": "608424E9F3266D7A6EB7BC7EDB5938563A79E2400344AB2D981A020A9CFCF102"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2检查点2配置与派生审查裁决-2026-09-23.md",
|
||||
"sha256": "FFBC98B9D26828E7EDFBA54A277B062D8755324A6D861215AE65AC07D110AB28"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2交付与验收矩阵-2026-09-23.md",
|
||||
"sha256": "26DFE03DC08E0E03F10F10E565C445C789788F0453DBF5CE624D7241CD9807E7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2实施记录送审快照-2026-09-23.md",
|
||||
"sha256": "4FA2298767C7D894DF8CAEC146683FAED1B60702ED5253B5FEE6201AC1B8BB39"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2限定代码自审-2026-09-23.md",
|
||||
"sha256": "760C5A18394781BD74DF80F982C642E7C646C23E6EE534E4108FFAAE0671FF6D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2游戏加载与内存隔离方案-待评审-2026-09-23.md",
|
||||
"sha256": "8992B17D8B1DEAAA99D7DFDCC76AE2D21112FC259C675F6EDEB9205643C9803C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2游戏加载与内存隔离方案-修订2-待评审-2026-09-23.md",
|
||||
"sha256": "69CD69935B503742065F6D783FC6F9E87CEFCC5FF5C3A83F4F3D605B4C07CC30"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2字段与模块加载合同-2026-09-23.md",
|
||||
"sha256": "9E1A49E389CD6E9B38FA2CB55E5839ED5356E915AECCD4787FFE6F8276340745"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2字段与模块加载合同-正式版3-2026-09-23.md",
|
||||
"sha256": "2DB02D14C9C06472960591B265B80500A3CE389C6BB20E935CDE45C7F0B707A4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B分期与4B1登录存档准备方案-待评审-2026-09-23.md",
|
||||
"sha256": "42EF64F0B96ACFE947C7A2CCAA2CF1B39BDEACF00AB29E4C93F82A284A4606A5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B2方案-2026-09-23.md",
|
||||
"sha256": "3E667B519C57F48E3462C1EFB44A5BF2E481C1A5DD2DD2C467EFCCBF3EED9AD3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B2实施-2026-09-23.md",
|
||||
"sha256": "0E5F6F41F86569540AB04C04BE54A70BFE3653974600D014A518D2B6C8929463"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-4B2修订2方案-2026-09-23.md",
|
||||
"sha256": "30E55C7DA042131027A261A9E271C29A59F47AC6E607F087B1E874DFD3C4A5EF"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/ClubRegression.csproj",
|
||||
"sha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/Program.cs",
|
||||
"sha256": "E7AF3AF2C0B9ABE5D79E7D6AB4D28EC1D7A61D52D6D01354A3B1AACA38A0A5AB"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/ExitTests.csproj",
|
||||
"sha256": "BE85FF83CA411C1524D2586F2396CDAD790F48BC417E030C228F2E538C537665"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/Program.cs",
|
||||
"sha256": "6CC1D07330F0A871EAE93B6452C4070677CF60B1EA6184715ABF5386BBF24AC8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/HomeExitTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/Program.cs",
|
||||
"sha256": "546821878709B298CF39F0B13CF403A02364EC87F216A71FF8DBF113B65B4FDD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/HomeLoginTests.csproj",
|
||||
"sha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/Program.cs",
|
||||
"sha256": "57EF5CE9E3884B8E2C64D69F04B2C555DB490054A87FF0A8F8B25043C6262471"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/KVContractTests.csproj",
|
||||
"sha256": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/Program.cs",
|
||||
"sha256": "7DCA39AC8377FB7E942A057B4CF21083586362911F22DBAB1049DC40E63483F0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/KVGameBridgeTests.csproj",
|
||||
"sha256": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/Program.cs",
|
||||
"sha256": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ActivitySchemaTests.cs",
|
||||
"sha256": "7C66F6684305DF9507C0C430D0A262BF2941B43EB33B76A57BDA85F6B4ED9394"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/AggregateTests.cs",
|
||||
"sha256": "244BB326AE01FC796507E19E9A56D3E23964F3B714A0CD1BD86BEA2258A28D4D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/baseline/ClubService.cs.txt",
|
||||
"sha256": "70908AC672CB3F9BEC07D714469847637A3CA4BF841016C0F85B4319597618AD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/BattlePassSchemaTests.cs",
|
||||
"sha256": "033B379212F431C6F7DA4E6AB372665FBD7CF6179F72BB90E1125629B28FB96D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/BuffTriggerSchemaTests.cs",
|
||||
"sha256": "152889F543F9DC4EC3EFAD0CA0B46A09DB54353F941E8AE6CA7F3AC88FD0E9B8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/CampEventSchemaTests.cs",
|
||||
"sha256": "DC5CF5CB0DCBE6927A9E67541F975665E0EF2C29BBEB9783C0E93ABFCAECA896"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-D4-dependency-conclusion.json",
|
||||
"sha256": "D04E26EE22AC89E835B3AF5E393556235817A013E8F79C86D412A155C70D02B8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-D4-imported-dependencies-final.log",
|
||||
"sha256": "247B104843223D31DB1D6BC7D71746163BC298FA7CD49E8A2F0CF61391E9525B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-D4-precompiled-audit.json",
|
||||
"sha256": "D04E13D77C6BDA5655A9A9A0E5200F0C0255FC7C9E4D53B83E2555E2731976A2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-D4-source-references.txt",
|
||||
"sha256": "8842860DA8A813BE916DB5E46E7BFDAC1EDFAB013DCA1EF0E5DD597C35611E94"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-D4-unity-hot-real.log",
|
||||
"sha256": "9E5CDECE6469E39AA277220C3E42C3979BFE511741603261F6EC0E27C57CD4D2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-D4-unity-real.log",
|
||||
"sha256": "9E5CDECE6469E39AA277220C3E42C3979BFE511741603261F6EC0E27C57CD4D2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint2-D5-rounding-real.log",
|
||||
"sha256": "63538F79F9FB13D9CABD83FADF5D40E5A61E410D44B6FB2119CF75F9B4E2890F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint3-exit-final-regression.log",
|
||||
"sha256": "0E193CA374CDD58EBC9A6E4E00BF115100A844CF47ECF47F6D77CDDC005E263F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint3-minimal-login-regression.log",
|
||||
"sha256": "F981DA7ADAB7DC97F2BC80E78ED7D1C109F74FF948B84519601FCDCB591150B3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint3-network-regression.log",
|
||||
"sha256": "35FF1FB8B566B0D03E10CF7A3FF9CEBD40397C2F21FC3A273EFD4585B62BD4AA"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-boundary-and-evidence.json",
|
||||
"sha256": "8D6714E8B0D012CAADB33B2AFC879520736712CEF8B382FD3B087BEC74490D7C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-cleanup-final-apply.log",
|
||||
"sha256": "76CCAE070817EDFEC015DA87F81502F00DB13EDFAECD36D0846EAEE7FEB34CAC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-cleanup-final-prepare.log",
|
||||
"sha256": "B0FE1ACFA82A50FF187B38DD32A4A5FE8AF8D052AA84B5F73E8E25156DCCDAC1"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-cleanup-final-schema.log",
|
||||
"sha256": "D6C734E58EDF08995D72A9825917FB9AC2EED327E3CE7D1C4E1076984D1977E0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-final-unity-cases.log",
|
||||
"sha256": "C16C93D48826205623BDA220D82BB709F0E27B96799E9F98561605CB9FF9DBBC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-final4-compile.log",
|
||||
"sha256": "CABA7421B81F2A0B21EB4DCF970A1CB944686876314AE069E27249B890F6B225"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-network-build-final.log",
|
||||
"sha256": "C09B3F8129593863479D3333E5C2FEB7FFE35526C911EE44B8D051C6E1C7F491"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-noneditor-factories.log",
|
||||
"sha256": "1D052A32B3967C4499F15E75E6F11470F533F56338AF1D38D395DD020871031C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVContractTests.log",
|
||||
"sha256": "32E6EB6E1F50725C8CE862A39E8B7BF9157B180BB4A2B82DA57266CA4F1054C6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVGameBridgeTests.log",
|
||||
"sha256": "B1EAC4C9C0B39A63134B42CF20B6C7F27315EAC5EC404F3FDC95BFFEED7FEDAF"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVLiveTests.log",
|
||||
"sha256": "5EB25C745676EC0B00AB12C01F76ADE84EBD143D53264BC2A547DADA233A8737"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVLoginContextTests.log",
|
||||
"sha256": "94FC909BDE0D77C153B3B900D05D3C52C7A5C844A8FC58C455F552FC54AD0013"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVStage3CTests.log",
|
||||
"sha256": "992DE031E722E77F48A4011843841D8C8BD320FAC1FB97D343B5D2418201B269"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVSyncCoordinatorReviewTests.log",
|
||||
"sha256": "6B0A183EBBC030D90458E39E0A241829813AE2C8DC082E0DF677B7A1FF2CFEB5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVSyncCoordinatorTests.log",
|
||||
"sha256": "C300ACBF55F80941D1BBAB11994B4D14066BF02629B5D74B6CAF8A428245DBEF"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVSyncTests-serial.log",
|
||||
"sha256": "1EF88B25E93F8092534BFB67B9DFAFEE96403D690B05F8B760B6719C3A0D1A09"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-regression-KVSyncTests.log",
|
||||
"sha256": "F178ED79C388D8FA2AF337E89B93609E0C813547D07FA5CA128A1A52740403FA"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-release-full.log",
|
||||
"sha256": "D3A5FD96197E47771A03F6FD2D698A2160897F7E0E606CD36FBA7C9C07089BCF"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-release-offline.log",
|
||||
"sha256": "1D6C4926EEA791C43264600346FFC8408BB1A8161B5B14CA7574372DFF3043E5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-service-release-false.log",
|
||||
"sha256": "D5A65C89C1EB161865ACB8352A71F229CCEEE1D8F737BD1CD4D44A0286150EE7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/checkpoint4-service-release-true.log",
|
||||
"sha256": "D578163A014E827E78A929A7A4D233F38BBD3B9E2EDCC29A908ABA685777B2BB"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ClubPackSchemaTests.cs",
|
||||
"sha256": "295C14C33605EB3FC876DA16E930CF674CD13469E330020DCE8F8EFA5248D55C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/CollectionSchemaTests.cs",
|
||||
"sha256": "A72D21582289EE0FF95C816EB9C2FB5C813523313B63AD6E2188925540B92CD0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/CoordinatorTests.cs",
|
||||
"sha256": "89F234DF55FF31D05D71FDEA00D05F590BF3D32C0FF7F3D5D32C6F551ED1F4B2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/CubeSchemaTests.cs",
|
||||
"sha256": "01B9697D351D1673E9663663669DFAD58D0178F0C9C84C2CD3878EE351378B32"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/D3SchemaTests.cs",
|
||||
"sha256": "83B813DFDCE2022CE9B832E5D77999548E154C90E4853C722EF3D7061171C5A4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/EventBaseSchemaTests.cs",
|
||||
"sha256": "EC6312B506C29F4018757621A77444DA835FD2A2525805792967C8E607EB82D0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/FishSchemaTests.cs",
|
||||
"sha256": "3CC3CFD290EBDCCF3A188E7BD82E2B685C3E77B154BE4C896E352090D09C2E07"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/KVGameLoadTests.csproj",
|
||||
"sha256": "C0BD09B3B21015AE951D75F3FE57A39AF56CC3CFF6D0C5E2EA2776DB0C6D812D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/LoginSchemaTests.cs",
|
||||
"sha256": "CC7C1C7534F899D6239FC031F577AB7773FB9A8966DD9DE5B34F652458289486"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/OfferSchemaTests.cs",
|
||||
"sha256": "BDBED6327BC56D25130F83E64A64A7599289D3AE450AEE2AED1D1A2DA7223D63"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/PartnerSchemaTests.cs",
|
||||
"sha256": "C5EB4D1EE612E4B5C4C2D9E0D179AEE6A9A5ED51A567CB32F31B97BEE7719AB6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/PinataSchemaTests.cs",
|
||||
"sha256": "A48FF9FF4822FEE970DD352D2703F1BCDF1D44B490DE00148B562C4F1CE38306"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/PlayerSchemaTests.cs",
|
||||
"sha256": "1B63814F9ABCABC0332C5F4E32483DDD822CAEC7479B6ABC87BA2B5D01593622"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/PotionSchemaTests.cs",
|
||||
"sha256": "F3ED1FFA03AC09EDC10095A76C7E711F1A87AD6F7E6407A1C5798C92CFFABA8A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/PrecompiledAudit.cs",
|
||||
"sha256": "584FE2A710290DA404A75223061DA8AE39A714E9C28ED8C30E84CAEEE7C7A0FD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/Program.cs",
|
||||
"sha256": "66ABAFA38CB9FFAA8B81AA328FC371F7603740A09DCE162D88244BDDE77FA9B6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/RegressionSupport/Dependencies.targets",
|
||||
"sha256": "3884D8DC8124E8E308B0B47337B783859813AD85AE9AAC3F2295F4D29C424D73"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/RegressionSupport/ExitProbe.cs",
|
||||
"sha256": "E3556D8E6118067F5EEC096815DCE94A8F5166CF93BB767846DAB0FF2D1B4C3D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/runs/20260923144334_75379546c3404789b03c7a27ddea7784/result.json",
|
||||
"sha256": "C2D1BB4F0BC3A952CD902DD1EE5D9A94D75DC9020598AD2240299A3FCFDB8847"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/SchemaTests.cs",
|
||||
"sha256": "2B548BA6586818A00C0C81951F42EE989B6A80911D3E61B98D5B07EDA1568A73"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/SealDelivery.ps1",
|
||||
"sha256": "1CB6DCDF5EB78400219AA7578A0DCD04F5A7868C81E2AE8FA93670BFB2591B28"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ServiceHost/FactoryProbe.cs",
|
||||
"sha256": "E799A27F60433D975388199BBF4E11F43CDD064B998FE27FBD96AF3F5A6E4D97"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ServiceHost/Program.cs",
|
||||
"sha256": "4DF237333A17B1CF9B885E7824F20061A210B1CE510EEE7225F7F51BB87439CA"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ServiceHost/ServiceHost.csproj",
|
||||
"sha256": "F82997A8F2DF82C145B0D9CABA4F639BB6E0C168A5DEA32E3474F8B221A44D3F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ServiceHost/Stubs.cs",
|
||||
"sha256": "89B310ED697BE1F18B1C4764A728B7F73A6E9A5469F66BB52D849C5713C48A79"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/ShopSchemaTests.cs",
|
||||
"sha256": "4D3F765DB7F7F2F893594E70758C44F94B79B5131DDC1AFA5EAB8D5444043DFB"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/VerifyBoundary.ps1",
|
||||
"sha256": "23EF471A6AE6FF666501514E5F9E80DAE5877205D36A48B0B915572B11C511A3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/KVLiveTests.csproj",
|
||||
"sha256": "5C82D8CCF11C8B99715D76A371590646F811BB2836A6BFB22824E9F047C8E87A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/Program.cs",
|
||||
"sha256": "09823E73095B5CA2601A6A768FB8AF2487E58986754DD6603A4AA78CB41FB835"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLoginContextTests/KVLoginContextTests.csproj",
|
||||
"sha256": "9D5FA72EEC244192394074DA68C5C200A5288D8C9EE2691A8D0288F250F7DCCF"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLoginContextTests/Program.cs",
|
||||
"sha256": "8A557D489790E3AF5638BC124FF5084458081B929F1A810FECD5D36D361AB139"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"sha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"sha256": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/KVSyncCoordinatorReviewTests.csproj",
|
||||
"sha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/Program.cs",
|
||||
"sha256": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj",
|
||||
"sha256": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/Program.cs",
|
||||
"sha256": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/KVSyncReviewTests.csproj",
|
||||
"sha256": "99F47D2F16BDFDD96712DE6962AFFB18DE335434AF37C1D7E683E4C40250DF6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/Program.cs",
|
||||
"sha256": "0174C63FFE7D8E32933C5FA5FFD185D56646DDF14F39BFC81BF6A46FA0426BCD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/KVSyncTests.csproj",
|
||||
"sha256": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/Program.cs",
|
||||
"sha256": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/LoginActTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/Program.cs",
|
||||
"sha256": "A858292D8FD17744D02370D14119A11A80A43A46BC3D2E9FAF35E14284493D3A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginRegression/LoginRegression.csproj",
|
||||
"sha256": "76E5F2378DFDDF14147898E703A2D847CCBA341251DDB144DD861992DEA72F66"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/LogoutStorageTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/Program.cs",
|
||||
"sha256": "E954B85E96E0A0DCE8A10099727BEF1E3B895F9E1AB5EDDA6151BE824DC3CB89"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/MapExitTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/Program.cs",
|
||||
"sha256": "9486BB64F8A24B52900F3AEC41790315D117263C83791D66D56E636DDA025A8E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/MinimalLoginTests.csproj",
|
||||
"sha256": "3F9945196BBF05DB9BE08029E6FF77EFD5C5A061022C452E0278DFF6EAD95C0C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/Program.cs",
|
||||
"sha256": "0799A5480D2215735CD9E8F703FC8727FED406CC0C11FAE6A1A707ADF5DA267F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/UnityReferenceCheck.csproj",
|
||||
"sha256": "38ED14F27451795A5A6048EDE6E2336E2EE863A64D63814D6B15A4D85D878752"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/NetworkTransportTests.csproj",
|
||||
"sha256": "171C5D091C4C567B17E56627701A20801DD39E50D1238A67E3BB8EF937198250"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/Program.cs",
|
||||
"sha256": "BEE6B2416E71483AF27A0F9269886ECCD9D6152868EEBA38899A98A3680E2783"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/Program.cs",
|
||||
"sha256": "99F5BB5B6B80DB1A1F3CCAA0454A0C0170FD7EB18DB240542DB34DC32D8C349F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/RealtimeTests.csproj",
|
||||
"sha256": "B2441352FB71097AE043DF45866E9BDC61F1908B751DEDF8F2F63C439F80EA2F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/Program.cs",
|
||||
"sha256": "1DBDCA00429982B9516E9B726C2E411E85E241CE15D6D222D5B9456331BD6A15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/ReentryTests.csproj",
|
||||
"sha256": "2C7EE19DB4C089FD2B38E9E99CF8B22FCFC05E4B66ABF47E040F69213F575A32"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/Program.cs",
|
||||
"sha256": "351BAD9C19A29B3307C021BE70103DBB88A89DF8E9F03CD30D6AB5DA68C1E74F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/ReviewLifecycleTests.csproj",
|
||||
"sha256": "42C3CBA40FC51390517B4AD9E0BA64C59D6AC8D014EAB3715627C6B54EE316E7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/Program.cs",
|
||||
"sha256": "765CE60B346FC5867F0D739C4578C475792D2C0E94CE46E6757FDA2910A427E6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/SoundExitTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,373 @@
|
||||
{
|
||||
"scope": "One Advert nullable field and 102 original 45-key proposal; no import executed",
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "0ECA65FB6FD41ADBBEA6550F5ED24B3072759C2FEECBE8F0936C48DC0FCAFAFA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs.meta",
|
||||
"sha256": "D2C4D94EBBA78879954CC97CCD81A5CDF549A894EB85120499DAC87FC63D9727"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/Boostrap.cs",
|
||||
"sha256": "B6C68226B315DB594D87A0E955071631A97C4ACB6F565C632DFC631F4C186650"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/RootCtx.cs",
|
||||
"sha256": "AC666D2F1D94B41C2917DF1C609C3D57D7C0DE659BAB5883298BB76E06C62646"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/CustomServerMgr.cs",
|
||||
"sha256": "E7786DAFEB61DE87F1426C05683CD745C41243C1F1314B2113C0FE1FF180E8D0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "E75C8BEDE21878286EF4E247BB3BE24CE81B81BFD1EEB3106E7B10468FFA9195"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "ECAD77F8AA1B15663D91F444072EE2958CB7FBA874374AC353BCCFC59C7351B0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "010C0F0630EF1F2ED1F3F42456189761B73A24E40CE089DF801F3FCAAECE7BBE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"sha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/AggUserService.cs",
|
||||
"sha256": "2E9DDD2A27D1080EC78C66ABDC31E444A176869C3FF737815F12D114EA3A3C6E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"sha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs.meta",
|
||||
"sha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"sha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs.meta",
|
||||
"sha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs",
|
||||
"sha256": "D3C9179594392FC0E624266CFBB5020EEC76D4E00B110B36D99457373F914C5C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs.meta",
|
||||
"sha256": "535C8F9874260A972C09DD26AD19EFDF5792C90A8455AC40B2AA6A5D8047DE65"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs",
|
||||
"sha256": "0C250F2997CB30CD2E2B950E51F3FB17C7ED45206A696CEC54C671D15F7A0AD0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs.meta",
|
||||
"sha256": "88540CC7F0478280997283ADBE4469E725112C71B59717797EEEC16D816E4B00"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"sha256": "CC4725497B0CB8CBFDE8E0A5A32DFCFC2C101B9306AFD9F5BDCA41A49727E897"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs.meta",
|
||||
"sha256": "B0D71FC155FF15C31B05F52A2CEDBE5F4F6EBC3AE1905D070A6BC6C73F4CAE52"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs",
|
||||
"sha256": "C22524279905407EF64957BFC6B853A4B24F9B1B15A2B55A1038558DB5649AB9"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs.meta",
|
||||
"sha256": "5B7E6C662C2C4BEB362868FA0C7305AB35E91ADCB8E88AFCEF8F6131A0EC0425"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs",
|
||||
"sha256": "18ABD846BE9FA9F1A0828ADD8B31CFED1EBD1A0F3114ACBA17B65ABC2AC87B10"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs.meta",
|
||||
"sha256": "9F739CD65CE2CC71E13659CBB294BDC806B0C93FC4C30A61982C4F72B0D52DAF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs",
|
||||
"sha256": "C7EB34DB6FB42A44E9D930592D2928CC96CEC4D1D532A66A3207E82F263C02DB"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs.meta",
|
||||
"sha256": "EBD0D67CCA2311F728E4B1D44A87A76E5586D27E1E259C706427CE7461585D69"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"sha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs",
|
||||
"sha256": "710A0050277BE07AC781F976945D8D2DDF7704EA616D0BF83797ABA2FA6530EA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs.meta",
|
||||
"sha256": "38A88CB1E5F7266E7D4828D082614FE8ACAF5887B96994BBFDD41CA5983014F3"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs",
|
||||
"sha256": "4C7D49032229B2CB85DCA0ED5D711181239DD22DCACB4B0624D2A96AF99A691D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs.meta",
|
||||
"sha256": "A163CBEFA86D826B76CA4CDA21F8A8DC4B32FF813D668D1C0EA151856C7D779F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs",
|
||||
"sha256": "C9C76A16F61CBC3CC748A0F44B581508B4178E7F322C43C8F05E2FC8707345DC"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs.meta",
|
||||
"sha256": "71D52DEC2CBCD12C6D049D212C05CAAA84DBC0224996C2905F45172F87A2FE8A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"sha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"sha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"sha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs.meta",
|
||||
"sha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
|
||||
"sha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs.meta",
|
||||
"sha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"sha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs.meta",
|
||||
"sha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveRouteEditorValidationHost.cs",
|
||||
"sha256": "9FE2066CDB2BA74F8C515B82844E96C3A336220CEC7C3622E6B134DAB81BB8BF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveRouteEditorValidationHost.cs.meta",
|
||||
"sha256": "B7C49EF3E8E0EA47BACE757672043FC4311DEEB99CF77D5237713523A8C70CA3"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "60308BF5B910131C3C815298F4AB3CC8F94BD647482AB6C0E20A5CDBF17892D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs.meta",
|
||||
"sha256": "EF0965FDDF7E9989AD14000CA474FD579B61B852C5A2B9F58EBAA8CF20A93A5D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"sha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta",
|
||||
"sha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs",
|
||||
"sha256": "4CA9538F432F4FAA7029E2A5A22B0F4D45C3B39E1E676B60058B87928B559483"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs.meta",
|
||||
"sha256": "5A987A1767ABC28789B1129FB989A7675F56F861B80F2B11C5763CD6DF09AB91"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"sha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta",
|
||||
"sha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"sha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs.meta",
|
||||
"sha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"sha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs.meta",
|
||||
"sha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "5280FA3F592C7C5EC784B5FFDF406E89C65A09E76DE8B56801B48158294EA88D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs.meta",
|
||||
"sha256": "8C935879262BADB49D4B099481999C5D1F5BC58AFBD5FA544CEAD7D193CD426B"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs",
|
||||
"sha256": "45300AA455CF43C07286A442E7A2C8534B3654C4AEB8316CA5EB3A20593AEA0D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.cs",
|
||||
"sha256": "C9CA1187442C420762BF6032F92266CB4E31F801C034E4C7919CD87F835FA915"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/AggLoginAct.cs",
|
||||
"sha256": "18CC24DDECE0DA9C8529D14CB2A862B14A0F74D33128E7B060FF628306F2463D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/FishingStage.cs",
|
||||
"sha256": "A79E40F3CD633DD3814FEFCBF5654E0B5B68B8F5D41DE50857039C53EC62EF2F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/LoginStage.cs",
|
||||
"sha256": "D95641EEB076B75D86F57855F71B4F83894519CC6F3890F1919490FB2FF45C45"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/PFLoginAct.cs",
|
||||
"sha256": "66551CAE81F77A7DCCE4D4D484A36C3D7D06B256B8B80FAF79B99A582FBD4412"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"sha256": "5809EAE0E61C3310E94AA1918CFE6801DD01241FB9743AA60CDD09269F84194B"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/SubBoostrap.cs",
|
||||
"sha256": "B62354B0761DCCD445A19C25D7379ACB71FFF2FD47D07BEB2101E5A79889D381"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Rod/FishingRodPanel_Level.cs",
|
||||
"sha256": "045D5854B19D2F5D0A44D063023D293C454ABC5409762F722A0C321E4BC81044"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Turntable/FishingTurntablePanel.cs",
|
||||
"sha256": "5A92713B981AF04C219741DD0C67DD542EF6241261662E952CD8EC3EC97AC7D5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/102-import-proposal.json",
|
||||
"sha256": "482BC3FBFE508B075AC3DF38389E38576E45EAC46029E65D58650D44130AFB7A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/KVGameplayLoopTests.csproj",
|
||||
"sha256": "CBA37BA9BC540D115F7BC788FC5E29F3B7CFFBCE708EE60EE7842E58DFAD89C9"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/PFSourceBackup.cs",
|
||||
"sha256": "93D5F00F4F8E466801ED7C7BBB7EE0CDEFEB3CE52DAA1EFB58BE9ADA6FF385C6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Preflight.csproj",
|
||||
"sha256": "C134F4E9FA0DFA94ED594C5C927429E9408055DC6C7B5577972D3CD8EAE03F32"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Program.cs",
|
||||
"sha256": "B41C10176B98746DA79BF224289BCBBC012F3534B8113295C54CA90FE54E9E9D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Program.cs",
|
||||
"sha256": "F9DB1C884C8CB6F936BD3CDCF1C28661582549193388F4A6251B4DD8CB8F4848"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T035000Z/102.json",
|
||||
"sha256": "A4DA163C8E53A171AA74485F2DCA4FE92303F7E6A8573A5FFDBB90A711B1F402"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-source-audit.json",
|
||||
"sha256": "2AB1A213216C105408A6F7604118CF1B2E41307B23DE5D993D999F6B589E1822"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-compile-final.log",
|
||||
"sha256": "5408C2E24B7BFF9935D9D6FDD4CEA967B1FC0FCC3BA0A41F0646C8231495E996"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-existing-regressions.json",
|
||||
"sha256": "18AEF3DC86692E6A6558ED0C61FF3A8DB125D4A87A4FE7E1BFEC2C0E188809A7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-loop-synthetic-retry.json",
|
||||
"sha256": "0ED96E50C1107B8279EFE32176DB66AF5EA08670534FB3ABB9727695304AA41D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/102.json",
|
||||
"sha256": "827F36084648449CEFAFB96B3CE62093DF70B8A87E33A526DA5B03A9C135A377"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-schema.json",
|
||||
"sha256": "6E475CE8820697C4C6B3311A8C5212B604598AC76CF093F637A235092C20A873"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/source-inspection-compile.log",
|
||||
"sha256": "CB11A5F5F287FF231B698387DA952DD2CD64452C20EAB4C3CAB836BFFBE9D37D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/supplement-equipment-verified.json",
|
||||
"sha256": "421335FBC9DE6A0DFC9FB7F5D63EFD0E2BF68990DC5FB66671DDEFD78C456220"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/supplement-source-audit.json",
|
||||
"sha256": "4D1D1602E36F61C18AA4256BA2FC7F09320465EF7D4F82B02B3310523176F4A1"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-loop-synthetic.cs.txt",
|
||||
"sha256": "937FC19A238E981B281751D6E20B06080AB68FBD98719A0935A72D9CEE1CEE01"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环-102数据准备与cdTime最小兼容方案-待审-2026-09-24.md",
|
||||
"sha256": "EC4733E105A44FB8C7797523854D341716B2C3B1C2FD31F1A3AD402C3A7E82C8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环-实施进度与最小补充审查-2026-09-24.md",
|
||||
"sha256": "505641026FEAE2B4E28FDB34869C0F4308FE4A9B98A6B74ECFD2182FF07A1078"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案-待评审-2026-09-24.md",
|
||||
"sha256": "0A0B5D87D88CB5A87729FC273155883228005A878DEF53F93AD7432964B6200D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案审查裁决与实施批准-2026-09-24.md",
|
||||
"sha256": "F4DF8C8D98720DCD42CFB5BBC266569D01FB6BEC435FF69688D102600F8E85F7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案独立审查-2026-09-24.md",
|
||||
"sha256": "A617DC9CE3F355D5F31AF88167577471363457D07B36E32CF5683D4E2CE125CC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环最小补充独立审查-2026-09-24.md",
|
||||
"sha256": "23CA8B50FFE7D2C9625A5FE32E6AB06E5AF0282B6923E0822D213352026A7F78"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环补充审查裁决-2026-09-24.md",
|
||||
"sha256": "F4013BD70845A7BEB85E06A12E3713C03B63F1D90CD2357CACACC9F4D38FE451"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
{
|
||||
"scope": "M24 minimal supplement; R1 implementation not complete",
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "169CE5508884BD8CE29903B04C630AB96ECCD46FC3AA203A26B933A950F8E330"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs.meta",
|
||||
"sha256": "D2C4D94EBBA78879954CC97CCD81A5CDF549A894EB85120499DAC87FC63D9727"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/Boostrap.cs",
|
||||
"sha256": "B6C68226B315DB594D87A0E955071631A97C4ACB6F565C632DFC631F4C186650"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/RootCtx.cs",
|
||||
"sha256": "AC666D2F1D94B41C2917DF1C609C3D57D7C0DE659BAB5883298BB76E06C62646"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/CustomServerMgr.cs",
|
||||
"sha256": "E7786DAFEB61DE87F1426C05683CD745C41243C1F1314B2113C0FE1FF180E8D0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "E75C8BEDE21878286EF4E247BB3BE24CE81B81BFD1EEB3106E7B10468FFA9195"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "ECAD77F8AA1B15663D91F444072EE2958CB7FBA874374AC353BCCFC59C7351B0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "010C0F0630EF1F2ED1F3F42456189761B73A24E40CE089DF801F3FCAAECE7BBE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"sha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/AggUserService.cs",
|
||||
"sha256": "2E9DDD2A27D1080EC78C66ABDC31E444A176869C3FF737815F12D114EA3A3C6E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"sha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs.meta",
|
||||
"sha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"sha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs.meta",
|
||||
"sha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs",
|
||||
"sha256": "D3C9179594392FC0E624266CFBB5020EEC76D4E00B110B36D99457373F914C5C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs.meta",
|
||||
"sha256": "535C8F9874260A972C09DD26AD19EFDF5792C90A8455AC40B2AA6A5D8047DE65"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs",
|
||||
"sha256": "0C250F2997CB30CD2E2B950E51F3FB17C7ED45206A696CEC54C671D15F7A0AD0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs.meta",
|
||||
"sha256": "88540CC7F0478280997283ADBE4469E725112C71B59717797EEEC16D816E4B00"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"sha256": "CC4725497B0CB8CBFDE8E0A5A32DFCFC2C101B9306AFD9F5BDCA41A49727E897"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs.meta",
|
||||
"sha256": "B0D71FC155FF15C31B05F52A2CEDBE5F4F6EBC3AE1905D070A6BC6C73F4CAE52"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs",
|
||||
"sha256": "C22524279905407EF64957BFC6B853A4B24F9B1B15A2B55A1038558DB5649AB9"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs.meta",
|
||||
"sha256": "5B7E6C662C2C4BEB362868FA0C7305AB35E91ADCB8E88AFCEF8F6131A0EC0425"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs",
|
||||
"sha256": "18ABD846BE9FA9F1A0828ADD8B31CFED1EBD1A0F3114ACBA17B65ABC2AC87B10"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs.meta",
|
||||
"sha256": "9F739CD65CE2CC71E13659CBB294BDC806B0C93FC4C30A61982C4F72B0D52DAF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs",
|
||||
"sha256": "C7EB34DB6FB42A44E9D930592D2928CC96CEC4D1D532A66A3207E82F263C02DB"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs.meta",
|
||||
"sha256": "EBD0D67CCA2311F728E4B1D44A87A76E5586D27E1E259C706427CE7461585D69"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"sha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs",
|
||||
"sha256": "710A0050277BE07AC781F976945D8D2DDF7704EA616D0BF83797ABA2FA6530EA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs.meta",
|
||||
"sha256": "38A88CB1E5F7266E7D4828D082614FE8ACAF5887B96994BBFDD41CA5983014F3"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs",
|
||||
"sha256": "4C7D49032229B2CB85DCA0ED5D711181239DD22DCACB4B0624D2A96AF99A691D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs.meta",
|
||||
"sha256": "A163CBEFA86D826B76CA4CDA21F8A8DC4B32FF813D668D1C0EA151856C7D779F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs",
|
||||
"sha256": "C9C76A16F61CBC3CC748A0F44B581508B4178E7F322C43C8F05E2FC8707345DC"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs.meta",
|
||||
"sha256": "71D52DEC2CBCD12C6D049D212C05CAAA84DBC0224996C2905F45172F87A2FE8A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"sha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"sha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"sha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs.meta",
|
||||
"sha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
|
||||
"sha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs.meta",
|
||||
"sha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"sha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs.meta",
|
||||
"sha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveRouteEditorValidationHost.cs",
|
||||
"sha256": "9FE2066CDB2BA74F8C515B82844E96C3A336220CEC7C3622E6B134DAB81BB8BF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveRouteEditorValidationHost.cs.meta",
|
||||
"sha256": "B7C49EF3E8E0EA47BACE757672043FC4311DEEB99CF77D5237713523A8C70CA3"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "60308BF5B910131C3C815298F4AB3CC8F94BD647482AB6C0E20A5CDBF17892D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs.meta",
|
||||
"sha256": "EF0965FDDF7E9989AD14000CA474FD579B61B852C5A2B9F58EBAA8CF20A93A5D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"sha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta",
|
||||
"sha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs",
|
||||
"sha256": "4CA9538F432F4FAA7029E2A5A22B0F4D45C3B39E1E676B60058B87928B559483"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs.meta",
|
||||
"sha256": "5A987A1767ABC28789B1129FB989A7675F56F861B80F2B11C5763CD6DF09AB91"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"sha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta",
|
||||
"sha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"sha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs.meta",
|
||||
"sha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"sha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs.meta",
|
||||
"sha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "1E9959AAD9EA7B172551DBE2A51E8AAC339BC4B378D2AAC7AB7414466F74F483"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs.meta",
|
||||
"sha256": "8C935879262BADB49D4B099481999C5D1F5BC58AFBD5FA544CEAD7D193CD426B"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs",
|
||||
"sha256": "45300AA455CF43C07286A442E7A2C8534B3654C4AEB8316CA5EB3A20593AEA0D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.cs",
|
||||
"sha256": "C9CA1187442C420762BF6032F92266CB4E31F801C034E4C7919CD87F835FA915"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/AggLoginAct.cs",
|
||||
"sha256": "18CC24DDECE0DA9C8529D14CB2A862B14A0F74D33128E7B060FF628306F2463D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/FishingStage.cs",
|
||||
"sha256": "A79E40F3CD633DD3814FEFCBF5654E0B5B68B8F5D41DE50857039C53EC62EF2F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/LoginStage.cs",
|
||||
"sha256": "C9FB450C87E03CBAFF697FA82DBB5BE41115EF05B7282062144755347C6164EA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/PFLoginAct.cs",
|
||||
"sha256": "66551CAE81F77A7DCCE4D4D484A36C3D7D06B256B8B80FAF79B99A582FBD4412"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"sha256": "5809EAE0E61C3310E94AA1918CFE6801DD01241FB9743AA60CDD09269F84194B"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/SubBoostrap.cs",
|
||||
"sha256": "B62354B0761DCCD445A19C25D7379ACB71FFF2FD47D07BEB2101E5A79889D381"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Rod/FishingRodPanel_Level.cs",
|
||||
"sha256": "045D5854B19D2F5D0A44D063023D293C454ABC5409762F722A0C321E4BC81044"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Turntable/FishingTurntablePanel.cs",
|
||||
"sha256": "5A92713B981AF04C219741DD0C67DD542EF6241261662E952CD8EC3EC97AC7D5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/KVGameplayLoopTests.csproj",
|
||||
"sha256": "CBA37BA9BC540D115F7BC788FC5E29F3B7CFFBCE708EE60EE7842E58DFAD89C9"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Preflight.csproj",
|
||||
"sha256": "C134F4E9FA0DFA94ED594C5C927429E9408055DC6C7B5577972D3CD8EAE03F32"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Program.cs",
|
||||
"sha256": "3D864B56D91B4DCABFC1F0346CC26BCD1285AB51DC0BE0910EDA90995D27398E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Program.cs",
|
||||
"sha256": "F9DB1C884C8CB6F936BD3CDCF1C28661582549193388F4A6251B4DD8CB8F4848"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-source-audit.json",
|
||||
"sha256": "2AB1A213216C105408A6F7604118CF1B2E41307B23DE5D993D999F6B589E1822"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-compile-final.log",
|
||||
"sha256": "5408C2E24B7BFF9935D9D6FDD4CEA967B1FC0FCC3BA0A41F0646C8231495E996"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-existing-regressions.json",
|
||||
"sha256": "18AEF3DC86692E6A6558ED0C61FF3A8DB125D4A87A4FE7E1BFEC2C0E188809A7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-loop-synthetic-retry.json",
|
||||
"sha256": "0ED96E50C1107B8279EFE32176DB66AF5EA08670534FB3ABB9727695304AA41D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-loop-synthetic.cs.txt",
|
||||
"sha256": "937FC19A238E981B281751D6E20B06080AB68FBD98719A0935A72D9CEE1CEE01"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环-实施进度与最小补充审查-2026-09-24.md",
|
||||
"sha256": "505641026FEAE2B4E28FDB34869C0F4308FE4A9B98A6B74ECFD2182FF07A1078"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案-待评审-2026-09-24.md",
|
||||
"sha256": "0A0B5D87D88CB5A87729FC273155883228005A878DEF53F93AD7432964B6200D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案审查裁决与实施批准-2026-09-24.md",
|
||||
"sha256": "F4DF8C8D98720DCD42CFB5BBC266569D01FB6BEC435FF69688D102600F8E85F7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案独立审查-2026-09-24.md",
|
||||
"sha256": "A617DC9CE3F355D5F31AF88167577471363457D07B36E32CF5683D4E2CE125CC"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"scope": "closure reaudit and read-only next-scope findings; not implementation approval",
|
||||
"files": [
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4R1关闭复验-2026-09-24.md",
|
||||
"sha256": "2D2D3CDA2B51C89B55EA0ADB7CD3D472A2824398153034CE8D3DB0D94FA7EBD5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4R1复验裁决与后续最小范围-2026-09-24.md",
|
||||
"sha256": "0EF9F602EFEF39DDF63A6E7A7BC39FA273622BCD8543F47962A75D4275E22E99"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "55CEF04E0E32E762490098F4FA117C81D9DE5B020E1CA9D459F1642D4BBC1ABA"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发状态.md",
|
||||
"sha256": "304004AC16577B4BFA402C61E99713B06AD2697B901D09493EB3761E89EFC6FA"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/TODO.md",
|
||||
"sha256": "E01751B34D3E483D99710CE148BC6F20EB980FB5F68D1662D73251A07CD537E3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发日志.md",
|
||||
"sha256": "65BB59D6258610ED9A0EFCBD3D32B900B2646787747C4F9E82A224B03D69079F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
|
||||
"sha256": "04DC2035B20DEFA84C2D49E98F2A3BB3F7EFD7976848C4EBBC55FD7AF880D215"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "010C0F0630EF1F2ED1F3F42456189761B73A24E40CE089DF801F3FCAAECE7BBE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "ECAD77F8AA1B15663D91F444072EE2958CB7FBA874374AC353BCCFC59C7351B0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "E75C8BEDE21878286EF4E247BB3BE24CE81B81BFD1EEB3106E7B10468FFA9195"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "5280FA3F592C7C5EC784B5FFDF406E89C65A09E76DE8B56801B48158294EA88D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "6AA8973A276C0D297B1FC9076349F2CC15EC4B58968FFA721274118261CB162E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Turntable/FishingTurntablePanel.cs",
|
||||
"sha256": "5A92713B981AF04C219741DD0C67DD542EF6241261662E952CD8EC3EC97AC7D5"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,845 @@
|
||||
{
|
||||
"scope": "R1 real102 implementation review, fresh-process restore and proposed missing-building default correction; not a closure declaration",
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "0ECA65FB6FD41ADBBEA6550F5ED24B3072759C2FEECBE8F0936C48DC0FCAFAFA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs.meta",
|
||||
"sha256": "D2C4D94EBBA78879954CC97CCD81A5CDF549A894EB85120499DAC87FC63D9727"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/Boostrap.cs",
|
||||
"sha256": "B6C68226B315DB594D87A0E955071631A97C4ACB6F565C632DFC631F4C186650"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/AOTScripts/RootCtx.cs",
|
||||
"sha256": "AC666D2F1D94B41C2917DF1C609C3D57D7C0DE659BAB5883298BB76E06C62646"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/CustomServerMgr.cs",
|
||||
"sha256": "E7786DAFEB61DE87F1426C05683CD745C41243C1F1314B2113C0FE1FF180E8D0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "E75C8BEDE21878286EF4E247BB3BE24CE81B81BFD1EEB3106E7B10468FFA9195"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "ECAD77F8AA1B15663D91F444072EE2958CB7FBA874374AC353BCCFC59C7351B0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs",
|
||||
"sha256": "010C0F0630EF1F2ED1F3F42456189761B73A24E40CE089DF801F3FCAAECE7BBE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"sha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/AggUserService.cs",
|
||||
"sha256": "2E9DDD2A27D1080EC78C66ABDC31E444A176869C3FF737815F12D114EA3A3C6E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"sha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs.meta",
|
||||
"sha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"sha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs.meta",
|
||||
"sha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs",
|
||||
"sha256": "D3C9179594392FC0E624266CFBB5020EEC76D4E00B110B36D99457373F914C5C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs.meta",
|
||||
"sha256": "535C8F9874260A972C09DD26AD19EFDF5792C90A8455AC40B2AA6A5D8047DE65"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs",
|
||||
"sha256": "0C250F2997CB30CD2E2B950E51F3FB17C7ED45206A696CEC54C671D15F7A0AD0"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs.meta",
|
||||
"sha256": "88540CC7F0478280997283ADBE4469E725112C71B59717797EEEC16D816E4B00"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"sha256": "CC4725497B0CB8CBFDE8E0A5A32DFCFC2C101B9306AFD9F5BDCA41A49727E897"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs.meta",
|
||||
"sha256": "B0D71FC155FF15C31B05F52A2CEDBE5F4F6EBC3AE1905D070A6BC6C73F4CAE52"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs",
|
||||
"sha256": "C22524279905407EF64957BFC6B853A4B24F9B1B15A2B55A1038558DB5649AB9"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs.meta",
|
||||
"sha256": "5B7E6C662C2C4BEB362868FA0C7305AB35E91ADCB8E88AFCEF8F6131A0EC0425"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs",
|
||||
"sha256": "18ABD846BE9FA9F1A0828ADD8B31CFED1EBD1A0F3114ACBA17B65ABC2AC87B10"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs.meta",
|
||||
"sha256": "9F739CD65CE2CC71E13659CBB294BDC806B0C93FC4C30A61982C4F72B0D52DAF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs",
|
||||
"sha256": "C7EB34DB6FB42A44E9D930592D2928CC96CEC4D1D532A66A3207E82F263C02DB"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs.meta",
|
||||
"sha256": "EBD0D67CCA2311F728E4B1D44A87A76E5586D27E1E259C706427CE7461585D69"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs",
|
||||
"sha256": "710A0050277BE07AC781F976945D8D2DDF7704EA616D0BF83797ABA2FA6530EA"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs.meta",
|
||||
"sha256": "38A88CB1E5F7266E7D4828D082614FE8ACAF5887B96994BBFDD41CA5983014F3"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"sha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs",
|
||||
"sha256": "4C7D49032229B2CB85DCA0ED5D711181239DD22DCACB4B0624D2A96AF99A691D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs.meta",
|
||||
"sha256": "A163CBEFA86D826B76CA4CDA21F8A8DC4B32FF813D668D1C0EA151856C7D779F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs",
|
||||
"sha256": "C9C76A16F61CBC3CC748A0F44B581508B4178E7F322C43C8F05E2FC8707345DC"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs.meta",
|
||||
"sha256": "71D52DEC2CBCD12C6D049D212C05CAAA84DBC0224996C2905F45172F87A2FE8A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"sha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"sha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"sha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs.meta",
|
||||
"sha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
|
||||
"sha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs.meta",
|
||||
"sha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"sha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs.meta",
|
||||
"sha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveRouteEditorValidationHost.cs",
|
||||
"sha256": "9FE2066CDB2BA74F8C515B82844E96C3A336220CEC7C3622E6B134DAB81BB8BF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveRouteEditorValidationHost.cs.meta",
|
||||
"sha256": "B7C49EF3E8E0EA47BACE757672043FC4311DEEB99CF77D5237713523A8C70CA3"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "824F05C76D2B24CA895723BCE397D220CF7272CB400C5C7C3A9B9D1D534385F9"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs.meta",
|
||||
"sha256": "EF0965FDDF7E9989AD14000CA474FD579B61B852C5A2B9F58EBAA8CF20A93A5D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"sha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta",
|
||||
"sha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs",
|
||||
"sha256": "4CA9538F432F4FAA7029E2A5A22B0F4D45C3B39E1E676B60058B87928B559483"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVShutdownRegistry.cs.meta",
|
||||
"sha256": "5A987A1767ABC28789B1129FB989A7675F56F861B80F2B11C5763CD6DF09AB91"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"sha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta",
|
||||
"sha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"sha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs.meta",
|
||||
"sha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"sha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs.meta",
|
||||
"sha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.cs",
|
||||
"sha256": "C9CA1187442C420762BF6032F92266CB4E31F801C034E4C7919CD87F835FA915"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "5280FA3F592C7C5EC784B5FFDF406E89C65A09E76DE8B56801B48158294EA88D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs.meta",
|
||||
"sha256": "8C935879262BADB49D4B099481999C5D1F5BC58AFBD5FA544CEAD7D193CD426B"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVLoad.cs",
|
||||
"sha256": "45300AA455CF43C07286A442E7A2C8534B3654C4AEB8316CA5EB3A20593AEA0D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/AggLoginAct.cs",
|
||||
"sha256": "18CC24DDECE0DA9C8529D14CB2A862B14A0F74D33128E7B060FF628306F2463D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/FishingStage.cs",
|
||||
"sha256": "A79E40F3CD633DD3814FEFCBF5654E0B5B68B8F5D41DE50857039C53EC62EF2F"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/LoginStage.cs",
|
||||
"sha256": "D95641EEB076B75D86F57855F71B4F83894519CC6F3890F1919490FB2FF45C45"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/PFLoginAct.cs",
|
||||
"sha256": "66551CAE81F77A7DCCE4D4D484A36C3D7D06B256B8B80FAF79B99A582FBD4412"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"sha256": "5809EAE0E61C3310E94AA1918CFE6801DD01241FB9743AA60CDD09269F84194B"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/SubBoostrap.cs",
|
||||
"sha256": "B62354B0761DCCD445A19C25D7379ACB71FFF2FD47D07BEB2101E5A79889D381"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Rod/FishingRodPanel_Level.cs",
|
||||
"sha256": "045D5854B19D2F5D0A44D063023D293C454ABC5409762F722A0C321E4BC81044"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/UI/Turntable/FishingTurntablePanel.cs",
|
||||
"sha256": "5A92713B981AF04C219741DD0C67DD542EF6241261662E952CD8EC3EC97AC7D5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/PlayerSchemaTests.cs",
|
||||
"sha256": "1B63814F9ABCABC0332C5F4E32483DDD822CAEC7479B6ABC87BA2B5D01593622"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/102-import-execution-approved.log",
|
||||
"sha256": "3F4CE64E81E674469D20D4E1F4C48967F1324F5CD6F254F97E931E98A6F4B328"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/102-import-execution.log",
|
||||
"sha256": "15B34EE2FCC00E87C3CB2600A4DEB2219A9893A0BF7588C7C2DF20E5D15339BC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/102-import-proposal.json",
|
||||
"sha256": "482BC3FBFE508B075AC3DF38389E38576E45EAC46029E65D58650D44130AFB7A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T035000Z/102.json",
|
||||
"sha256": "A4DA163C8E53A171AA74485F2DCA4FE92303F7E6A8573A5FFDBB90A711B1F402"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T061841Z/101-summary.json",
|
||||
"sha256": "43B899BD90B793BD7A3ACAC82A3FCD6FD1FFDCAD7DD8A597A9D3F8BDA3DB5AFE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T061841Z/101.json",
|
||||
"sha256": "90FC51902AEF0C94985CF7F2DF1179DB82E7B17ADB8C0791FC7CB18D30FAC733"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T061841Z/102-summary.json",
|
||||
"sha256": "BE69D2064881C8442B6801E14B8DD7CA2648D7E07D415A4DD4FB14524551275A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T061841Z/102.json",
|
||||
"sha256": "9BECFC6ED1D2EF0905F9B4A448779D026D0A548C71F540B5C3CC2A7069C45F0D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T062616Z/101-summary.json",
|
||||
"sha256": "2688796DA3B255567CECF3F3FAFF0B404CAB3173BD43BB1B05B870CFEAED9A29"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T062616Z/101.json",
|
||||
"sha256": "EE87AF2828A666EB480649433E3B23BE43715F6D7A80EA385DE595C5E6E83531"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T062616Z/102-summary.json",
|
||||
"sha256": "D6E345D2C2077B2AC94179F37E7C8ADC77F9928022E2BE5A67B76F74A537EB93"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260924T062616Z/102.json",
|
||||
"sha256": "D951CBDC16234CEBD3F6EE8D8A3BE564E4BCD8D7D6EED4836E15DFE5245D1253"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-b2-approved.log",
|
||||
"sha256": "98891806DCECEEEEC7C8D6D8303E9ED3907003F58B1A753C940D16B230F7A4D2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-b2-regression.log",
|
||||
"sha256": "C7CD9F03B350E1D680005354300D472604346FE79197DDB36A66D6BE30A0C03F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-equipment.json",
|
||||
"sha256": "3146FD7BB180210E303542FF82DC3ED1E9A787CF4DDCF42BE217665D61BD17D4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-green-final.log",
|
||||
"sha256": "41E3B2ABCBDF8CBA60870A52EFA8B69D50EDA972FF1FF8478182948F84272068"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-green-verified.log",
|
||||
"sha256": "1346965AAA35BC0FCBEA6F10DACB8091CD083B366A06D41E61E31E489C10B5F5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-green.log",
|
||||
"sha256": "C5C4D2BCA94BD7B014C4078D7E25E39186F83963AB97894D20891F3559FB532F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-import-build-final.log",
|
||||
"sha256": "55688B1F1EEE713839C81639D1CC1CBE7E92C2D41717C5B8F15F9F4FD6F2A6E1"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-import-build.log",
|
||||
"sha256": "83273D56E56B6723459CF283E410DA3E59B20310959F6EA1ED510948E6EC696E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-permit.log",
|
||||
"sha256": "2F7481EF4B6523E2BDD0271C26C6C80B362BCFEE9841EDF1F7F7277BCB57029A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-red.log",
|
||||
"sha256": "117D2A8A50C19BF9823FC2969F964EE37F09EBFA2275E839E9360767B52AA0F7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-source-schema.json",
|
||||
"sha256": "05DC05CA47FFF26DBA2EC41761B536F589EB4C5A7FEE6E754952EF27C688165D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-unity-compile.json",
|
||||
"sha256": "0AA92E658577F9CD662284A4B907B7832BFC9EA248784C6E43403BF56E1DC958"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-unity-m04.json",
|
||||
"sha256": "CC30393B03956AAA49B655EC189C80841D2680A7996C781FD821439D109BE1F7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-unity-regressions.json",
|
||||
"sha256": "12DE7D12696C1B9E71F5E7C6C727B6C82C925D886F8BE5109A298207A565FA83"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-source-audit.json",
|
||||
"sha256": "2AB1A213216C105408A6F7604118CF1B2E41307B23DE5D993D999F6B589E1822"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-compile-final.log",
|
||||
"sha256": "5408C2E24B7BFF9935D9D6FDD4CEA967B1FC0FCC3BA0A41F0646C8231495E996"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-existing-regressions.json",
|
||||
"sha256": "18AEF3DC86692E6A6558ED0C61FF3A8DB125D4A87A4FE7E1BFEC2C0E188809A7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/checkpoint2-unity-loop-synthetic-retry.json",
|
||||
"sha256": "0ED96E50C1107B8279EFE32176DB66AF5EA08670534FB3ABB9727695304AA41D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/import-102.claimed",
|
||||
"sha256": "0D38AD57B8BFF916837F8E276FB91330E9D20C13BFB8446417D2F0819BD56A20"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/imports/20260924T061443Z/account.json",
|
||||
"sha256": "5EA6D0D841FD00339AFE9FE606F1028255AAB4810C50BD9B35B3BC4A4496A22A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/imports/20260924T061443Z/after.json",
|
||||
"sha256": "1374C7ED31EFB0EAC0EB6EDBF57276A61B8DE0CA1B222C86FB853EFEB9BF38DD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/imports/20260924T061443Z/before.json",
|
||||
"sha256": "3BEC960C5D67AE152B7317A9A55CFE0C6FB8752A36764E266A649168659D87D5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/imports/20260924T061443Z/candidate-schema.json",
|
||||
"sha256": "3C3D1BA6FE87583576EB54D1D394786E7A29C4D3BF5423C83ECE182BE453C013"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/imports/20260924T061443Z/set-result.json",
|
||||
"sha256": "CD2DBD43915F964114DF702B0F4EBA9984391DDBBCBA14980DB68757524738C2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/imports/20260924T061443Z/verification.json",
|
||||
"sha256": "8F8412DB066B1C2ACB8D93E0774F74A34592F3D640CC891F911D85F09D68F21A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/KVGameplayLoopTests.csproj",
|
||||
"sha256": "CBA37BA9BC540D115F7BC788FC5E29F3B7CFFBCE708EE60EE7842E58DFAD89C9"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/102.json",
|
||||
"sha256": "827F36084648449CEFAFB96B3CE62093DF70B8A87E33A526DA5B03A9C135A377"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-schema.json",
|
||||
"sha256": "6E475CE8820697C4C6B3311A8C5212B604598AC76CF093F637A235092C20A873"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/AdvertCompatibilityTests.cs",
|
||||
"sha256": "1C770DF03A3D91327131A45EBD16E480D554CDC7371B323906B61FE9B109F117"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Import102.cs",
|
||||
"sha256": "CED9C553ECD79275B3771A90CD52C94EB5A3B5D593643F59660A1D28A65987E1"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/PFSourceBackup.cs",
|
||||
"sha256": "93D5F00F4F8E466801ED7C7BBB7EE0CDEFEB3CE52DAA1EFB58BE9ADA6FF385C6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Preflight.csproj",
|
||||
"sha256": "CD3638FE8DAE92ED8CF13159CC1D6D4A157D9CB4FF2EC4D86E8E5BE73E836540"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Program.cs",
|
||||
"sha256": "B3D88FE4B225CC5F1D1F0C37B2B8289A323A5F4064E1B0379B36B4267C313F42"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/Program.cs",
|
||||
"sha256": "F9DB1C884C8CB6F936BD3CDCF1C28661582549193388F4A6251B4DD8CB8F4848"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-equip-click.json",
|
||||
"sha256": "543D33F2D6424CE5153894C0D78AEF7EAA3B905E9A112A5DCDF0CA2177DAEC7E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-equipped-memory-fixed.json",
|
||||
"sha256": "028CAD6DBA8C0E5F3834EBE8042C20EF9EDD85D26046B27EB3EE333EC183E282"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-equipped-memory.json",
|
||||
"sha256": "94290C64DAE3837E641E9E7501BA5210BD24BB70D1344AF2E0301B83952808F3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-equipped-screen.json",
|
||||
"sha256": "38284FE18709F1A2273D99C415BD7D88C4EB8452E26DE59366231937F0CE1DC7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-equipped-server.log",
|
||||
"sha256": "5F61F03464162F90F49881978865F44C833EC4D7B9735DC4F17C63B5526CC39F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-errors.json",
|
||||
"sha256": "94F0DE83DF32FFDED3E4D8B1AA152E0B0D5EEA6D70FE8BD66F72B3CEEAF3387F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-final-server.log",
|
||||
"sha256": "C84FBF8B0CD1F329491EB3F4D6D08DCA89117E44E228651B5D19F0B55F4A9768"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-final-state.json",
|
||||
"sha256": "131E8A7D26E4BC9C9584601044D76F617903A11517850163C3A9CAACA75C750E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-hierarchy-first.json",
|
||||
"sha256": "54D0D9018B3E5993D2530564C03A424072B3246D58C071592278BDC83A8CF407"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-logs-first.json",
|
||||
"sha256": "471CBA178996660A038E544B94EB35F7CA7D238523AA46DD218F5A3CFD0915F8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-newcache-before.json",
|
||||
"sha256": "6760FDF1ADEC120653704C99DF6926621E4D6D5989F190DD987CE1E1F73326C2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-newprocess-ready.json",
|
||||
"sha256": "E1272BF8C1E0C596E83FC9A704BAC26FD5C6B0E0B8718C10CAA75E10D5275A15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-newprocess-state.json",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-normal-quit.json",
|
||||
"sha256": "39626F93130F77DE12329EFB8BDA125CCBDD04842EA306D225B5B17F52C0845F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-open-rod.json",
|
||||
"sha256": "1DACCE502C5AD27BD8AF837501EB8B4C65F1DA1EA28CA77899F9A8EA9BA366FE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-play-with-permit.json",
|
||||
"sha256": "CC6C75A7F694FAAE136DBADFCFFBCEE5244511FBD0E03BEF1444F700A2EE31E3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-play.json",
|
||||
"sha256": "CC6C75A7F694FAAE136DBADFCFFBCEE5244511FBD0E03BEF1444F700A2EE31E3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-post-equip-state.json",
|
||||
"sha256": "642DAD68C1C8B141AD0E9C933E4B7E16551F3F770AD3EF1EC52184C4487B6913"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-prerun-logs.json",
|
||||
"sha256": "FB1B8C7E3734E7FD450DF7EE8F29F05F22B72988923449A7A165BA68EC1FC4B9"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-prerun-state.json",
|
||||
"sha256": "A3009CCD01D2ACD6A5D5490A9883FA00585CE5BBB6EF5DCA2D59912D0B255298"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-prerun-stop.json",
|
||||
"sha256": "6DC7F6E36C6343B74EF0F7044515120E35B261BBE5A67228D8B6D68A618D62A5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-reconnect-final.log",
|
||||
"sha256": "89E16BC8909A80430345C37FD48278D17043C13E0DA96BB2AB1EF321DD9C340C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-relogin-errors-final.json",
|
||||
"sha256": "A092F176CACF8E7273BEC6531A7A51523FF88B48C1C22535024EBFEC39561815"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-relogin-errors.json",
|
||||
"sha256": "E39804D1741996D6DF8841FFA73D2459D2C3268D3351E781557E5D70D95BE9B7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-relogin-normal-quit.json",
|
||||
"sha256": "9B3D173E7158F1AB6FA83C47C0EF065EA4C7DDAEEE382D478ED4DFE6E67B09EB"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-relogin-play.json",
|
||||
"sha256": "CC6C75A7F694FAAE136DBADFCFFBCEE5244511FBD0E03BEF1444F700A2EE31E3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-relogin-screen.json",
|
||||
"sha256": "0174311BEB82DC07F4C801B45CCA8547E4BD913821F7FD6E9B280A0A00E7D4D1"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-relogin-state-ready.json",
|
||||
"sha256": "72120015F2ECF6DDE6E00AD3C491303464C14138FEE199E45B7AA5B409893B78"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-relogin-state.json",
|
||||
"sha256": "779974927745DF218C43C7C53EDD7228B8F1D17E0F6060D292DA65DF3232CBEB"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-relogin-stop.json",
|
||||
"sha256": "6DC7F6E36C6343B74EF0F7044515120E35B261BBE5A67228D8B6D68A618D62A5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-restored-memory.json",
|
||||
"sha256": "F142FADF546B4B0AA1BDB7AF6DABC1EA9CE0837F92D0BE276F2E288903EED792"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-rod-detail.json",
|
||||
"sha256": "262B282AA11595C17F62DA6D87D93C5E35D48A085B5DE909F6FD727FA4F64EB6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-rod-elements.json",
|
||||
"sha256": "97E3A9BBA7491C9D51DD608D99F82151E099B8E72305920ADB11A925BDE3C41F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-rod-panel.json",
|
||||
"sha256": "E0911966DDA6FD7B8DBBC33EB4CE22A783159FB48C71AF14EA04FE454E2420F8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-run-summary.json",
|
||||
"sha256": "6A40F94E134289657C42590A46A8DF425E464E01EAD33DA62895BCC8962CB677"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-scene-backup.json",
|
||||
"sha256": "D5F22FAABD015C275AE868D71C4C6F85737B02DA835F345D62A514AF1E407E7B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-scene-comparison.json",
|
||||
"sha256": "13FE3F8349F4A876CA92F009FCB7E6471B831D1C14215BA469AB9A6E97ECEB51"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-scene-reopen.json",
|
||||
"sha256": "9EB50747AE26E782282B6F6A58EE195AF00352C5C617FDB57F9A7843B73C7F6B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-screen-dismissed.json",
|
||||
"sha256": "84090BBB62B994707935F5E6F45BBB7BDEFF628C0D02532CF4F01D75FE6BFC25"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-screen-first.json",
|
||||
"sha256": "03BB6BAB644726E7EB679504F71F77F2B1422DBF40C05F0171167207E38FA0AE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-screen-ready.json",
|
||||
"sha256": "4A8069658D6F85242257F4B2FB631A02DEC026471777635D7287CE3F923D1C17"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-screen-start.json",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-select-rod.json",
|
||||
"sha256": "3F3D97F663F18E36EEED08404776F60B2AC130A116EAB50E3CA2A119AAD22183"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-signup-dismiss.json",
|
||||
"sha256": "3784E72133C999A8848BC28C6E4E1D69241536541598C5DBE26CBF1C54A5ED11"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-state-first.json",
|
||||
"sha256": "B41E9647FAF2BCC4B44F57F3DD5BDC6731A620AE4FD110FF43F021C8FEE03AD8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-state-second.json",
|
||||
"sha256": "642DAD68C1C8B141AD0E9C933E4B7E16551F3F770AD3EF1EC52184C4487B6913"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-state-third.json",
|
||||
"sha256": "642DAD68C1C8B141AD0E9C933E4B7E16551F3F770AD3EF1EC52184C4487B6913"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-stop-after-quit.json",
|
||||
"sha256": "6DC7F6E36C6343B74EF0F7044515120E35B261BBE5A67228D8B6D68A618D62A5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-stopped-scene.json",
|
||||
"sha256": "3089770605DF533B7CBA1C37F6601A7C48AB041DD640BA889AB1D64FE3816BEC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-ui-elements.json",
|
||||
"sha256": "F3008266268C489A80040AAE4720DEB0D904C3D584AF235B35E415A370CDECA0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-uloop-fix.log",
|
||||
"sha256": "3EE5764066A3712DF330B372F3A80E59A605EDB322F1AB6DD90F8C61804FD8F3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-unity-quit-approved.log",
|
||||
"sha256": "8C0D0A143CEEF19767E77DD1C1E73C5DE71BF8D86FEE8D895C94F135BE58CC63"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-unity-quit.log",
|
||||
"sha256": "C2BE8D5D799BF2C9749671E7AECB456B6B6778E46A7732470286914ECD079839"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/real102-unity-relaunch.log",
|
||||
"sha256": "C82AA20018160CBCBD3B05372E50DB7D924773657BCBE74B1DCA23DF67CFD8F7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/120896_639258276377220393.claimed",
|
||||
"sha256": "431D38D388C5A29E291A87C00D99087CBFDBCDA15F2BCF792D524B1DE0E09D1F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/54200_639258133649707870.claimed",
|
||||
"sha256": "0FE7D1230895114DB307A6C7F2E0E100CE6C39A69757221CD082CB68EFB45B8D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/120896_639258276377220393/cache/player-kv/v1/b84eace5c350a3cc305e79cc973f5d14512c3bb93bcbcca4c2a44d6803b53f4b/102/state.json",
|
||||
"sha256": "D505855AC7A1AE2A12321E2030E1754AFB259FFAE2A73D3A0BEB437F75A903B4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/120896_639258276377220393/cache/player-kv/v1/b84eace5c350a3cc305e79cc973f5d14512c3bb93bcbcca4c2a44d6803b53f4b/102/state.json.bak",
|
||||
"sha256": "2546E5B95DFB44EDC2AE2BC426FFDF095E327E41C6EB2C8AD273314EA634EB04"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/120896_639258276377220393/cache/player-kv/v1/b84eace5c350a3cc305e79cc973f5d14512c3bb93bcbcca4c2a44d6803b53f4b/102/state.lock",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/120896_639258276377220393/events.jsonl",
|
||||
"sha256": "C72539C01E426ECD3460594D6A4A52192F738BFD3B75A8D6B1EFD295531CC252"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/120896_639258276377220393/permit-used.json",
|
||||
"sha256": "8346CC1301FCE46B849D4EC64EF4964A3203E001FA9DB504057DF2F553D9A0B0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/54200_639258133649707870/cache/player-kv/v1/b84eace5c350a3cc305e79cc973f5d14512c3bb93bcbcca4c2a44d6803b53f4b/102/state.json",
|
||||
"sha256": "D05F71B96CCE6C12AE7C2BFA49C6ACF3D57C78BA7E19A2A88A4CD34FBF443074"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/54200_639258133649707870/cache/player-kv/v1/b84eace5c350a3cc305e79cc973f5d14512c3bb93bcbcca4c2a44d6803b53f4b/102/state.json.bak",
|
||||
"sha256": "C514FE24E15514ED3E8D5898343652B5F272D9AC71843C97ABF90CDD5D970428"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/54200_639258133649707870/cache/player-kv/v1/b84eace5c350a3cc305e79cc973f5d14512c3bb93bcbcca4c2a44d6803b53f4b/102/state.lock",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/runs/54200_639258133649707870/events.jsonl",
|
||||
"sha256": "2148AC5E37FE12F7D4F43806689C8C0CF8A1E02FA9A659F0EF45F069C28D2775"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/screens/Game_20260924_141832_177.png",
|
||||
"sha256": "57CCA3263107C680BFD34C155811C2F872C00A6EB5D89C6A2E081B19D074BE77"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/screens/Game_20260924_142529_746.png",
|
||||
"sha256": "09CED4EF6117A2BC204BD29343F0CE20C3B8B8B3F74FB362D1D60D01659A7BCD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/source-inspection-compile.log",
|
||||
"sha256": "CB11A5F5F287FF231B698387DA952DD2CD64452C20EAB4C3CAB836BFFBE9D37D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/supplement-equipment-verified.json",
|
||||
"sha256": "421335FBC9DE6A0DFC9FB7F5D63EFD0E2BF68990DC5FB66671DDEFD78C456220"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/supplement-source-audit.json",
|
||||
"sha256": "4D1D1602E36F61C18AA4256BA2FC7F09320465EF7D4F82B02B3310523176F4A1"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-equipment-fixed.cs.txt",
|
||||
"sha256": "D3F46436D4A261A0C66F2D2BAE6E335A948FDB30C009AE854EE49702A1BE615C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-existing-regressions.cs.txt",
|
||||
"sha256": "1A99673ABCE378200A413634E8FC8CD4F3D9E44BE387027D439037E6C66DA23F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-gameplay-state.cs.txt",
|
||||
"sha256": "50DD8E9D61C71DBF244515328F09ECBCC2FB93492510031B81EAB83EF8B2240E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-loop-synthetic.cs.txt",
|
||||
"sha256": "937FC19A238E981B281751D6E20B06080AB68FBD98719A0935A72D9CEE1CEE01"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-normal-quit.cs.txt",
|
||||
"sha256": "4A61C44A36CD810E6EEB88BFCF3129BEE3AEBBB14F80F6FEE35E94E7D7EA0260"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-prepare-102-fixed.cs.txt",
|
||||
"sha256": "7C7D005A109F75835127746BA51384F23DFB2A30B2EAD854C736568A3897A928"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-prepare-102.cs.txt",
|
||||
"sha256": "39F8C6197B9A7FA6ADF122ED9CBA3749202B593365536450CE896E0575D5A517"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-source-inspection.cs.txt",
|
||||
"sha256": "B12C6122FE5738F05420D0C4A7A2DAF384DDC51CF2F1131A40B7821795737F16"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-source-locations.cs.txt",
|
||||
"sha256": "3C7FF91D5A2477A0B50B9B5B4DF9665972B932C07C4F3C8B14F982D0284E9634"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-state.cs.txt",
|
||||
"sha256": "040D25CC55A85210B0DD89EB1B7AC9E16CF78DF030E55D859F8F2FC8511004F6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/TODO.md",
|
||||
"sha256": "62F61F3E67FC467CA962BC8EE461DDCFD6739EB74F01D02EE2DD7AB5BF1058DE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发状态.md",
|
||||
"sha256": "5CC2F2E44677730193F9B4CB09039F262814E38669FF2314F426C2053FDCACC2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "37C128034B8C1811AAA7814FC4A728A6BF944B65B5F929931067B3A4B5AE7397"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
|
||||
"sha256": "C0309BC20011028A07FC4133D91950F63BD890A838FEC576D4E11570A60CC711"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环-102数据准备与cdTime最小兼容方案-待审-2026-09-24.md",
|
||||
"sha256": "EC4733E105A44FB8C7797523854D341716B2C3B1C2FD31F1A3AD402C3A7E82C8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环-实施进度与最小补充审查-2026-09-24.md",
|
||||
"sha256": "505641026FEAE2B4E28FDB34869C0F4308FE4A9B98A6B74ECFD2182FF07A1078"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环102兼容审查裁决与实施批准-2026-09-24.md",
|
||||
"sha256": "BCC494B50715A76D66A0B7AEC94E782327538F5D0AED011737AB1AD2370F2CEE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环102数据与cdTime兼容独立审查-2026-09-24.md",
|
||||
"sha256": "F87CD9B3C884AA870029FE876D4D137F652C32E1D95643CE7FB6DF29F6679871"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环102真实运行记录-2026-09-24.md",
|
||||
"sha256": "D9DA3E319D264D1BA33CCC22B8ED56E3C23ADC19C26002C01930906C26F391F2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环实施记录-2026-09-24.md",
|
||||
"sha256": "EC404FA9B43DF437FF4A9B0165E59F00FB0A10DE796445A6C1343B7A482D3E55"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案-待评审-2026-09-24.md",
|
||||
"sha256": "0A0B5D87D88CB5A87729FC273155883228005A878DEF53F93AD7432964B6200D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案审查裁决与实施批准-2026-09-24.md",
|
||||
"sha256": "F4DF8C8D98720DCD42CFB5BBC266569D01FB6BEC435FF69688D102600F8E85F7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环方案独立审查-2026-09-24.md",
|
||||
"sha256": "A617DC9CE3F355D5F31AF88167577471363457D07B36E32CF5683D4E2CE125CC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环最小补充独立审查-2026-09-24.md",
|
||||
"sha256": "23CA8B50FFE7D2C9625A5FE32E6AB06E5AF0282B6923E0822D213352026A7F78"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环补充审查裁决-2026-09-24.md",
|
||||
"sha256": "F4013BD70845A7BEB85E06A12E3713C03B63F1D90CD2357CACACC9F4D38FE451"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,229 @@
|
||||
{
|
||||
"scope": "R1 two-error repair and closure evidence; original review manifest preserved",
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
|
||||
"sha256": "0B0DADD2757A62BD32A644623A0F20B3E0029AE36E939F8D1EF387482ECB94C4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "6AA8973A276C0D297B1FC9076349F2CC15EC4B58968FFA721274118261CB162E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"sha256": "C323422C62DF3A3E7F0036B1B7E7054CC1ECD5B112983D29BD3C0251883C3436"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameLoadTests/PlayerSchemaTests.cs",
|
||||
"sha256": "5B2626617EF2DCB362AA637C98AD17C42E8C18A12638CA1E2AA4F8BC5259A0E2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/ExitRegression/ExitRegression.csproj",
|
||||
"sha256": "966E9B495105C094B1E5A4AFC3A692E402983F164DA6D909D03BE1287CA4F13B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/ExitRegression/Program.cs.txt",
|
||||
"sha256": "E002290233F635FDE956EA2B6511BC68EDAD16D821546B2886397039F866580C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/KVGameplayLoopTests.csproj",
|
||||
"sha256": "C579CBCA01718B1DB271685C3A3D0E3088545E68D0EF89DE6A37F709F4A3A9C6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/record_repair_checkpoint.py",
|
||||
"sha256": "DE7B7C7118B3EAA0AE9D8B9385B457C04EBFC1F37298A7C5F23AE7E7068B4F6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-after-server.log",
|
||||
"sha256": "6FE837858146B0B87043EB5EF72CAF1FBE885ABBA76651408428DF65453EE275"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-b3a-all.log",
|
||||
"sha256": "4439D1965F9BB9CEFB620D2EA83A98B83B76E99C22D07146874EDE830F8E9021"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-baseline-delta.json",
|
||||
"sha256": "90AEDE8642F3119CEB89C71812C4846C2EF35B58D6C9021815312DF221E51333"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-before-restart-state.json",
|
||||
"sha256": "43497263CF4A10D5D6E4C665520686B640D0070F4CE9C4981AEE5A8E7E4F9FD5"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-before-server.log",
|
||||
"sha256": "46F4735EBBD8C58E2DE8529B7986A93CD9DA9BCFF30BA16405248657FBEBBAB0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-building-green.log",
|
||||
"sha256": "3B88C17CDE76D919D3BD87FC1C1658E256EF74C7C61642080FC9540EDD78B511"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-building-red.log",
|
||||
"sha256": "725FCD47A5E3A09547D4CD74B689D012361B048153236610E0782F4C9C09B4B9"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-building-unity-red-retry.json",
|
||||
"sha256": "9FFEBCB7B6B6971DD60E926E44A92F2AC168B7B9B4D6A7E3A5BFBCDA2EFA3D38"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-building-unity-red.json",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-exit-default.log",
|
||||
"sha256": "85E2AE97AAFB8FCA9966AEA47E0CABF9D7C474698E422E1492657A7C05F53B15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-exit-green.log",
|
||||
"sha256": "441E34FEDDD534D3F267ED8EB6032F71FB4261C9B6B576C926D01B2EEE6145F9"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-exit-red.log",
|
||||
"sha256": "257EC357F84EDECC3C8A273D2CD9963C491E9283882FE1A3AB70112888B788C2"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-final-errors.json",
|
||||
"sha256": "F4162AC62821668A618A60AF7563E175C02BCC38FEC41E87BE0512058D301888"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-final-unity-quit.log",
|
||||
"sha256": "92084F7CEAA103C83CCF4AA3FC59D8E970CAF0EF648A13F93B7D8B616BDD2933"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-newprocess.json",
|
||||
"sha256": "1FB8F21540234684BFD463DD3F466EC8A8396EF7B6149D19CA4550B551B3419E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-permit-prepared.json",
|
||||
"sha256": "ACDA8969577AAF37FC3E8895399A8220532ED4A3237FCCCCF247D345E9A3AE00"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-permit.log",
|
||||
"sha256": "19848C4D5125650A4FD3DB665C6A58BD8D823307B6EC987BF98DEE6F5A889D4B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-production-diff.txt",
|
||||
"sha256": "0953F3CF11B9E57C4CDEF616062452F79EDB861013BDBC95AE986ACCAB27CF88"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-exit-errors.json",
|
||||
"sha256": "1EB88031B93856C43F20A0E94FC71B641E9CC70E31505F9D91725EAE60966F64"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-exit-hierarchy.json",
|
||||
"sha256": "39466827AA1D7D1D41E53F09F1655F9851DCBF2F81A0B0B0A6EBA812C0F44D58"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-exit-log.json",
|
||||
"sha256": "02C677C07C1EA05F137AD6AD1387258EAA9F7352D56723E7EA8D30ADF1398C5C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-exit-project.json",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-exited-hierarchy-data.json",
|
||||
"sha256": "9D8B6C88D627AFC389D973CF767769DE4ED5A301A825858EBEDD666D65602ED8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-exited-state.json",
|
||||
"sha256": "BE733C3CFD10957C7C0B6993FA7E2285C92DA97BB3ECC7FADB424AA35B2F811B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-login-errors.json",
|
||||
"sha256": "1EB88031B93856C43F20A0E94FC71B641E9CC70E31505F9D91725EAE60966F64"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-normal-quit.json",
|
||||
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-play.json",
|
||||
"sha256": "CC6C75A7F694FAAE136DBADFCFFBCEE5244511FBD0E03BEF1444F700A2EE31E3"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-ready-state.json",
|
||||
"sha256": "3DDD83F0080845EA0ECD49114432132BA0F80D5F095A35252DBED054D6B8FF58"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-start-state.json",
|
||||
"sha256": "A6B6F9CCB07AFDED9361E236443DC77586B886DD2AA6B5F74F02656483E259FF"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-real-values.json",
|
||||
"sha256": "FF7515516A507734D6F3BB9AFFC886ACFB546ABD51305BF0E8EFEF715EB21EE7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-red-unity-compile.json",
|
||||
"sha256": "D0094048A8DD42BBFD36A7C6D12A05DE7BE6D743DBC4460B66183D4856B998BB"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-server-comparison.json",
|
||||
"sha256": "CDDA508D7BB6F2ABCB81389E3620D00EBC26CD544EAA91989834C517A8D132A9"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-startup-tools.log",
|
||||
"sha256": "89E16BC8909A80430345C37FD48278D17043C13E0DA96BB2AB1EF321DD9C340C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-unity-compile.json",
|
||||
"sha256": "EA972A1D60156E96BFE24EC35F99EBAA588A30E66A21ECF7608396F002FE53B0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-unity-launch.log",
|
||||
"sha256": "C82AA20018160CBCBD3B05372E50DB7D924773657BCBE74B1DCA23DF67CFD8F7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-unity-quit.log",
|
||||
"sha256": "1D6609284681FEF58BD3990033F1324B5AEFA437BAA6A27913113878D06C7E5D"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/repair-unity-regression.json",
|
||||
"sha256": "662D6F0BC1CA67A8C601E20173D7316C5FC89C040AE2427E5347DC2721E18B2C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-repair-live-values.cs.txt",
|
||||
"sha256": "C210E7AFEA2E97CF4593A4947FDB5173612EC81A8A88CB4AD99C75D36380F13A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-repair-permit.cs.txt",
|
||||
"sha256": "02BCE273E75DE9BB6DEC61BE050A3A70F7F90FFA68D33E6BAB138F9CE4AB9D30"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-repair-regression.cs.txt",
|
||||
"sha256": "17701F4D8AD734241A5ECBC4DF7D3D5201AAB6757462638748D1D47D64BCF26C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/TODO.md",
|
||||
"sha256": "C51A098320E2F448CEC4CA7C6BDA6D1A09D77FE15283D5CE287B93892023D3F9"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发日志.md",
|
||||
"sha256": "151488B39A4C9749C46CA986445199CF4DD87520802B1C1A9E6124BB78B83EDC"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/开发状态.md",
|
||||
"sha256": "87CF2278213BB2B17483B8CFCBDAF253940D56E70056932A569A63074E50027E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/接手入口.md",
|
||||
"sha256": "E1E1019DA0BB1DC2BD5C150A1977830021C43B4B390C05C6E585BA98BEC8AA12"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
|
||||
"sha256": "C43B59B7997C4EFD8CA4BB226D61D32B79D601F5FF73B90349FF699DE1ECC209"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4R1报错修复裁决与最小实施方案-2026-09-24.md",
|
||||
"sha256": "06D7316A7FE3B41CFA2E105D440FC23DCCD6F625C1540CB06AF40E07DDBC5874"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4R1报错修复验收与关闭裁决-2026-09-24.md",
|
||||
"sha256": "8FD6A927B6B5F1FD2C01C3C24A6AF908FC061D2DDD7900C7BAE2B9F11323E654"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环实施记录-2026-09-24.md",
|
||||
"sha256": "B6F3E5870E09A6B52B0FD4FE3C9F55F2CFC3DD82DA82EED16265533E0E54D947"
|
||||
}
|
||||
]
|
||||
}
|
||||
274
CodexOutput/upserver/KVLoginContextTests/baseline-hashes.json
Normal file
274
CodexOutput/upserver/KVLoginContextTests/baseline-hashes.json
Normal file
@@ -0,0 +1,274 @@
|
||||
[
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"sha256": "03E579D222C308C41F9F7DF9A54FE1E36587F245C4234D44276EF61E4B1BDB80"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"sha256": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"sha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/AggUserService.cs",
|
||||
"sha256": "E7518D6DED134A75BDC1A547022C7EEC5C8E82C29F5C3BCF5E2E567F1744F169"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"sha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs.meta",
|
||||
"sha256": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"sha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs.meta",
|
||||
"sha256": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"sha256": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"sha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"sha256": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"sha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs.meta",
|
||||
"sha256": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"sha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta",
|
||||
"sha256": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"sha256": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta",
|
||||
"sha256": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"sha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs.meta",
|
||||
"sha256": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"sha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs.meta",
|
||||
"sha256": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.cs",
|
||||
"sha256": "1D764569F38651E911AFF4E493F10532F03F0E505432BB2AB768E2829C819C26"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"sha256": "C3905D3264F5E67056D41FB3DFA433591B6602F35819AD6DC16F0CC4EFF3BDB0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/ClubRegression.csproj",
|
||||
"sha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/Program.cs",
|
||||
"sha256": "E7AF3AF2C0B9ABE5D79E7D6AB4D28EC1D7A61D52D6D01354A3B1AACA38A0A5AB"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/ExitTests.csproj",
|
||||
"sha256": "BE85FF83CA411C1524D2586F2396CDAD790F48BC417E030C228F2E538C537665"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/Program.cs",
|
||||
"sha256": "6CC1D07330F0A871EAE93B6452C4070677CF60B1EA6184715ABF5386BBF24AC8"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/HomeExitTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/Program.cs",
|
||||
"sha256": "546821878709B298CF39F0B13CF403A02364EC87F216A71FF8DBF113B65B4FDD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/HomeLoginTests.csproj",
|
||||
"sha256": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/Program.cs",
|
||||
"sha256": "57EF5CE9E3884B8E2C64D69F04B2C555DB490054A87FF0A8F8B25043C6262471"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/KVContractTests.csproj",
|
||||
"sha256": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/Program.cs",
|
||||
"sha256": "7DCA39AC8377FB7E942A057B4CF21083586362911F22DBAB1049DC40E63483F0"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/KVGameBridgeTests.csproj",
|
||||
"sha256": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/Program.cs",
|
||||
"sha256": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/KVLiveTests.csproj",
|
||||
"sha256": "5C82D8CCF11C8B99715D76A371590646F811BB2836A6BFB22824E9F047C8E87A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/Program.cs",
|
||||
"sha256": "09823E73095B5CA2601A6A768FB8AF2487E58986754DD6603A4AA78CB41FB835"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"sha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"sha256": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/KVSyncCoordinatorReviewTests.csproj",
|
||||
"sha256": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/Program.cs",
|
||||
"sha256": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj",
|
||||
"sha256": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/Program.cs",
|
||||
"sha256": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/KVSyncReviewTests.csproj",
|
||||
"sha256": "99F47D2F16BDFDD96712DE6962AFFB18DE335434AF37C1D7E683E4C40250DF6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/Program.cs",
|
||||
"sha256": "0174C63FFE7D8E32933C5FA5FFD185D56646DDF14F39BFC81BF6A46FA0426BCD"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/KVSyncTests.csproj",
|
||||
"sha256": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/Program.cs",
|
||||
"sha256": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/LoginActTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/Program.cs",
|
||||
"sha256": "A858292D8FD17744D02370D14119A11A80A43A46BC3D2E9FAF35E14284493D3A"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginRegression/LoginRegression.csproj",
|
||||
"sha256": "76E5F2378DFDDF14147898E703A2D847CCBA341251DDB144DD861992DEA72F66"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/LogoutStorageTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/Program.cs",
|
||||
"sha256": "E954B85E96E0A0DCE8A10099727BEF1E3B895F9E1AB5EDDA6151BE824DC3CB89"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/MapExitTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/Program.cs",
|
||||
"sha256": "9486BB64F8A24B52900F3AEC41790315D117263C83791D66D56E636DDA025A8E"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/MinimalLoginTests.csproj",
|
||||
"sha256": "3F9945196BBF05DB9BE08029E6FF77EFD5C5A061022C452E0278DFF6EAD95C0C"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/Program.cs",
|
||||
"sha256": "0799A5480D2215735CD9E8F703FC8727FED406CC0C11FAE6A1A707ADF5DA267F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/UnityReferenceCheck.csproj",
|
||||
"sha256": "38ED14F27451795A5A6048EDE6E2336E2EE863A64D63814D6B15A4D85D878752"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/NetworkTransportTests.csproj",
|
||||
"sha256": "171C5D091C4C567B17E56627701A20801DD39E50D1238A67E3BB8EF937198250"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/Program.cs",
|
||||
"sha256": "BEE6B2416E71483AF27A0F9269886ECCD9D6152868EEBA38899A98A3680E2783"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/Program.cs",
|
||||
"sha256": "99F5BB5B6B80DB1A1F3CCAA0454A0C0170FD7EB18DB240542DB34DC32D8C349F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/RealtimeTests.csproj",
|
||||
"sha256": "B2441352FB71097AE043DF45866E9BDC61F1908B751DEDF8F2F63C439F80EA2F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/Program.cs",
|
||||
"sha256": "1DBDCA00429982B9516E9B726C2E411E85E241CE15D6D222D5B9456331BD6A15"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/ReentryTests.csproj",
|
||||
"sha256": "2C7EE19DB4C089FD2B38E9E99CF8B22FCFC05E4B66ABF47E040F69213F575A32"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/Program.cs",
|
||||
"sha256": "351BAD9C19A29B3307C021BE70103DBB88A89DF8E9F03CD30D6AB5DA68C1E74F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/ReviewLifecycleTests.csproj",
|
||||
"sha256": "42C3CBA40FC51390517B4AD9E0BA64C59D6AC8D014EAB3715627C6B54EE316E7"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/Program.cs",
|
||||
"sha256": "765CE60B346FC5867F0D739C4578C475792D2C0E94CE46E6757FDA2910A427E6"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/SoundExitTests.csproj",
|
||||
"sha256": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"generatedAtUtc": "2026-09-23T08:42:29.0665722Z",
|
||||
"files": [
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
|
||||
"sha256": "7552C331BCD7B5B51A9726085D25319E9D77653E5519EE76D7772EEB4B757A29"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
|
||||
"sha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs.meta",
|
||||
"sha256": "F8EC340CC069B1143BC640DF0403333567C354A344C82C1CB9F7974848BEB570"
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs.meta",
|
||||
"sha256": "FA4D0BA38E38B291B66D1769C97BAA863753C17946B79F3BC9D60BC1B4C4B16F"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLoginContextTests/Program.cs",
|
||||
"sha256": "8A557D489790E3AF5638BC124FF5084458081B929F1A810FECD5D36D361AB139"
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLoginContextTests/KVLoginContextTests.csproj",
|
||||
"sha256": "9D5FA72EEC244192394074DA68C5C200A5288D8C9EE2691A8D0288F250F7DCCF"
|
||||
}
|
||||
]
|
||||
}
|
||||
410
CodexOutput/upserver/KVLoginContextTests/scope-hash-check.json
Normal file
410
CodexOutput/upserver/KVLoginContextTests/scope-hash-check.json
Normal file
@@ -0,0 +1,410 @@
|
||||
[
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Core/PlayFabMgr.cs",
|
||||
"before": "03E579D222C308C41F9F7DF9A54FE1E36587F245C4234D44276EF61E4B1BDB80",
|
||||
"after": "03E579D222C308C41F9F7DF9A54FE1E36587F245C4234D44276EF61E4B1BDB80",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs",
|
||||
"before": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E",
|
||||
"after": "5047046FC92B77F9D08299B9057267D5676DBC8A5A4AE81C987EF4DD97ECE19E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"before": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"after": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/AggUserService.cs",
|
||||
"before": "E7518D6DED134A75BDC1A547022C7EEC5C8E82C29F5C3BCF5E2E567F1744F169",
|
||||
"after": "E7518D6DED134A75BDC1A547022C7EEC5C8E82C29F5C3BCF5E2E567F1744F169",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"before": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"after": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs.meta",
|
||||
"before": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1",
|
||||
"after": "FD311A40E8AF007DCC5A30766AE04F04B11A6A08E0266F3E2CEB53AFD22E29F1",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"before": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"after": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs.meta",
|
||||
"before": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E",
|
||||
"after": "126E9C2FE484388DF0D7281AD90BDF234F36DCF3AFEDD64C1B5ADFBB3558B15E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
|
||||
"before": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"after": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs.meta",
|
||||
"before": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2",
|
||||
"after": "40D8F8110B997B2557471FC5F6311EC1156DCC8AABE2D52038C92F72E6AEA1F2",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
|
||||
"before": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
|
||||
"after": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs.meta",
|
||||
"before": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6",
|
||||
"after": "09257F5C185C72B9F68BDDC0C4E3DF5211718D78E142D3E96804C9CFCCDA27B6",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"before": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"after": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs.meta",
|
||||
"before": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E",
|
||||
"after": "762C2BCEE46346BC9988A9CC53013337406212998583AB7281465AAB5DE5182E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"before": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"after": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta",
|
||||
"before": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A",
|
||||
"after": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"before": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"after": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta",
|
||||
"before": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7",
|
||||
"after": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"before": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"after": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs.meta",
|
||||
"before": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084",
|
||||
"after": "BD8C0D163F2903F4326EEA691EE8C52678C9DF4F5E808819800A63E3271C9084",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"before": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"after": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs.meta",
|
||||
"before": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4",
|
||||
"after": "49B8279C18887CF3BBE0B3F3B57D0CEBA31283DE5333AFB1AF5D8DEB747396D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.cs",
|
||||
"before": "1D764569F38651E911AFF4E493F10532F03F0E505432BB2AB768E2829C819C26",
|
||||
"after": "1D764569F38651E911AFF4E493F10532F03F0E505432BB2AB768E2829C819C26",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Stages/QuitAct.cs",
|
||||
"before": "C3905D3264F5E67056D41FB3DFA433591B6602F35819AD6DC16F0CC4EFF3BDB0",
|
||||
"after": "C3905D3264F5E67056D41FB3DFA433591B6602F35819AD6DC16F0CC4EFF3BDB0",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/ClubRegression.csproj",
|
||||
"before": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"after": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ClubRegression/Program.cs",
|
||||
"before": "E7AF3AF2C0B9ABE5D79E7D6AB4D28EC1D7A61D52D6D01354A3B1AACA38A0A5AB",
|
||||
"after": "E7AF3AF2C0B9ABE5D79E7D6AB4D28EC1D7A61D52D6D01354A3B1AACA38A0A5AB",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/ExitTests.csproj",
|
||||
"before": "BE85FF83CA411C1524D2586F2396CDAD790F48BC417E030C228F2E538C537665",
|
||||
"after": "BE85FF83CA411C1524D2586F2396CDAD790F48BC417E030C228F2E538C537665",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ExitTests/Program.cs",
|
||||
"before": "6CC1D07330F0A871EAE93B6452C4070677CF60B1EA6184715ABF5386BBF24AC8",
|
||||
"after": "6CC1D07330F0A871EAE93B6452C4070677CF60B1EA6184715ABF5386BBF24AC8",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/HomeExitTests.csproj",
|
||||
"before": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"after": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeExitTests/Program.cs",
|
||||
"before": "546821878709B298CF39F0B13CF403A02364EC87F216A71FF8DBF113B65B4FDD",
|
||||
"after": "546821878709B298CF39F0B13CF403A02364EC87F216A71FF8DBF113B65B4FDD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/HomeLoginTests.csproj",
|
||||
"before": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"after": "7C2E2FED9E4579A75E28B41EC86B2EF20F25FC0F8CE0B2E20B97365E1239F76A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/HomeLoginTests/Program.cs",
|
||||
"before": "57EF5CE9E3884B8E2C64D69F04B2C555DB490054A87FF0A8F8B25043C6262471",
|
||||
"after": "57EF5CE9E3884B8E2C64D69F04B2C555DB490054A87FF0A8F8B25043C6262471",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/KVContractTests.csproj",
|
||||
"before": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B",
|
||||
"after": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVContractTests/Program.cs",
|
||||
"before": "7DCA39AC8377FB7E942A057B4CF21083586362911F22DBAB1049DC40E63483F0",
|
||||
"after": "7DCA39AC8377FB7E942A057B4CF21083586362911F22DBAB1049DC40E63483F0",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/KVGameBridgeTests.csproj",
|
||||
"before": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD",
|
||||
"after": "2A3E09E7B509A7407ADBB22A5A6A2FDF611490ED2FB7C3F42A60BFD8446EC2FD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameBridgeTests/Program.cs",
|
||||
"before": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4",
|
||||
"after": "645A5E5C6EDE026E9F1C24916EA1E6F6E49D234C98284D56C684DDE15EF287D4",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/KVLiveTests.csproj",
|
||||
"before": "5C82D8CCF11C8B99715D76A371590646F811BB2836A6BFB22824E9F047C8E87A",
|
||||
"after": "5C82D8CCF11C8B99715D76A371590646F811BB2836A6BFB22824E9F047C8E87A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVLiveTests/Program.cs",
|
||||
"before": "09823E73095B5CA2601A6A768FB8AF2487E58986754DD6603A4AA78CB41FB835",
|
||||
"after": "09823E73095B5CA2601A6A768FB8AF2487E58986754DD6603A4AA78CB41FB835",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"before": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"after": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"before": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"after": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/KVSyncCoordinatorReviewTests.csproj",
|
||||
"before": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"after": "CF76121D253F6C81B4785C51C6F1056563137728CA954CFD8153CA1A8AC77B15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorReviewTests/Program.cs",
|
||||
"before": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD",
|
||||
"after": "3A3A87F44422FEF835E49F40D0A023DA2671265BCB77220D28C824A4C6622DFD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj",
|
||||
"before": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE",
|
||||
"after": "4C6977642BE9BF53F61AD7F07531CCDF45710263EB0C4161204E7F71BA9545FE",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncCoordinatorTests/Program.cs",
|
||||
"before": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"after": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/KVSyncReviewTests.csproj",
|
||||
"before": "99F47D2F16BDFDD96712DE6962AFFB18DE335434AF37C1D7E683E4C40250DF6C",
|
||||
"after": "99F47D2F16BDFDD96712DE6962AFFB18DE335434AF37C1D7E683E4C40250DF6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncReviewTests/Program.cs",
|
||||
"before": "0174C63FFE7D8E32933C5FA5FFD185D56646DDF14F39BFC81BF6A46FA0426BCD",
|
||||
"after": "0174C63FFE7D8E32933C5FA5FFD185D56646DDF14F39BFC81BF6A46FA0426BCD",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/KVSyncTests.csproj",
|
||||
"before": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73",
|
||||
"after": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVSyncTests/Program.cs",
|
||||
"before": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724",
|
||||
"after": "217FCDC295EC11AF50A4FE8629F3E9693E933D6A713F3F53747D40EC98314724",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/LoginActTests.csproj",
|
||||
"before": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"after": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginActTests/Program.cs",
|
||||
"before": "A858292D8FD17744D02370D14119A11A80A43A46BC3D2E9FAF35E14284493D3A",
|
||||
"after": "A858292D8FD17744D02370D14119A11A80A43A46BC3D2E9FAF35E14284493D3A",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LoginRegression/LoginRegression.csproj",
|
||||
"before": "76E5F2378DFDDF14147898E703A2D847CCBA341251DDB144DD861992DEA72F66",
|
||||
"after": "76E5F2378DFDDF14147898E703A2D847CCBA341251DDB144DD861992DEA72F66",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/LogoutStorageTests.csproj",
|
||||
"before": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"after": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/LogoutStorageTests/Program.cs",
|
||||
"before": "E954B85E96E0A0DCE8A10099727BEF1E3B895F9E1AB5EDDA6151BE824DC3CB89",
|
||||
"after": "E954B85E96E0A0DCE8A10099727BEF1E3B895F9E1AB5EDDA6151BE824DC3CB89",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/MapExitTests.csproj",
|
||||
"before": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"after": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MapExitTests/Program.cs",
|
||||
"before": "9486BB64F8A24B52900F3AEC41790315D117263C83791D66D56E636DDA025A8E",
|
||||
"after": "9486BB64F8A24B52900F3AEC41790315D117263C83791D66D56E636DDA025A8E",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/MinimalLoginTests.csproj",
|
||||
"before": "3F9945196BBF05DB9BE08029E6FF77EFD5C5A061022C452E0278DFF6EAD95C0C",
|
||||
"after": "3F9945196BBF05DB9BE08029E6FF77EFD5C5A061022C452E0278DFF6EAD95C0C",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/Program.cs",
|
||||
"before": "0799A5480D2215735CD9E8F703FC8727FED406CC0C11FAE6A1A707ADF5DA267F",
|
||||
"after": "0799A5480D2215735CD9E8F703FC8727FED406CC0C11FAE6A1A707ADF5DA267F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/MinimalLoginTests/UnityReferenceCheck.csproj",
|
||||
"before": "38ED14F27451795A5A6048EDE6E2336E2EE863A64D63814D6B15A4D85D878752",
|
||||
"after": "38ED14F27451795A5A6048EDE6E2336E2EE863A64D63814D6B15A4D85D878752",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/NetworkTransportTests.csproj",
|
||||
"before": "171C5D091C4C567B17E56627701A20801DD39E50D1238A67E3BB8EF937198250",
|
||||
"after": "171C5D091C4C567B17E56627701A20801DD39E50D1238A67E3BB8EF937198250",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/NetworkTransportTests/Program.cs",
|
||||
"before": "BEE6B2416E71483AF27A0F9269886ECCD9D6152868EEBA38899A98A3680E2783",
|
||||
"after": "BEE6B2416E71483AF27A0F9269886ECCD9D6152868EEBA38899A98A3680E2783",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/Program.cs",
|
||||
"before": "99F5BB5B6B80DB1A1F3CCAA0454A0C0170FD7EB18DB240542DB34DC32D8C349F",
|
||||
"after": "99F5BB5B6B80DB1A1F3CCAA0454A0C0170FD7EB18DB240542DB34DC32D8C349F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/RealtimeTests/RealtimeTests.csproj",
|
||||
"before": "B2441352FB71097AE043DF45866E9BDC61F1908B751DEDF8F2F63C439F80EA2F",
|
||||
"after": "B2441352FB71097AE043DF45866E9BDC61F1908B751DEDF8F2F63C439F80EA2F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/Program.cs",
|
||||
"before": "1DBDCA00429982B9516E9B726C2E411E85E241CE15D6D222D5B9456331BD6A15",
|
||||
"after": "1DBDCA00429982B9516E9B726C2E411E85E241CE15D6D222D5B9456331BD6A15",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReentryTests/ReentryTests.csproj",
|
||||
"before": "2C7EE19DB4C089FD2B38E9E99CF8B22FCFC05E4B66ABF47E040F69213F575A32",
|
||||
"after": "2C7EE19DB4C089FD2B38E9E99CF8B22FCFC05E4B66ABF47E040F69213F575A32",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/Program.cs",
|
||||
"before": "351BAD9C19A29B3307C021BE70103DBB88A89DF8E9F03CD30D6AB5DA68C1E74F",
|
||||
"after": "351BAD9C19A29B3307C021BE70103DBB88A89DF8E9F03CD30D6AB5DA68C1E74F",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/ReviewLifecycleTests/ReviewLifecycleTests.csproj",
|
||||
"before": "42C3CBA40FC51390517B4AD9E0BA64C59D6AC8D014EAB3715627C6B54EE316E7",
|
||||
"after": "42C3CBA40FC51390517B4AD9E0BA64C59D6AC8D014EAB3715627C6B54EE316E7",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/Program.cs",
|
||||
"before": "765CE60B346FC5867F0D739C4578C475792D2C0E94CE46E6757FDA2910A427E6",
|
||||
"after": "765CE60B346FC5867F0D739C4578C475792D2C0E94CE46E6757FDA2910A427E6",
|
||||
"unchanged": true
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/SoundExitTests/SoundExitTests.csproj",
|
||||
"before": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"after": "74E2419523DE47021CC5163DF8D954DCD69384CE804AD829F332DC2E76A09C6C",
|
||||
"unchanged": true
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,36 @@
|
||||
# 4B3A实施记录
|
||||
|
||||
方案:《阶段4B3分期与4B3A固定存档入口方案-待评审-2026-09-24.md》;批准:《阶段4B3分期与4B3A方案审查裁决与实施批准-2026-09-24.md》。
|
||||
|
||||
## 检查点0:受审基线核对与批准
|
||||
|
||||
39项材料、2101项源码全部匹配,7项未来路径均不存在;独立报告双PASS、无P1/P2。主会话逐条裁决九项合同及四条P3,批准限定A。P3-2限定为非Editor条件编译/静态调用证据,不冒称Player链接或包验证。
|
||||
|
||||
预检:检查点1产出键结果/ReadKV,检查点2其余三个方法复用既有Edit/Flush/Ticket;检查点3原ServiceHost通配会纳入新结果,Editor新host需排除SERVICE_HOST。无接口冲突。旧PF字节以开工副本比较,其他Scripts以2101项baseline核对。
|
||||
|
||||
Ruling:在用户指定共享目录就地实施,沿用本记录作为执行台账,不创建worktree或Git提交;外部独立实施复核门保留。编码前先验证缺失接口的失败,再增加实现及行为测试。4B3B/C未批准、A未关闭。
|
||||
|
||||
## 检查点1:键结果与ReadKV完成
|
||||
缺失接口红灯日志checkpoint1-red.log保留;实现后1组61断言通过(checkpoint1-green.log,测试退出0)。覆盖guard优先、三态、精确key/128边界/非法key、单次本地读无Get、关闭拒绝、无PF/Prefs。测试宿主尚未使用的故障字段3条编译警告待检查点2启用用例消除,生产实现未触及旧PF块。
|
||||
|
||||
|
||||
## 检查点2:固定Write/Flush/Wait及故障测试
|
||||
四入口已按合同完成。红灯11组中10组因缺少Write/Flush/Wait失败;实现后沙箱运行8组失败,FirstChanceException确认File.Replace权限拒绝。经自动审批允许相同已编译合成测试在非沙箱环境执行,11组489断言通过(checkpoint2-permission-probe.log),生产实现不改;仅解释本轮失败,不据此关闭历史两项间歇待查。state.json.tmp故障由测试自建,finally非递归删除并确认无残留。正在补充异常透传/表面探针与Unity、全量回归。
|
||||
|
||||
|
||||
## 2026-09-24 4B3A检查点3:条件宿主、Unity与完整回归
|
||||
|
||||
新入口默认/Android/非Editor三条件各13组508断言通过;新增项目构建0警告0错误。Unity CLI Loop编译0错误0警告,固定case真实HotUpdate调用34断言,auth=2/Get=2/Set=1、formalRequests=0、restored=true;Editor仍非PlayMode。4B2真实31对象/双epoch B2-20通过83断言且恢复成功,离线75组1713断言、关闭故障三个独立进程合计21断言、服务双条件各8组73断言及PlayerProbe通过。
|
||||
|
||||
原4A 18组226断言、4B1 23组279断言、Contract 42、Coordinator 29、Review、3C离线8/8均通过。KVSync首轮85/86(坏revision用例返回StorageError),单独复跑86/86;原始失败及复跑都保留,根因未定,不宣称关闭历史问题。KVLive仅构建通过;NetworkTransport直接构建缺旧Lease依赖,沿用原4B2 RegressionSupport/Dependencies.targets后0警告0错误,无旧工程修改、未运行正式代理。
|
||||
|
||||
Unity CLI首次沙箱spawnSync EPERM日志保留,自动审批后的同一CLI编译成功。新IO用例沙箱File.Replace权限诊断不解释本轮沙箱外KVSync首败。日志均在KVSaveRouteTests/checkpoint3-*;全程无正式服请求/PlayMode/打包/Git提交。下一步限定自审与封板。
|
||||
|
||||
|
||||
## 2026-09-24 4B3A检查点4:限定自审、范围与交付封板(主会话部分)
|
||||
|
||||
自审补齐示例迟到回调共享内存不变与Read/Close竞争断言,新入口默认/Android/非Editor三条件最终各13组544断言、退出0;原检查点3的508断言日志保留。生产实现未随补测变动,故已通过的Unity与旧全量回归不重复执行。
|
||||
|
||||
2101项原源码仅PlayFabMgr变化;剥离新增块后原PF字节完全一致;39项设计材料与221项原B2交付也仅PF变化。新增Scripts仅键结果与Editor host,另加Editor转接及三个meta;业务调用、旧测试/工程、底层协议和场景资源未改。范围审计保留机器证据。
|
||||
|
||||
已形成交付矩阵、限定自审、独立实施复核提示词、冻结实施记录与交付SHA256清单;入口/状态/TODO/机器todoItem同步为“4B3A实现与自验完成,待独立实施复核”。B3A-19外部实施复核及主会话关闭裁决尚未完成,A/B3/G4未关闭,B/C不获编码批准。KVSync首败及3C L7历史问题保持开放;P2-α正式启用门保持。外部接受并经主会话核hash/逐条裁决后,若无需复审则自动进入B完整方案准备。
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"reportPath": "CodexOutput/upserver/阶段4B3A独立实施复核-2026-09-24.md",
|
||||
"reportHash": "EE99EC3FA63C5E49BF3FFE70D80F9A8AB4FA3BF1AE8D0C5FE6D21CEF7325D55B",
|
||||
"manifestHash": "2F52213215E638C0FA51F02443B4C2BC3CC04894BDDF6C4C46667D70FD9DAF00",
|
||||
"count": 320,
|
||||
"mismatches": []
|
||||
}
|
||||
46
CodexOutput/upserver/KVStage3CTests/final-source-hashes.json
Normal file
46
CodexOutput/upserver/KVStage3CTests/final-source-hashes.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"algorithm": "SHA256",
|
||||
"generatedAtUtc": "2026-09-23T06:45:30.3578689Z",
|
||||
"files": [
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"Hash": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D"
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"Hash": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE"
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"Hash": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4"
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"Hash": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1"
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"Hash": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198"
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"Hash": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C"
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"Hash": "F2F0430B4E6E24620CF182A3FE4B83A2AC4024FED6C808B0102E31F26934A2FA"
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"Hash": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476"
|
||||
},
|
||||
{
|
||||
"Path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"Hash": "27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6"
|
||||
},
|
||||
{
|
||||
"Path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"Hash": "3C89DA087AA3841ADBA79A11BB2BAC724FD8F5F429D2124F826185EBBDDA64DA"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"algorithm": "SHA256",
|
||||
"generatedAtUtc": "2026-09-23T07:37:33.8867544Z",
|
||||
"files": [
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
|
||||
"Hash": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"PreviousHash": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
|
||||
"Hash": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"PreviousHash": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncModels.cs",
|
||||
"Hash": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"PreviousHash": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
|
||||
"Hash": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"PreviousHash": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
|
||||
"Hash": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"PreviousHash": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs",
|
||||
"Hash": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"PreviousHash": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
|
||||
"Hash": "F2F0430B4E6E24620CF182A3FE4B83A2AC4024FED6C808B0102E31F26934A2FA",
|
||||
"PreviousHash": "F2F0430B4E6E24620CF182A3FE4B83A2AC4024FED6C808B0102E31F26934A2FA",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
|
||||
"Hash": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"PreviousHash": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "CodexOutput/upserver/KVStage3CTests/KVStage3CTests.csproj",
|
||||
"Hash": "27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6",
|
||||
"PreviousHash": "27CC1AF41AC658EA9B8DE1ACB35E37058C294A93D30E232D42B9AFCBDD95A1E6",
|
||||
"Unchanged": true
|
||||
},
|
||||
{
|
||||
"Path": "CodexOutput/upserver/KVStage3CTests/Program.cs",
|
||||
"Hash": "66C41B8B0A8E0CD4FF13A3BED8212B3F61BF95E4707F5C6373B235E21B20492A",
|
||||
"PreviousHash": "3C89DA087AA3841ADBA79A11BB2BAC724FD8F5F429D2124F826185EBBDDA64DA",
|
||||
"Unchanged": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"algorithm": "SHA256",
|
||||
"note": "Updated after checkpoint-7 queued Refresh close cancellation fix",
|
||||
"files": {
|
||||
"Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs": "F2F0430B4E6E24620CF182A3FE4B83A2AC4024FED6C808B0102E31F26934A2FA",
|
||||
"Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs.meta": "1D0D332DC416497583B28F971AE5EE7A73FC72E822D4030BAC0EF783654A4C3A",
|
||||
"Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs": "026210CA2722FEC2FB8DCCE9D24D74A62B250E6A50EC6EAD811C59920875443C",
|
||||
"Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncCoordinator.cs.meta": "7CEC0947CC0C0AF45EB5E59C971C7589A019A566AE0AC50BC7FE9E54F3B227D7",
|
||||
"CodexOutput/upserver/KVSyncCoordinatorTests/KVSyncCoordinatorTests.csproj": "EDD94D2C694A2A960F94EF7F8B1B0529114F9573F989A51C57CCFE57889D8C4D",
|
||||
"CodexOutput/upserver/KVSyncCoordinatorTests/Program.cs": "506A21020C00463C26D93BE7CF479BD93A08B5013B390AE910C93C9F9D53B740",
|
||||
"CodexOutput/upserver/KVContractTests/KVContractTests.csproj": "741FD0465EC3BEBA1D25D5D92044855096B54AD8BBEE6505DE393BB859231C8B",
|
||||
"CodexOutput/upserver/KVSyncTests/KVSyncTests.csproj": "AAB3CDF4A8185DBEB19FC6C88AA5040710B51C3BB8DCF6B3D17511B6CBA5BF73"
|
||||
}
|
||||
}
|
||||
41
CodexOutput/upserver/KV更新复核.md
Normal file
41
CodexOutput/upserver/KV更新复核.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# KV 更新复核
|
||||
|
||||
日期:2026-09-15。服务端 HEAD 858fe7c;KV 实现提交 a3d3faa。此次检查源码、模型、迁移、服务注册与测试内容,没有执行数据库迁移或正式存档写入。
|
||||
|
||||
## 结论
|
||||
先前基于 696fc8c 的“未找到 KV”结论已过期。现在已具备玩家专属 KV 的读取、批量写入和删除实现;可据此制定客户端替换方案。已实现不等于已验证正式部署,当前没有新运行测试结果。
|
||||
|
||||
## 契约
|
||||
所有路由 POST,前缀 playerdata,Authorize Cookie 鉴权。从 NameIdentifier 获取涂游十进制 ID,请求不传 playerId。
|
||||
|
||||
| 路由 | 请求 | 成功响应 | 语义 |
|
||||
| --- | --- | --- | --- |
|
||||
| /playerdata/Get | {} 或 {"keys":["Lv"]} | {"data":{"Lv":"12"}} | keys 省略/null/空列表读全部;指定列表读存在的 key,不存在项省略 |
|
||||
| /playerdata/Set | {"data":{"Lv":"12"}} | HTTP 200 空正文 | 覆盖已有键并新增缺失键,未提供的键保留;空字典无操作成功 |
|
||||
| /playerdata/Delete | {"keys":["Lv"]} | HTTP 200 空正文 | 删除指定键,缺失键忽略,空列表无操作成功 |
|
||||
|
||||
## 数据来源与存储
|
||||
客户端玩法生成 string→string 存档 → Set 请求 data → PlayerKVService → EF SaveChangesAsync → MySQL PlayerKV。
|
||||
表字段:PlayerId(bigint)、K(varchar(128))、V(longtext)、UpdateTime(datetime(6));主键 (PlayerId,K)。Get 按 Cookie 玩家 ID 查表返回字典。当前无额外 Redis 缓存,无 PlayFab 数据读取或自动导入。
|
||||
已存在 AddPlayerKV 数据库迁移及 Program.cs 的 IPlayerKVService 注册。部署需应用该迁移。
|
||||
|
||||
## 客户端适配要求
|
||||
1. 用涂游 ID 完成 account/Login 并拿到 Cookie,之后调用 Get,成功后才初始化存档;禁止将读取失败解释为空存档。
|
||||
2. PlayFabMgr 的 UpdateUserData 替换为 Set;立即同步与批量同步共用有序写入/确认机制。
|
||||
3. Get 只返回 value,不返回 UpdateTime/version。现有 CompareDatas 依赖 PlayFab LastUpdated,不能保留旧时间比较、伪造服务端时间或直接拿本地时间当远端时间。需要评审云端基线加本账号待同步修改的恢复策略,或扩展响应提供版本元数据。
|
||||
4. Set/Delete 200 空正文是成功;现有 CustomServerPost 成功返回空字符串,失败返回 null,调用侧不能使用 IsNullOrEmpty 判断这两个接口是否成功。优先显式 HTTP 状态/结果模型。
|
||||
5. 当前仅允许读取本人数据,不等价于旧 PlayFab Public UserData;其他玩家等级等资料应使用对应玩家资料接口。
|
||||
6. 保留业务 key/value 内容和账号隔离;键长度上限128。新账号空表不是旧存档已经迁移。
|
||||
|
||||
## 实现边界与验证缺口
|
||||
- Set 是先查后增/改,无版本比较。客户端应串行提交并正确保留失败批次;跨客户端并发无冲突检测,同时首次插入同键可能触发主键竞争。后续按所需并发保证评审,不能把它描述成具备原子数据库 upsert 的契约。
|
||||
- 存在 7 个 EF InMemory 单测,覆盖全量/指定键读、覆盖新增、空写、删除、空删与账号隔离。本次只阅读测试,未运行;它们也不证明真实 MySQL 并发、迁移或 HTTP Cookie 鉴权通过。
|
||||
- s101 是否部署新接口、迁移是否生效、实际读写/重登恢复仍待联调验证。
|
||||
|
||||
## 关键源码
|
||||
- LeaderboardAPI/Controllers/PlayerDataApi.cs
|
||||
- LeaderboardBLL/Models/PlayerKVModel.cs
|
||||
- LeaderboardBLL/Services/PlayerKV/PlayerKVService.cs
|
||||
- LeaderboardBLL/Models/DBModel.cs
|
||||
- LeaderboardBLL/Migrations/20260915093852_AddPlayerKV.cs
|
||||
- LeaderboardBLL.Test/Services/PlayerKV/PlayerKVServiceTests.cs
|
||||
17
CodexOutput/upserver/NetworkTransportTests/README.md
Normal file
17
CodexOutput/upserver/NetworkTransportTests/README.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# 真实网络故障测试宿主
|
||||
|
||||
本目录直接编译三份生产源码,引用项目内 SignalR DLL。EngineGlue.cs 仅替代引擎/UI事件依赖;不是 Unity/Mono 实际运行,也不是渠道 SDK 测试。
|
||||
|
||||
## 复跑
|
||||
|
||||
在 C:/projects/ft:
|
||||
|
||||
1. 启动 `python CodexOutput/upserver/network_fault_proxy.py`,只监听随机 loopback 端口、固定上游 s101.local:18080。网络沙箱不允许上游时,需要该测试范围的网络权限;不要关闭整机防火墙。
|
||||
2. 使用既有本地 dotnet-home、dotnet-appdata 环境,运行 `dotnet run --project CodexOutput/upserver/NetworkTransportTests/NetworkTransportTests.csproj`,保留真实退出码及日志。
|
||||
3. 从 `network-proxy-address.json` 读取本次 loopback URL,调用其 `__control?mode=stop`,确认代理进程退出及 `network-proxy-final.json` 保存。
|
||||
|
||||
测试仅使用102。执行前确认该测试账号没有其他正在使用的Hub连接,避免服务端单连接策略影响它;当前101不受影响。无KV写删、无会员/奖励操作,不记录Cookie或存档内容。
|
||||
|
||||
实际通过结果见 Latest.log 和《网络故障验收结果-2026-09-22.md》。SandboxNetworkBlocked.log 是初次沙箱网络禁止的失败证据,不能覆盖为通过。
|
||||
|
||||
上级目录 network-*-unity.cs 为被Unity Restricted compile-only拒绝的早期原型,**不是可执行验收入口**;不得通过提高动态代码权限或绕过工具安全检查来运行。需要Unity完整UI故障验收时另行设计受支持的测试入口并评审。
|
||||
39
CodexOutput/upserver/P2-alpha-A只读盘点执行独立复核-2026-09-28.md
Normal file
39
CodexOutput/upserver/P2-alpha-A只读盘点执行独立复核-2026-09-28.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# P2-alpha-A只读盘点执行独立复核
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与A1–A4执行;此前参与为本单元方案审查。本轮只读+hash重算+证据抽查,未启动Unity/联网/许可/写存档。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
`P2AlphaAudit/execution-review-hashes.json`:**1232/1232重算全部一致**(含A1冻结/证据、A2诊断、A3三台账、A4交付与复核提示词全套)。原20项方案基线(A1-review-verification.json)独立核对无混淆。
|
||||
|
||||
## 总结论
|
||||
|
||||
**接受。本只读盘点单元(P2-α-A)可关闭**(主会话裁决后),进入101两类空态最小兼容完整方案准备。无P1/P2;P3三条。
|
||||
|
||||
## 八项逐条
|
||||
|
||||
**1. 空白名单与只读边界:保持。** 全程仅复用`InspectPFBackup`固定入口;无新Schema/诊断框架(台账用现有shell/哈希工具);无Open/Apply/Play/许可/claimed新增/正式接口请求/存档写;A4对"环境联网≠任务联网"的限定诚实。
|
||||
|
||||
**2. 冻结与准入充分。** A1:cfgData 267+Tables源码616=883项集合hash前后一致;KV102原采样时间与本地UTC窗口(A2-sampling-window)分别记录,未冒充服务器时间;旧103828正常退出→新90064(get-version 2022.3.62f2c1),前后playing/enabled/ready=false、run=null、permit=false——按约定记录了状态快照(本审查者P3-4建议已落实)。可复核。
|
||||
|
||||
**3. A2结果真实一致。** 本审查核对`A2-history-comparison.json`:101源hash未变、verdict与诊断逐项与历史相同(仅M15/M22 field0);102 Valid 0错误;sourceOnly/syntheticDescriptor/usesLocalUtc口径保持——合成身份未被冒充真实认证,writes=0。
|
||||
|
||||
**4. 键/模块台账准确。** 100出现项(55+45未去重)/58唯一键逐值hash入账;31模块节点明确标注**Absent样本边界与加载壳**("不是31类真实Present全覆盖"——诚实);42出现项/26模块外键中5种未定位**保留不删**;B3调用编号与"同文件候选≠语义绑定"的区分贯穿台账。抽查一致。
|
||||
|
||||
**5. M15台账:完整且解释正确。** 142处直接引用(M15-all-references.txt 142行,本审查复核);扩大至Assets/LocalPackages并忽略ignore规则后无新增;null安全结论**限定于对应前置条件**(fresh/Reset后态),未把"直接解引用无保护"扩大解释为任何入口安全——正确。Road别名继续追踪。
|
||||
|
||||
**6. M22核实成立。** 旧构造/保存允许null(此前已证);`A3-M22-pack-config.json`:4056001/PackType=3/MaxCount=1(本抽查一致);新DTO与Apply同要非null——"不能只改Schema或清空礼包"正确;候选政策保留其余字段与存在标记、不自动规范[]。
|
||||
|
||||
**7. 未决项保留清晰。** 5键未定位、AD坏槽(样本中未出现但规则保留)、未知鱼/配置派生、Present样本不足、身份/并发无CAS——全部入账未决;候选政策表明确标注"产品待确认、未授权执行",101/102授权未被扩大为批量导入授权。
|
||||
|
||||
**8. 可关闭本只读单元:可以。** A2(解码观察)与A3(消费语义)均完成且分层清楚;"不要求101变Valid才算盘点完成"的边界正确;下一单元(101两类空态精确兼容差异方案:M15物化"未激活挑战"保留raw key+M22保留null表示而非转[])目标明确、以完整方案另审为前置——**不自动扩大本轮代码范围**。
|
||||
|
||||
## P3清单
|
||||
|
||||
- **P3-1**:M15台账的142引用建议附"每处引用的前置状态行号锚点"进后续兼容方案(当前已分类,兼容方案编码时可直接引用,避免重查)。
|
||||
- **P3-2**:5种未定位键建议在下一单元方案中附"定位尝试记录"(搜索模式+结果)——已保留`A3-unlocated-key-search.txt`,建议在兼容方案中显式引用其结论而非重跑。
|
||||
- **P3-3**:后续真实迁移政策表中"KV已存在后续进度"行建议补充"102分叉时间线"(9/24 PF导入→4C1/4C2进度)作为唯一实例证据链接,便于产品确认时追溯。
|
||||
|
||||
## 结论
|
||||
|
||||
**接受P2-α-A执行交付;建议主会话裁决后关闭本只读盘点单元**,随后按交付建议准备"101两类历史空态精确兼容差异方案"(M15/M22各为最小表示兼容、完整方案独立审查后编码)。本单元关闭≠P2-α整体/G4关闭;真实迁移/拒档政策仍待用户产品确认。
|
||||
93
CodexOutput/upserver/P2-alpha-A已有存量档只读盘点方案-待评审-2026-09-28.md
Normal file
93
CodexOutput/upserver/P2-alpha-A已有存量档只读盘点方案-待评审-2026-09-28.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# P2-α-A 已有存量档只读盘点方案(待完整评审)
|
||||
|
||||
日期:2026-09-28;主会话。4C2已限定关闭,按“最小改动、先跑起来”要求,推荐先推进正式启用前已有硬前置P2-α,首单元只处理已有本地样本与迁移规则,不扩展玩法。用户如另选下一方向,本方案保留候选,不视为开发批准。
|
||||
|
||||
## 1. 目标与选择
|
||||
|
||||
P2-α来自4B2修订2裁决:正式启用前须完成真实档兼容盘点、版本/字段识别、迁移/备份、失败退出、人工恢复专项及用户产品确认。102成功不代表所有历史PF档均兼容。
|
||||
|
||||
| 选择 | 成本与边界 | 本次建议 |
|
||||
|---|---|---|
|
||||
| 已有样本只读盘点,输出逐差异处置规则 | 不改业务、不访问服务器;先定位真实缺口;两个专用账号不能证明用户全量兼容率 | **采用为P2-α-A** |
|
||||
| 直接修改101两处null兼容 | 改动可能很小,但M22空态语义/消费路径尚未完整确认;不能将“旧档存在”当作“合法且等价” | 后续按盘点结果提出单独精确差异方案 |
|
||||
| 建通用自动迁移并批量导入 | 增加身份、停写窗口、版本/CAS/回滚等依赖,当前没有代表性样本及目标授权 | 不在本单元申请 |
|
||||
|
||||
本单元交付是**可审计差异台账和待确认迁移政策**,不是启用KV、清理历史档或实现新迁移框架。已有102保持最新KV进度,不再次导入9月24日旧PF档。
|
||||
|
||||
## 2. 已核查输入与初始发现
|
||||
|
||||
| 输入 | 已有证据与限制 |
|
||||
|---|---|
|
||||
| PF101,20260924T041802Z,55键 | 源hash `E6EB3E656B62A3535FDB8F0DC517321A4C3E32F3A8D95385A2B7D5C0AA8222EF`;两处仍被历史cdTime修复后诊断标为Malformed:M15、M22 |
|
||||
| PF102,同批,45键 | 源hash `827F36084648449CEFAFB96B3CE62093DF70B8A87E33A526DA5B03A9C135A377`;同一诊断Valid;后已通过专用真实游戏闭环 |
|
||||
| KV102,20260928T025514Z,45键 | 4C2结束态gold234004/energy383;是游戏已继续产生进度的目标样本,**不能用旧PF102覆盖** |
|
||||
| Schema/Bindings/cfgData | 诊断依赖配置内容与UTC;必须冻结源码和cfgData指纹,记录采样时间;历史诊断不是当前配置下全量用户结论 |
|
||||
| 历史审查合同 | 严格AD坏槽、未知鱼/错归属/缺配置/同卡冲突、core布局、数值与时间解释均在范围内,不只盯两个null |
|
||||
|
||||
源文件均在 `KVGameplayLoopTests/pf-source-backups/20260924T041802Z/`;历史报告 `pf-source-schema.json` / `cdtime-source-schema.json` 明确syntheticDescriptor/usesLocalUtc/sourceOnly,不是真实认证或加载许可。
|
||||
|
||||
本次只读源码核查:
|
||||
|
||||
- PF101的FishingChallengeData原字符串为JSON `null`;`PlayerKVSaveSchema.DecodeChallenge`在Object(Json(text))拒绝,而旧`FishingChallengeManager.InitChallengeData(string)`经JsonConvert可产生null对象。是否等价于“没有挑战”仍需逐读取入口确认,不直接归为可自动删键。
|
||||
- PF101的GeneralEventPackData对象存在,selections为JSON null;当前DecodeBargain要求IntegerList,Apply构造新List。其余字段包含已激活历史礼包状态,**不能删除整键或默认重建以绕过拒绝**。
|
||||
- Advert.cdTime=null单字段已获审查并修复,不重复开发;禁止把该批准泛化为所有null均可接受。
|
||||
- 101/102为两份专用样本,没有代表性总体证明;不输出“全量兼容率”。
|
||||
|
||||
## 3. 执行白名单与数据流
|
||||
|
||||
**生产/测试源码改动白名单:空。** 允许只读现有源文件、原样本、历史报告;新增文档及结果限 `CodexOutput/upserver/P2AlphaAudit/` 与本方案/独立报告。若确需新诊断代码,先另列最小源码差异完整评审,本方案不授权。
|
||||
|
||||
流程:核源hash/身份→冻结源码与cfgData指纹→复用已有固定本地InspectPFBackup入口→按31模块及所有源key编目→逐差异追踪旧读取/写入与新Decode/Apply→分类、提出最小处置→自审并独立复核。
|
||||
|
||||
固定入口:`KVGameplayLoopSetup.InspectPFBackup`,已有脚本 `KVGameplayLoopTests/unity-source-inspection.cs.txt`。严格保留source=PlayFab/title=108EE8/customId101或102/指定本地目录限制,使用隔离容器和原Decode;不Open、不Apply、不发布句柄、不建运行permit。
|
||||
|
||||
入口要求Enabled=false、无validation/GContext、Editor未Play或将Play。目前上次run已closed但Enabled历史true,**不能清静态标记绕过准入**;如复跑,先确认无许可/排水,再正常重启编辑器,用Unity CLI Loop在全新空闲状态检查。不使用UnitySkills,不打包。
|
||||
|
||||
本单元不调用PFSourceBackup或任何网络备份/导入工具。只有本地样本,不能伪称获得新的服务器时间、真实账号描述符或其他用户存档。生成清单可用现有shell/哈希工具,不创建第二套Schema解析器来代替生产Decode。
|
||||
|
||||
## 4. 台账与分类规则
|
||||
|
||||
每条记录必须有:样本ID与源hash、key/模块/字段、旧格式类别、当前格式规则、旧消费读写位置、新Decode/Apply位置、诊断结果、数据是否有业务含义、候选处理、依据、未验证项。原值保留在原备份,台账尽量只列结构/字段和hash。
|
||||
|
||||
逐key与逐模块双向核对:现有55/45键包括非31模块直接消费项;未识别键单列保留,不因Schema没报错而宣称已支持,不删除或静默遗漏。
|
||||
|
||||
| 类别 | 候选规则(不是已批准产品政策) |
|
||||
|---|---|
|
||||
| 原字节可解码且消费语义一致 | 候选直接保留;还需真实身份、配置和目标前态门,不等于可以导入 |
|
||||
| 旧业务可生成的等价空态 | 列精确字段兼容方案优先,不改存档绕过;null/缺键/空字符串/空集合分别判定 |
|
||||
| 历史布局可明确转换 | 只提出每字段确定性映射及信息保留证明;不在本单元生成转换后真实档 |
|
||||
| AD坏槽/未知配置/字段歧义/数值越界 | 阻止该档迁移资格,保留原值及定位;不能静默跳过/填默认/清空 |
|
||||
| 空目标但有旧档/目标已有进度 | 分开处理。尤其102已非空,不作自动合并或旧PF覆盖;没有revision/CAS或排他写入窗口时不能承诺并发安全 |
|
||||
| 模块外或未知key | 保留并列后续消费者;不得以“不参与当前玩法”推导可删除 |
|
||||
|
||||
## 5. 后续迁移、失败退出与人工恢复政策草案
|
||||
|
||||
本段满足专项方案讨论需要,**不授权执行任何远端写入或对真实玩家实施拒档政策**:
|
||||
|
||||
1. 只在来源身份与目标账号映射核实、源/目标分别备份、目标前态和写入窗口有证据时考虑迁移;具体账号、key集合、差异、恢复条件必须形成可审清单。
|
||||
2. 不支持的档案保持源不动,停止该账号迁移/启用;是否继续保留旧PF入口或提供维护提示,属于用户产品确认事项,不能静默新建档。未进入KV前与KV提交结果不确定后必须区分,后者禁止自动切回PF继续双写。
|
||||
3. Set/Delete结果Unknown或MayHaveCommitted:停止后续动作,只观察并独立读取核对,不重放业务、重发整档或自动回滚。新读一致仅为当时观察,不等同CAS保证。
|
||||
4. 人工恢复另行列当前态与精确补偿范围。只有确认对应本次写入且之后无新增合法进度,才可讨论旧值恢复/删除新增key;发现其他进度或并发写即停止,不全库回退。PF源始终保留。
|
||||
5. 用户明确确认真实档不兼容时的处理政策+独立专项评审+身份/4B3/4C/tickets/4D其他门全部满足,才可讨论正式启用;本单元不关闭整个P2-α。
|
||||
|
||||
## 6. 检查点与验收
|
||||
|
||||
每个检查点更新开发日志/入口/TODO。当前仅A0方案准备完成,未启动新诊断运行。
|
||||
|
||||
| 检查点 | 交付及完成条件 |
|
||||
|---|---|
|
||||
| A0(已完成) | 下一单元范围比较、原审批门核查、两样本来源与两个null实值核查、完整只读方案、送审hash |
|
||||
| A1(完整方案评审后) | 主会话逐条裁决;冻结两个源文件、源码、cfgData指纹与环境时间;明确不发布玩法/不访问服务器 |
|
||||
| A2 | 全新空闲Editor复用固定Inspect入口;原诊断输出与历史逐项对照,差异有原因;结束时无permit/Play/网络写;不能手动改静态态绕门 |
|
||||
| A3 | 100个样本键出现项全部入账(55+45,不去重掩盖差异),31模块逐项覆盖;M15/M22、AD坏槽、鱼配置严格项、未知key有明确分类/证据边界 |
|
||||
| A4 | 最小后续建议、迁移/失败/恢复政策草案、未决产品事项、自审、独立复核提示词与受审清单齐全;未决项不得写成已通过 |
|
||||
|
||||
A2产物是离线解码观察,A3才是消费语义盘点;只跑Decode不能自动关闭A。无需重跑整个4C2、无需收费动作、无需把101改到Valid才算本单元完成。
|
||||
|
||||
## 7. 作者自审与评审请求
|
||||
|
||||
brainstorming步骤按既有合作方式落实:上下文与用户最小改动约束已核;三路线比较并选只读首单元;不需视觉伴侣;完整设计一次性交独立评审,未写业务代码,不自动提交共享工作区。用户的下一方向选择仍可覆盖本推荐。
|
||||
|
||||
自审:区分历史样本与当前存档、合成描述符与真实身份;不重复导102;不把null一概放宽;无自动修档/删除/退款;31模块与额外key都入账;当前Enabled=true的诊断准入问题已明确要求新进程;正式拒档产品政策仍未确认。
|
||||
|
||||
请独立评审本方案是否足够小、复用入口是否确实无正式请求/Apply、覆盖与分类是否充分、后续迁移政策是否诚实、A的关闭条件是否误推全量兼容。报告路径:`P2-alpha-A已有存量档只读盘点方案独立审查-2026-09-28.md`。后续若需两处null兼容代码,须另交精确变更方案完整评审,不能凭本方案直接编码。
|
||||
41
CodexOutput/upserver/P2-alpha-A已有存量档只读盘点方案独立审查-2026-09-28.md
Normal file
41
CodexOutput/upserver/P2-alpha-A已有存量档只读盘点方案独立审查-2026-09-28.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# P2-alpha-A已有存量档只读盘点方案独立审查
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本方案编写与执行;此前参与为4C1/4C2系列审查(本方案引用的P2-α硬门源自4B2修订2裁决链,本审查者为该链审查方)。本轮只读+hash重算+源码核查,未启动Unity/网络/许可。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
`P2AlphaAudit/design-review-hashes.json`:**20/20重算全部一致**。另核实《后续真实运行采样与离线复跑约定》完整落实4C2复核四条P3(DLL路径复跑/apphost禁用/前置采样窗/planned-actual元数据+公式输入与面板属性采集)。
|
||||
|
||||
## 总判定
|
||||
|
||||
**通过。** 无P1/P2;P3四条不阻塞。方案把P2-α收敛为"样本只读盘点→逐差异兼容方案→产品政策/迁移专项"是正确的第一步,且以**空生产白名单**从结构上杜绝了"盘点顺手改代码"。
|
||||
|
||||
## 七项逐条
|
||||
|
||||
**1. 收敛合理:是。** 三路线比较成立——直接修101两处null被正确拒绝(M22空态消费语义未证明、不能把"旧档存在"当"合法等价");通用迁移框架被正确拒绝(无代表性样本与目标授权)。产出定位为"可审计差异台账+待确认迁移政策"而非任何执行——与P2-α硬门(4B2修订2裁决)的原始要求逐项对应。
|
||||
|
||||
**2. 入口约束诚实且可执行:是。** 本审查核实`KVGameplayLoopSetup.InspectPFBackup`(:51)存在且为固定反射入口(→`PlayerKVGameplayLoop.InspectPFBackupForEditor`);sourceOnly/syntheticDescriptor/隔离容器/不Open不Apply不发布的历史定位(pf-source-schema.json口径)沿用;Enabled=false+无GContext+全新空闲Editor的门,**明确拒绝清静态标记绕过**(上次run遗留Enabled=true须重启编辑器)——诚实且与既定claimed/guard语义一致。
|
||||
|
||||
**3. 两个null分类正确:是。** 本审查源码核实:
|
||||
- M15:旧`InitChallengeData`经`JsonConvert.DeserializeObject<FishingChallengeData>(null字面量)`确实产出**null对象**——但null挑战对象与"无挑战"在全部读取入口处是否等价**未证明**,方案正确地将其列为"需逐读取入口确认"而非自动删键;
|
||||
- M22:`selections`为`List<int>`字段且构造默认null(旧档可合法携带),而Schema:238`IntegerList(obj["selections"])`要求数组——冲突属实、其余字段的已激活礼包状态**不可整键删除或默认重建**——正确。
|
||||
- 生产/测试白名单为空=结构性防误改 ✓;cdTime先例不被泛化 ✓。
|
||||
|
||||
**4. 覆盖足够且代表性限制明确:是。** 100个样本key出现项(55+45不去重)、31模块双向、非模块键/未知键单列、AD坏槽/未知鱼/配置严格项全部入账;两份专用样本不输出"全量兼容率"——诚实。
|
||||
|
||||
**5. 数据边界准确:是。** KV102为已续进度目标态(gold234004/energy383)禁止旧PF重导 ✓;无CAS下的备份/Unknown观察/人工恢复/禁自动双写合同与此前所有裁决语义一致(Unknown只观察不重放、"新读一致仅当时观察")✓。
|
||||
|
||||
**6. 政策与操作分离:是。** 拒档/迁移属用户产品确认事项,本单元只读操作批准不含之;方案不关闭P2-α整体与G4 ✓。
|
||||
|
||||
**7. A0–A4可验证、无多余工具:是。** 复用既有入口/shell/哈希工具、不建第二套Schema解析器;**A2(离线解码观察)与A3(消费语义盘点)分离、"只跑Decode不自动关闭A"** 的门设计正确。
|
||||
|
||||
## P3清单
|
||||
|
||||
- **P3-1**:A3台账建议为每个key附"旧PF读写位置"列时**直接引用4B3调用扫描(234行台账)的行号**——为后续4B3B迁移直接复用,避免二次盘点。
|
||||
- **P3-2**:M15等价性证明范围建议显式枚举`fishingChallengeData`的**全部读取入口清单**(null vs 缺键行为逐行)作为A3证据行,而非笼统"逐入口确认"。
|
||||
- **P3-3**:cfgData指纹冻结建议同时记录Schema解码所用的Tables内容hash与KV102样本的采样时间基准(与历史诊断usesLocalUtc口径对齐)。
|
||||
- **P3-4**:A2重启编辑器后的准入核查建议按既有实践记录get-version+playing/enabled/permit状态快照入证据。
|
||||
|
||||
## 结论
|
||||
|
||||
**通过P2-α-A方案。** 建议主会话核hash(已代验20/20)逐条裁决后进入A1裁决→A2–A4只读执行(开发侧);本报告不构成真实存档迁移授权,P2-α整体与G4保持开放。
|
||||
37
CodexOutput/upserver/P2-alpha-B两类历史空态兼容实施独立复核-2026-09-28.md
Normal file
37
CodexOutput/upserver/P2-alpha-B两类历史空态兼容实施独立复核-2026-09-28.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# P2-alpha-B两类历史空态兼容实施独立复核
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与B1–B4实施;此前参与为原方案审查与修订1补审(修订1的两条P3——四字符Trim精确性与教训注释——为本复核重点核对项)。本轮只读+hash重算+**精确DLL独立复跑**;未操作Unity/许可/正式数据。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
`implementation-review-hashes.json`:**1334/1334重算全部一致**。`B2-green-artifact.json`锁定的KVGameLoadTests.dll(`88CC86E3…`/495616字节)——本复跑按约定先构建后`dotnet <dll>`执行。
|
||||
|
||||
## 总结论
|
||||
|
||||
**接受。本两类空态兼容单元(P2-α-B)可关闭**(主会话裁决后)。无P1/P2;P3一条。
|
||||
|
||||
## 八项逐条
|
||||
|
||||
**1. 白名单与diff:符合。** 变更恰为批准的4生产+3测试(`B4-scope-verification.json`逐项对应);生产行数18增/5删与diff一致;无无关业务逻辑变化。
|
||||
|
||||
**2. M15闭合且两条补审P3落实:确认。** 实际代码(Schema:806–816):缺键→Missing;`text.Trim(' ','\t','\r','\n')=="null"`(**恰四字符Trim——补审P3-1落实**,非泛化Trim);`StrictJsonSyntax.Validate(text)`验证**原字符串**后返回`ExplicitNull()`;其余一切输入走原`Object(Json(text))`;**"Json rejects root null before returning"教训注释在位(P3-2落实)**。共用Json与StrictJsonSyntax逐行核对未变。三态DTO、非法组合校验、Replace"缺失或显式null→业务null"条件、Raw原字节保留均按合同(离线1783断言含四组DTO/严格负例/Raw空白变体覆盖)。
|
||||
|
||||
**3. M22最小放宽:确认。** Schema:238–241:`selectionToken!=null && Type==Null → null`,**缺属性(token==null)落入`IntegerList(null)`仍拒**;其他14字段/PackType=3/错误分类原样(:240 UnsupportedSchema保持);null与[]不混同;DTO/Apply/Snapshot的null与深复制经T2/T4(含双向修改隔离、序列化保留null)覆盖。
|
||||
|
||||
**4. 比较器与验证边界:正确。** `EditorValidationHost:107`仅Bargain专用Same的selections子表达式改为`(a.selections==null ? b.selections==null : b.selections!=null && SameList(...))`——**其余14字段比较逐项不变**;通用SameList(:117)未动;null/null相等、null/[]不等已入测。固定case的私有字段读取限于验证实际保存值,无新反射入口。
|
||||
|
||||
**5. 红绿与编译证据真实:确认。** 红测77组/3预期失败(B2-red-*原始输出保留)→**本复跑独立确认绿测77组/0失败/1783断言、退出0**(精确DLL,非apphost——`dotnet <KVGameLoadTests.dll>`并核对green-artifact hash);Unity 63/146/83断言、Editor/SERVICE_HOST双编译0错误对应最终源hash(B3-verification-summary:883配置零失配、editorCompile 0错误)。
|
||||
|
||||
**6. 样本与边界诚实:确认。** 101原55键与102原45键**均Valid/0诊断**(源hash不变、合成描述符/本地UTC口径保持、883指纹一致);"Decode Valid/31节点≠全用户/全玩法/模块外键验证完成"的限定保留——26模块外键/5未定位键/Present覆盖不足仍专项未决。
|
||||
|
||||
**7. 运行边界守住:确认。** 无Play/许可/正式数据接口/导入/打包;末态无run/permit、11 claimed保留、Unity错误0;B2-20的auth/gets按模拟请求口径解释(非正式请求)。
|
||||
|
||||
**8. 可关闭本单元:可以。** 关闭范围=两类空态的**加载表示兼容**;101未真实启用、未导入、整体P2-α/G4不因此关闭。
|
||||
|
||||
## P3清单
|
||||
|
||||
- **P3-1**:T1的`\v`/`\f`/`\u00a0`包裹null拒收断言(补审P3-1的配套测试)若尚未在1783断言中逐字符覆盖,建议B5后补一条(实现已正确,仅测试完备性——主会话裁决时确认即可,不阻塞关闭)。
|
||||
|
||||
## 结论
|
||||
|
||||
**接受P2-α-B实施交付;建议主会话核hash(已代验1334/1334+独立复跑)裁决后关闭本两类空态兼容单元。** 下一步候选:按A4交付建议进入"整体P2-α剩余项"(26模块外键处置、Present覆盖、真实迁移政策产品确认)或按用户优先级切换(4B3B/C、4C其余、服务端revision/CAS需求)。
|
||||
39
CodexOutput/upserver/P2-alpha-B两类历史空态兼容方案独立审查-2026-09-28.md
Normal file
39
CodexOutput/upserver/P2-alpha-B两类历史空态兼容方案独立审查-2026-09-28.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# P2-alpha-B两类历史空态兼容方案独立审查
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本方案编写;此前参与为P2-α-A方案与执行两轮审查(本方案三条P3附件即对该轮建议的落实)。本轮只读+hash重算+源码核查。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
`P2AlphaNullCompatibility/design-review-hashes.json`:**1277/1277重算全部一致**(含冻结配置/源码、142锚点附件、定位与102时间线、白名单JSON、方案与提示词)。
|
||||
|
||||
## 总判定
|
||||
|
||||
**通过。可批准B1~B4实施。** 无P1/P2;P3三条不阻塞。方案是"两条空态精确保留"与"通用框架"之间的正确最小解,且已预先吸收前轮全部三条P3与apphost教训。
|
||||
|
||||
## 八项逐条
|
||||
|
||||
**1. 文件边界足够小且无遗漏强制消费者:是。** 4个生产文件与两处改动一一对应(Schema两Decode、DecodedSave两DTO、ChallengeManager Replace条件、Bargain Replace selections);Raw保留由既有DecodedSave复制承担(无需改);序列化侧`DoSave`对null的行为经验证不改(T3);3个测试文件复用既有工程与固定入口。无通用框架、无新DTO体系外的结构。**若不同意新增M15旗标(提示词第8问)**:替代要么把"键存在null"折叠进IsPresent(丢失缺键/null区分→违反显式空态原则)、要么在Raw层判空(Decode无状态、Apply需重读Raw——更大改动)——**维持旗标方案**。
|
||||
|
||||
**2. M15三态区分成立:是。** 本审查核实`DecodeChallenge`(:803–806)现状(缺键→Missing、其余严格);新合同"先原严格Json一次、仅token.Type==Null走ExplicitNull()工厂"精确且不触碰共用helper;`explicitNull&&!present`非法组合校验、对象字段仍严格、可选构造参数保留旧调用、DTO不序列化到服务器——闭合。
|
||||
|
||||
**3. M15 Replace与前置限制:正确。** 现状`:79 !state.IsPresent ? null : new…`扩展为"缺失或显式null→null"是最小改法;Reset先行由既有事务承担。**142锚点附件诚实**——首行即声明"近邻声明≠控制流支配证明";`InChallenge:510`"state0仍可能触发加载"、未证明场景入口(Road/场景)均保留限制未冒充安全;fresh/Reset→显式null与缺键的DTO/Raw存在性差异入测(T3)。
|
||||
|
||||
**4. M22最小null接受:完整。** 仅`selections`属性`token.Type==Null`接受、**属性缺失仍被IntegerList拒绝**(C# null≠JSON null的区分正确);其余14字段/PackType=3/IsPresent/错误分类原样;null不转[]、不重建、不删键;DTO/Apply/Snapshot三处null与深复制逐一定义(表四场景)。
|
||||
|
||||
**5. T1~T8覆盖充分。** 红测先行且仅精确改写两条期望(其余严格负例保留);**比较器适配**正确且必要——本审查核实`:117 SameList`直接取Count无法比较双null,方案仅在Bargain专用Same(:107)的selections子表达加null分支、其余14字段比较不变、并新增null/null相等与null/[]不等断言防漏检;T5明示`dotnet <明确构建DLL>`+hash记录(apphost教训落实);T6的101双诊断消失+第三问题即停边界明确。
|
||||
|
||||
**6. 边界可执行:是。** 失败停点(第三种拒档不扩大)、Editor准入不绕静态门、无Play/许可/远端、90064不假设仍可用、不用launch --restart。
|
||||
|
||||
**7. 附件对应既有证据:是。** 142锚点/A3未定位搜索记录/102分叉时间线均引用封存证据未重写历史;政策与26模块外键/Present不足保持未决;本方案非101导入或正式启用授权。
|
||||
|
||||
**8. 批准B1~B4:可以。** B0已完成(本审查对象);B1裁决→B2红测+四文件最小差异→B3验证(T3~T8)→B4交付→B5独立实施复核。
|
||||
|
||||
## P3清单(不阻塞)
|
||||
|
||||
- **P3-1**:T1建议补一条断言:显式null样本的Raw值**逐字节保留原始字符串**(含空白变体),与"DTO旗标不反推Raw"互相印证(方案文字已承诺,落为显式断言更利于B5复核)。
|
||||
- **P3-2**:`PlayerKVChallengeState.IsExplicitNull`与`ExplicitNull()`工厂建议加XML注释注明"内部内存表示、不参与服务器序列化"(方案§3.1已声明,代码注释防后续维护者误用)。
|
||||
- **P3-3**:B3若101出现第三诊断,建议停点记录直接引用本方案§2"白名单扩展需停在新差异"原文+诊断JSON路径,形成标准停点模板(后续单元复用)。
|
||||
|
||||
## 结论
|
||||
|
||||
**通过P2-α-B方案,批准B1~B4实施。** 主会话核hash(已代验1277/1277)逐条裁决后按检查点推进;B4交付后交B5独立实施复核。本单元关闭仅覆盖两类空态兼容表示,不关闭整体P2-α/G4、不构成101导入或正式启用授权。
|
||||
30
CodexOutput/upserver/P2-alpha-B修订1解析前置独立补审-2026-09-28.md
Normal file
30
CodexOutput/upserver/P2-alpha-B修订1解析前置独立补审-2026-09-28.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# P2-alpha-B修订1解析前置独立补审
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与修订1编写;**诚实披露:原方案审查Q2中"先原严格Json一次、仅token.Type==Null走工厂"的可达性判断同样依赖了"共用Json可返回Null"这一错误假设,本审查者当时未核:163的返回前拒绝——本轮据源码逐项复核修订的正确性**。本轮只读+hash重算+源码核查。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
`P2AlphaNullCompatibility/revision1-review-hashes.json`:**1301/1301重算全部一致**。
|
||||
|
||||
## 总判定
|
||||
|
||||
**接受。批准按修订1恢复B2~B4。** 无P1/P2;P3两条(其一为实施精确性提醒)。
|
||||
|
||||
## 四项逐条
|
||||
|
||||
**1. 原阻塞成立、StrictJsonSyntax支持修订:确认。** 本审查核实`PlayerKVSaveSchema.cs`共用Json在:163执行`if (reader.Read() || result.Type == JTokenType.Null) throw`——**根null在返回前即被拒**,原方案§3.1分支确实不可达。同时核实`StrictJsonSyntax.Validate`(:1093)=`Value(0); Space(); if(position!=text.Length) throw`:①`Value`对`'n'`走`Literal("null")`(:1121)——null字面量可验证;②末尾全量耗尽检查——`"null x"`/`"null,null"`等多余token拒绝;③`Space()`恰只跳过`' ','\t','\r','\n'`四种JSON空白;④无注释语法——`/*null*/`拒绝。修订的技术基础完整成立,且**不是复制解析器**(复用既有类)。
|
||||
|
||||
**2. 修订顺序满足三态/严格负例/Raw合同:成立。** 候选识别(四种JSON空白修剪后==字面量null)→`StrictJsonSyntax.Validate`(原字符串)→`ExplicitNull()`;其他一切输入仍走原`Object(Json(text))`。共用Json/StrictJsonSyntax/Raw复制零修改(其他26+模块不受影响);C# null/空串/"null"字符串(带非JSON垃圾)/对象字段null与根null的分离保持;Raw原字节(含空白变体)由既有复制保留。
|
||||
|
||||
**3. 新增负例断言充分:是。** 非JSON空白(\v/\f等)、注释、额外token、尾逗号、注入字符串、`Json("null")`经共用helper仍拒的隔离断言、三态与对象字段null分离——覆盖了修订引入的全部新边界。**M22判断准确**:DecodeBargain的父对象经`Object(Json(...))`正常解析、嵌套`obj["selections"]`的token.Type判null在JObject层面进行——不依赖共用Json返回Null,嵌套null检测不受:163影响,原方案M22合同无需任何改动。
|
||||
|
||||
**4. 白名单与红测边界:保持。** `B2-red-code-scope.json`确认4生产文件+Editor host未动、仅2个已批离线测试文件修改;红测77组/1717断言中**3组失败均为目标兼容断言**(M22-null-empty-list/M15-root-null/M15-explicit-null-aggregate)——预期失败非编译/apphost问题(apphost教训已按约定用精确DLL执行);停点纪律正确(发现矛盾→停→补审,不越矛盾编码)。可按修订1恢复B2~B4。
|
||||
|
||||
## P3清单
|
||||
|
||||
- **P3-1(实施精确性)**:候选修剪必须**逐字符只用`' ','\t','\r','\n'`**——禁止`string.Trim()`或`char.IsWhiteSpace`(两者接受`\v`、`\f`、`\u0085`、`\u00a0`等非JSON空白,会把非法输入误判为候选并经Validate……实际会被Validate拒绝,但候选集扩大徒增审计噪音且偏离"四种JSON空白"合同字面)。建议T1同步断言`\v`/`\f`/`\u00a0`包裹的null被拒。
|
||||
- **P3-2**:修订落码时建议在DecodeChallenge内加一行注释说明"Json(:163)返回前拒绝根null,故null识别前置于Object调用"——为后续维护者保留不可达分支的教训。
|
||||
|
||||
## 结论
|
||||
|
||||
**接受修订1。** 主会话核hash(已代验1301/1301)裁决后按修订§3.1/T1增量恢复B2(生产四文件编码+新负例)→B3→B4→B5独立实施复核。原八项/三P3裁决合同继续有效;本补审不改白名单、不涉及真实账号写入。
|
||||
47
CodexOutput/upserver/P2-alpha-D单账号101导入范围与产品决策-2026-09-28.md
Normal file
47
CodexOutput/upserver/P2-alpha-D单账号101导入范围与产品决策-2026-09-28.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# P2-α-D:单账号101导入范围与产品决策
|
||||
|
||||
2026-09-28,主会话。**来源策略已获用户确认;本文记录产品决定,不替代完整实施方案,不直接批准编码或运行。** P2-α-C已正式限定关闭。
|
||||
|
||||
## 1. 具体目标与推荐选择
|
||||
|
||||
拟将一个已验证历史样本原值导入空的专用测试账号101,并核对服务器完整值;不进入游戏或给真实玩家开放迁移。这样能推进单账号迁移验证,不改客户端玩法逻辑或一次性改造26模块外键。
|
||||
|
||||
| 选择 | 得益 | 代价/限制 |
|
||||
|---|---|---|
|
||||
| 推荐:固定历史备份作为测试起点 | 复用已盘点和兼容验证的55键,输入可冻结,不依赖当前PF网络 | 必须明确这是历史测试起点,不代表当前PF最新进度;用户确认101跨系统映射 |
|
||||
| 重新采集当前PF101 | 输入更新 | 需另审仅101采集范围、复核新输入差异,可能出现新增兼容缺口;不直接沿用旧样本Valid |
|
||||
| 暂不导入,继续102其他玩法 | 可以继续扩展真实玩法覆盖 | 暂不推进101迁移证据;需先选具体玩法,再完整设计 |
|
||||
|
||||
用户明确答复“采用上述固定备份与101映射”,选择第一项。后两项保留为已比较但未采用的替代方案。
|
||||
|
||||
## 2. 已确认的来源/映射/拒档合同及执行前条件
|
||||
|
||||
- 范围:仅可丢弃的专用测试账号101;PF title108EE8/customId101映射s101 playerId101。用户对测试映射的确认不是通用正式身份系统已完成的证明。
|
||||
- 来源:`KVGameplayLoopTests/pf-source-backups/20260924T041802Z/101.json`,55键,原文件SHA256=`E6EB3E656B62A3535FDB8F0DC517321A4C3E32F3A8D95385A2B7D5C0AA8222EF`。不变换值、不补齐缺字段、不丢弃未知键。
|
||||
- 目标:正式API固定`http://s101.local:18080/`。070339Z快照的101为空只作历史证据;真正写前需重新读取,任何键存在就停。102不纳入新写入/合并/回滚,不运行既有102导入命令。
|
||||
- 拒档:来源hash/身份/格式/配置或实时候选验证不合格,保留原档且停止101导入,不创建空白KV存档、不转到PF双写。用户旧入口继续开放与否不在此测试单元中改变。
|
||||
- 时间:C快照`at`是工具本地UTC,本地钟与服务器钟未校验偏差。后续候选解码须用本次登录得到的服务时间和明确配置版本;仍不等于防并发凭据。
|
||||
- 停写:实际写入前需明确一个短时独占窗口,用户停止101在其他客户端/设备的使用,本地Unity不Play且无permit。当前尚未建立此窗口,不能从“继续”或本地空闲推断成立。
|
||||
- 故障:一次Set后Unknown/异常或观察不一致即停,不自动重发、补发、Delete或全档回退;保留证据,后续人工恢复须单独分析当时状态及新增进度。导入成功也不自动Play。
|
||||
|
||||
## 3. 已有源码依据与最小改动候选
|
||||
|
||||
已读现有`Preflight/Program.cs`、`Preflight.csproj`、`Import102.cs`及AccountSession/KV客户端。现有102导入器固定45键/sourcehash/playerId/claim,不可改参数冒充101工具,也不可删除其claim重跑。
|
||||
|
||||
用户已选择推荐项,完整方案现已落盘[固定101导入方案](P2AlphaImport101/D0-固定101历史档导入最小方案-待评审.md):固定101辅助入口、Program导入/隔离验证两个明确分支;保留102源码及claim,复用现有AccountSession、KV客户端、Schema Decode。生产游戏C#、配置和场景的改动目标为零。约100行既有102导入逻辑只作参考,不能假定复制替换ID即安全;下列缺口已在完整方案中具体处理:
|
||||
|
||||
1. 写前所有本地验证、完整before备份及持久化一次性claim的准确顺序;claim碰撞不写、不删除。
|
||||
2. 写调用返回之前/之后抛异常、Set结果日志写盘失败等情况,必须避免误判“没写”并保留观察路径;现有102实现顺序不能不审即照抄。
|
||||
3. 固定源55键逐项指纹与原值、明确cfg输入、服务时间候选解码、目标必须空;这是测试导入,不是所有模块业务已迁移。
|
||||
4. 少量有意义的隔离验证:非空目标/来源错/身份错/候选无效/claim已存在应零Set;一次成功、Unknown及写后持久化失败应不重发、不自动恢复。验证只用替身,不靠正式账号造故障。
|
||||
5. 明确允许修改/新增文件、真实请求上限、执行前停写核验、所有退出路径和逐项验收,完成自审再交独立方案评审。不能因辅助工具不是游戏源码就跳过先审后写。
|
||||
|
||||
本节是待收敛的实现边界,不作为代码批准。尚未创建新C#、命令分支、导入proposal或活动许可。
|
||||
|
||||
## 4. 接下来由谁做
|
||||
|
||||
1. 来源/映射策略选择已完成。用户确认了固定备份及测试账号映射、非空/不兼容就停等具体政策,不再重复询问。实际停写窗口尚未建立。
|
||||
2. 主会话已完成具体方案、白名单、隔离验证与验收,转独立方案审查;不再复审已经关闭的C。
|
||||
3. 独立审查通过后主会话逐条裁决,再编码和离线验证。真实导入须在已明确的101停写窗口内执行,不能提前创建运行许可或写档。
|
||||
|
||||
本轮是关闭裁决及方案范围整理,没有Unity/正式接口操作。暂不打包。
|
||||
41
CodexOutput/upserver/P2-alpha剩余迁移条件与下一步清单-2026-09-28.md
Normal file
41
CodexOutput/upserver/P2-alpha剩余迁移条件与下一步清单-2026-09-28.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# P2-α剩余迁移条件与下一步清单
|
||||
|
||||
2026-09-28更新,主会话。P2-α-A/B/C/D均已限定关闭;101的55键固定历史档已一次导入成功并完成复核裁决,不重导或重复复审。当前已验证单账号102的登录、装备/消费、收鱼奖励保存与重启恢复;101迁移档的普通收鱼保存与新进程恢复也已独立复核并由主会话限定关闭。下一步沿用“最小改动、先跑起来”,本清单用于收敛后续完整方案,**不是新代码或真实迁移执行批准**。
|
||||
|
||||
## 已经具备,不再重复做
|
||||
|
||||
- 现有KV适配、可靠同步、会话桥接、31模块受控加载和固定句柄入口的限定阶段验收。
|
||||
- 102真实普通钓鱼闭环及新进程恢复(R1/4C1/4C2关闭);101真实普通收鱼、药水引导最小修正及恢复业务包也已关闭,见[关闭裁决](Gameplay101Validation/101真实闭环与药水引导修正-复核裁决与关闭.md)。旧PF不能再覆盖101/102已有KV进度。
|
||||
- 已有两份原样本100个键出现项/58唯一键与31模块台账;当前解码101 55键、102 45键均Valid,原值未修改。
|
||||
- 两处null兼容及严格负例、字段保持、集合隔离、原始Raw字节验证;不为重复证明再收费或改档。
|
||||
|
||||
## 剩余待办及最小推进方式
|
||||
|
||||
| 待办 | 现有依据 | 下一步具体交付与边界 |
|
||||
|---|---|---|
|
||||
| 26种模块外键(42出现项) | [A3台账](P2AlphaAudit/A3-key-ledger.json)、[语义裁定](P2AlphaAudit/A3-空态语义与未消费键裁定.md)已列路径/候选与限制 | 复用台账,按下一条实际玩法涉及的消费者补齐读取来源、写回归属与失败处理;没有触及的活动保留未验证,不一次性改26种键或造通用Schema |
|
||||
| 5种未定位键 | [已封存搜索元数据](P2AlphaAudit/A3-unlocated-key-search-meta.json)及空结果 | 保留原键和值;只在具体业务需要时补来源证据,不删除,不重复同一文本搜索后声称增加覆盖 |
|
||||
| Present格式覆盖不足 | M18/M23/M24/M27/M28/M29等真实样本不足,M30为加载壳;已有合成回归不替代实际玩法 | 新玩法方案列精确输入和验证目标;不以本次31节点成功推成全活动覆盖,不为所有模块强造真实进度 |
|
||||
| 真实迁移政策 | [A4政策草案](P2AlphaAudit/A4-交付与后续最小开发建议.md)、[102分叉时间线](P2AlphaNullCompatibility/定位尝试与102分叉时间线.md) | 形成明确的单账号范围、权威源、身份映射、停写窗口、写前备份与失败恢复清单;产品选择确认后再完整审查,101测试导入已完成;其他账号的迁移政策仍需明确 |
|
||||
| 账号隔离/热换号与生命周期 | 4B3B/C仍未完成;现有验证限定单账号、重启式重登 | 维持用户已接受的重启边界;只对新玩法实际涉及的回调/内存补完整合同,不先重构全部活动 |
|
||||
| 故障与最终启用 | StorageError、3C L7间歇根因;身份、tickets容量、4D/G4及平台验收未完成 | 分别保留待办及原首败;按正式启用必要性安排,不把两样本Valid当关闭依据,不提前打包 |
|
||||
|
||||
五个未定位键为EventLuckyTowerData、EventOfferDevourFishData、EventTransitionTokenDic、Leadboard_LastContinent、SeasonStampData。其余已定位键仍不等于其业务链已迁移。
|
||||
|
||||
## 正式迁移前需要明确的产品决定
|
||||
|
||||
以下是可讨论的最小政策,不在本轮替用户批准:
|
||||
|
||||
1. 旧档不兼容或关键业务未验证:建议保留原档、暂停该账号KV启用、人工处理,不创建空白档;旧入口是否继续开放需明确。
|
||||
2. 目标KV已有进度:建议不自动合并或用旧PF覆盖;102已有分叉是具体依据。谁是权威、如何处理冲突需逐账号明确。
|
||||
3. 范围与时机:建议先一个可丢弃专用账号和明确停写窗口,不批量上线;当前允许使用101/102的历史测试授权不自动取消本次方案门。
|
||||
4. 写结果Unknown:保留既有停止后续写、独立观察、不自动重发/双写规则;人工恢复须基于当时完整差异和后续进度,不能回退整个旧备份。
|
||||
|
||||
## 当前责任与下一动作
|
||||
|
||||
- 101业务包独立实施复核已接受,主会话120/120 hash/长度一致、七项与P3逐条裁决;无需重复开发或复审本包。签到体力+30与快照时序笔误已在关闭裁决澄清。
|
||||
- 当前主线按F01–F12续裁决转向4B3B/C批量迁移;[B01方案](B3BatchMigration/B01-通知提示与已读状态批级方案-待评审.md)及分类已备妥,待一次独立方案审查。独立连续钓鱼/v4候选搁置,连续操作作为迁移批集成验收。
|
||||
- 本轮只有只读扫描和批级设计,未批准新真实运行;旧101停用窗口结束。B→C前置保持,未开放正式kv或全部活动,整体迁移政策仍待后续专项。
|
||||
- 完整4B3B/C、26模块外键消费者、热换号、全量迁移、StorageError/L7、4D/G4仍开放;不以新方案代替这些阶段的正式验收。
|
||||
|
||||
固定地址http://s101.local:18080/;Unity CLI Loop;暂不打包。
|
||||
29
CodexOutput/upserver/P2AlphaAudit/A1-审查裁决与执行批准.md
Normal file
29
CodexOutput/upserver/P2AlphaAudit/A1-审查裁决与执行批准.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# P2-α-A 审查裁决与执行批准
|
||||
|
||||
2026-09-28,主会话。用户“复核完毕,没有疑问则进入开发内容”确认继续本单元。
|
||||
|
||||
## 基线
|
||||
|
||||
修改共享状态前独立核对设计清单20/20(SHA256与长度)一致,见A1-review-verification.json。报告SHA256为9DA70C9B70DDAA09C8F93A0AC2624EF3CBF93C899C05B85779A6272FFF67D024;清单SHA256为577F09692DD4534BD2DE81E150B61780C410D15DA9E30177C435790B73C093CB。
|
||||
|
||||
## 逐条裁决
|
||||
|
||||
| 意见 | 裁决 |
|
||||
|---|---|
|
||||
| Q1 收敛为已有样本盘点 | 接受;不直接修101、不做通用迁移框架 |
|
||||
| Q2 现有Inspect入口约束 | 接受;新空闲Editor,无Enabled/GContext/Play/permit,使用原固定入口,不清静态态绕门 |
|
||||
| Q3 M15/M22两类null | 接受;记录真实值与消费语义,不将旧档存在推为自动兼容,不删键 |
|
||||
| Q4 100出现项/31模块/额外键覆盖 | 接受;逐样本保留,未知/不消费项单列,不声称全量兼容率 |
|
||||
| Q5 已有102进度与恢复边界 | 接受;不重导旧PF,Unknown不重发/自动回退,当前观察不冒充CAS |
|
||||
| Q6 产品政策独立 | 接受;批准只读操作,不批准真实迁移或对玩家拒档政策,不关闭整个P2-α/G4 |
|
||||
| Q7 A0~A4 | 接受;A2诊断不等于A3消费语义盘点完成 |
|
||||
| P3-1 复用B3扫描 | 采纳,台账附原B3-C编号/文件行号;旧扫描是历史定位,不冒称当前语义绑定,当前源码行号另核 |
|
||||
| P3-2 全部挑战引用 | 采纳,输出全库源码引用清单并逐读取上下文分析null/缺键;包括写入、清空和空判断,避免仅枚举方法名 |
|
||||
| P3-3 Tables与时间 | 采纳,冻结cfgData JSON、生成Tables源码及Schema/Bindings,记录集合hash与诊断前后UTC;保留KV102原采样时刻 |
|
||||
| P3-4 版本与准入 | 采纳,新进程get-version和playing/enabled/permit状态落盘,诊断前后检查 |
|
||||
|
||||
## 开发边界
|
||||
|
||||
批准A1~A4只读执行。生产/测试源码白名单为空;新增仅本目录文档、指纹、台账和现有工具输出,共享入口/TODO/日志按检查点更新。不得新增Schema解析器、修改存档、运行游戏、请求正式服务、启用permit或打包。发现需代码修订时先提交精确方案完整评审。
|
||||
|
||||
当前旧Editor103828已closed/playing=false/ready=false/error=null/permit=false,Enabled历史true;按原方案正常重启后才可Inspect。4C2关闭保持有效。
|
||||
148
CodexOutput/upserver/P2AlphaAudit/A3-M15-read-ledger.md
Normal file
148
CodexOutput/upserver/P2AlphaAudit/A3-M15-read-ledger.md
Normal file
@@ -0,0 +1,148 @@
|
||||
# M15逐源码引用台账
|
||||
|
||||
覆盖当前Client/Assets/Scripts内标识符直接引用,包括读/写/注释/验证;不把文本清单冒称所有运行时调用图。逐行context见JSON。Road别名的下一步读取另记于语义报告。缺键比较前提为新对象或已Reset,旧对象复用不等价。
|
||||
|
||||
| 位置 | 类别 | null与缺键比较 |
|
||||
|---|---|---|
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:63 | property-declaration | 初始引用null;旧缺键未调用Init不等于清除已存在旧对象 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:72 | assignment | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:79 | assignment | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:112 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:115 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:117 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:143 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:145 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:153 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:160 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:173 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:174 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:186 | assignment | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:202 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:208 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:218 | assignment | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:227 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:228 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:229 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:230 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:231 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:232 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:233 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:234 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:251 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:256 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:262 | assignment | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:281 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:286 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:324 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:327 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:332 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:333 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:352 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:355 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:363 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:365 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:368 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:382 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:388 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:398 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:404 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:406 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:436 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:463 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:555 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:556 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:557 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:558 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:559 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:566 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:572 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:574 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:592 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:593 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:605 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:618 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:621 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:622 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:628 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:630 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:662 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:686 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:710 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:712 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:723 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:729 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:735 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:746 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:799 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:800 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:812 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:817 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:831 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:844 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:846 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:852 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:853 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:874 | assignment | 写入/Reset/反序列化/实例创建点;须结合对应调用前态,见语义报告 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:902 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:915 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:917 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:934 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:936 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:950 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:952 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:953 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:963 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:965 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:966 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:975 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:986 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1009 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1034 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1044 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1074 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1076 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1084 | save-null-capable | null可序列化为原字符串null;证明旧代码能产出本样本,不意味着允许删除键 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1089 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1091 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1098 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs:1099 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/Services/UserService.KVFishingReward.cs:127 | null-observation | 同为null时观察分支一致;不能覆盖同方法内其他直接解引用 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchSceneRoadUI.cs:59 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchSceneRoad.cs:81 | alias-read | RoadUI缓存别名_thisEventData;下一行82读取step,需要非null活动前置,已另追踪该别名 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:149 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:151 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:152 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:160 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/Road/ChallengeMatchPlayers.cs:229 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:139 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:175 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:199 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:203 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:320 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchSceneUI.cs:442 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:305 | validation-only | 既有验证读取;不属于线上入口 |
|
||||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:328 | validation-only | 既有验证读取;不属于线上入口 |
|
||||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:344 | validation-only | 既有验证读取;不属于线上入口 |
|
||||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:695 | validation-only | 既有验证读取;不属于线上入口 |
|
||||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:712 | validation-only | 既有验证读取;不属于线上入口 |
|
||||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:714 | validation-only | 既有验证读取;不属于线上入口 |
|
||||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:716 | validation-only | 既有验证读取;不属于线上入口 |
|
||||
| Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs:718 | validation-only | 既有验证读取;不属于线上入口 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchScene1.cs:113 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchScene1.cs:114 | comment | 注释不执行,不能作为读取入口 |
|
||||
| Client/Assets/Scripts/UI/Challenge/EventChallengeRewardPopupPanel.cs:78 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Challenge/EventChallengeRewardPopupPanel.cs:92 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/GampPlay/ChallengeMatch/ChallengeMatchScene.cs:46 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Challenge/EventChallengePanel.cs:170 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Challenge/EventChallengePanel.cs:232 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Challenge/EventChallengePanel.cs:233 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Challenge/EventChallengeMatchingLoadingPanel.cs:143 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:98 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:113 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:192 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:211 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:212 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:218 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:219 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:258 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
| Client/Assets/Scripts/UI/Home/HomeBtnChallenge.cs:259 | requires-active-context | 若两种输入在fresh/Reset后均物化null,直接解引用行为相同:无活动前置时都可能抛异常;不能称空值在所有入口安全。 |
|
||||
106
CodexOutput/upserver/P2AlphaAudit/A3-key-ledger.md
Normal file
106
CodexOutput/upserver/P2AlphaAudit/A3-key-ledger.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# A3:100个样本键出现项台账
|
||||
|
||||
每行保留一个样本key出现项。详细旧源码引用、原B3编号、Schema行号和逐值hash见同名JSON;引用匹配不是完整语义绑定。OUTSIDE-31仅表示未被受控31模块逐值解码,不等于无业务消费者。
|
||||
|
||||
| 样本 | Key | 模块 | 字节 | 原B3直接key调用 | 结论 |
|
||||
|---|---|---|---|---|---|
|
||||
| 101 | AquariumEventDataNewKey | OUTSIDE-31 | 437 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | BattlePassRecordTask | M11 | 161 | B3-C023@Client/Assets/Scripts/DataCenter/BattlePassData.cs:117 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | BombGameCount | M01/M02 | 1 | B3-C088@Client/Assets/Scripts/DataCenter/DataCenter.SmallGame.cs:88 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | BuffDataList | M06 | 107 | B3-C024@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:205 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | BuyData | M04 | 118 | B3-C067@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:631 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | ChainPackDataNew | M04 | 67 | B3-C071@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:858<br>B3-C072@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:900 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | DeferredRewardStashService | OUTSIDE-31 | 0 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | epbdk | M26 | 173 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | epdk | M25 | 1006 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | Event1v1BattleSlapData | OUTSIDE-31 | 603 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventBingo | OUTSIDE-31 | 28 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventBoostPackData | OUTSIDE-31 | 53 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventBossFightData | OUTSIDE-31 | 522 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventCubeMeltData | M19 | 667 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | EventLuckGameRecord | OUTSIDE-31 | 253 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventLuckMagicPlayfabData | OUTSIDE-31 | 173 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventLuckyTowerData | OUTSIDE-31 | 2490 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventOfferDevourFishData | OUTSIDE-31 | 0 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventPackData | M20 | 94 | B3-C101@Client/Assets/Scripts/DataCenter/EventPackData.cs:103 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | EventPartnerStatueData | OUTSIDE-31 | 79 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | EventTransitionTokenDic | OUTSIDE-31 | 2 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | FishHuntGameCount | M01/M02 | 1 | B3-C089@Client/Assets/Scripts/DataCenter/DataCenter.SmallGame.cs:97 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | FishingChallengeData | M15 | 4 | | Malformed M15 field0;JSON null;需区分fresh空态与旧对象复用 |
|
||||
| 101 | FixedTimeShopDic | M13 | 119 | B3-C090@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:223<br>B3-C092@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:290<br>B3-C094@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:340<br>B3-C095@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:373 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | GeneralEventPackData | M22 | 287 | B3-C022@Client/Assets/Scripts/DataCenter/BargainPackData.cs:181 | Malformed M22 field0;selections=null;保持其余礼包字段,下一差异另审 |
|
||||
| 101 | GuideSaveDataNew | M10 | 342 | B3-C047@Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs:685 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | IsOpenAppraise | M01 | 4 | B3-C051@Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs:1457 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | IsOpenClubRed | M14 | 1 | B3-C170@Client/Assets/Scripts/Services/ClubService.cs:159 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | LastPaymentTime | OUTSIDE-31 | 28 | B3-C032@Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs:849<br>B3-C033@Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs:869<br>B3-C064@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:375<br>B3-C065@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:432<br>B3-C066@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:607<br>B3-C126@Client/Assets/Scripts/DebugFunc.cs:723<br>B3-C191@Client/Assets/Scripts/UI/Advert/AdvertPanel.cs:97 | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | Leadboard_LastContinent | OUTSIDE-31 | 2 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | LuckyTaskADKey | OUTSIDE-31 | 5 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | Map_5_101 | M03 | 348 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | Map_5_102 | M03 | 303 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | MiniBPKeyNew | OUTSIDE-31 | 1063 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | MMTest | M31 | 13 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | MonthlySignEvent | M12 | 90 | B3-C085@Client/Assets/Scripts/DataCenter/DataCenter.SignupData.cs:105<br>B3-C086@Client/Assets/Scripts/DataCenter/DataCenter.SignupData.cs:157 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | NewPlayerDataDic | M01/M02/M03/M05/M08/M09 | 388 | B3-C050@Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs:1182<br>B3-C146@Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs:786 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | NewRodList | M01 | 13 | B3-C048@Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs:339<br>B3-C049@Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs:370 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | OfferChainsChestData | M16 | 562 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | OfferDiscoPartyManager | M17 | 750 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | OfferStoryChain | OUTSIDE-31 | 14 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | OfferSweepPackData | OUTSIDE-31 | 131 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | Pack1A1Data | OUTSIDE-31 | 79 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | Pack1A2Data | OUTSIDE-31 | 97 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | PiggyBankPackData | M21 | 287 | B3-C120@Client/Assets/Scripts/DataCenter/PiggyBankPackData.cs:196 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | RodData | M03 | 99 | B3-C052@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:429<br>B3-C054@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:589<br>B3-C055@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:619<br>B3-C056@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:645<br>B3-C122@Client/Assets/Scripts/DataCenter/PlayerFishDataRod.cs:275 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | RodLevelData | M03 | 11 | B3-C053@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:530 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | SeasonStampData | OUTSIDE-31 | 865 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | ShopPackBuyCount | M04 | 9 | B3-C068@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:702<br>B3-C069@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:732 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | SoloDataKey | OUTSIDE-31 | 183 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | TargetBuffDataList | M06 | 2 | B3-C025@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:294<br>B3-C026@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:299<br>B3-C027@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:310<br>B3-C028@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:348 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | TransitionData | OUTSIDE-31 | 27 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 101 | TriggerPackDataList | M13 | 2 | B3-C091@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:254<br>B3-C093@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:309<br>B3-C098@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:576<br>B3-C099@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:589<br>B3-C100@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:644 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | VIPAdPackData | M04 | 56 | B3-C077@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:1053<br>B3-C078@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:1085 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 101 | WelcomeBack | OUTSIDE-31 | 181 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | AquariumEventDataNewKey | OUTSIDE-31 | 438 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | BattlePassRecordTask | M11 | 161 | B3-C023@Client/Assets/Scripts/DataCenter/BattlePassData.cs:117 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | BombGameCount | M01/M02 | 1 | B3-C088@Client/Assets/Scripts/DataCenter/DataCenter.SmallGame.cs:88 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | BuffDataList | M06 | 106 | B3-C024@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:205 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | BuyData | M04 | 15 | B3-C067@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:631 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | CampDataDic | M07 | 14 | B3-C009@Client/Assets/Scripts/Camp/CampDataMM.cs:251 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | ChainPackDataNew | M04 | 63 | B3-C071@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:858<br>B3-C072@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:900 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | DigCount | OUTSIDE-31 | 36 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | DigGridData | OUTSIDE-31 | 0 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | epbdk | M26 | 173 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | epdk | M25 | 1012 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | Event1v1BattleSlapData | OUTSIDE-31 | 595 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | EventBoostPackData | OUTSIDE-31 | 53 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | EventCubeMeltData | M19 | 676 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | EventLuckGameRecord | OUTSIDE-31 | 253 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | EventLuckMagicPlayfabData | OUTSIDE-31 | 173 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | EventPartnerStatueData | OUTSIDE-31 | 120 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | FishHuntGameCount | M01/M02 | 1 | B3-C089@Client/Assets/Scripts/DataCenter/DataCenter.SmallGame.cs:97 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | FixedTimeShopDic | M13 | 233 | B3-C090@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:223<br>B3-C092@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:290<br>B3-C094@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:340<br>B3-C095@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:373 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | GuideSaveDataNew | M10 | 318 | B3-C047@Client/Assets/Scripts/DataCenter/DataCenter.GuideData.cs:685 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | IsOpenClubRed | M14 | 1 | B3-C170@Client/Assets/Scripts/Services/ClubService.cs:159 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | LastPaymentTime | OUTSIDE-31 | 27 | B3-C032@Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs:849<br>B3-C033@Client/Assets/Scripts/DataCenter/DataCenter.FishingEventData.cs:869<br>B3-C064@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:375<br>B3-C065@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:432<br>B3-C066@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:607<br>B3-C126@Client/Assets/Scripts/DebugFunc.cs:723<br>B3-C191@Client/Assets/Scripts/UI/Advert/AdvertPanel.cs:97 | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | Leadboard_LastContinent | OUTSIDE-31 | 2 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | Map_5_101 | M03 | 303 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | Map_5_102 | M03 | 182 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | MiniBPKeyNew | OUTSIDE-31 | 675 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | MMTest | M31 | 13 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | MonthlySignEvent | M12 | 91 | B3-C085@Client/Assets/Scripts/DataCenter/DataCenter.SignupData.cs:105<br>B3-C086@Client/Assets/Scripts/DataCenter/DataCenter.SignupData.cs:157 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | NewPlayerDataDic | M01/M02/M03/M05/M08/M09 | 365 | B3-C050@Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs:1182<br>B3-C146@Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs:786 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | NewRodList | M01 | 2 | B3-C048@Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs:339<br>B3-C049@Client/Assets/Scripts/DataCenter/DataCenter.PlayerData.cs:370 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | OfferDiscoPartyManager | M17 | 711 | | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | OfferStoryChain | OUTSIDE-31 | 14 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | OfferSweepPackData | OUTSIDE-31 | 131 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | Pack1A1Data | OUTSIDE-31 | 79 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | PiggyBankPackData | M21 | 170 | B3-C120@Client/Assets/Scripts/DataCenter/PiggyBankPackData.cs:196 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | RodData | M03 | 35 | B3-C052@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:429<br>B3-C054@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:589<br>B3-C055@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:619<br>B3-C056@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:645<br>B3-C122@Client/Assets/Scripts/DataCenter/PlayerFishDataRod.cs:275 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | RodLevelData | M03 | 22 | B3-C053@Client/Assets/Scripts/DataCenter/DataCenter.PlayerFishData.cs:530 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | SeasonStampData | OUTSIDE-31 | 503 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | ShopPackBuyCount | M04 | 9 | B3-C068@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:702<br>B3-C069@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:732 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | SoloDataKey | OUTSIDE-31 | 183 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | TargetBuffDataList | M06 | 2 | B3-C025@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:294<br>B3-C026@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:299<br>B3-C027@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:310<br>B3-C028@Client/Assets/Scripts/DataCenter/BuffDataCenter.cs:348 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | TransitionData | OUTSIDE-31 | 41 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
| 102 | TriggerPackDataList | M13 | 366 | B3-C091@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:254<br>B3-C093@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:309<br>B3-C098@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:576<br>B3-C099@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:589<br>B3-C100@Client/Assets/Scripts/DataCenter/DataCenter.TriggerPackData.cs:644 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | VIPAdPackData | M04 | 56 | B3-C077@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:1053<br>B3-C078@Client/Assets/Scripts/DataCenter/DataCenter.PlayerShopData.cs:1085 | 本轮该键所属模块未报诊断;不代表所有历史值/全部业务路径兼容 |
|
||||
| 102 | WelcomeBack | OUTSIDE-31 | 155 | | 未被31模块逐值解码;原字符串保留,须单独消费者专项,不可称Valid即已支持 |
|
||||
37
CodexOutput/upserver/P2AlphaAudit/A3-module-ledger.md
Normal file
37
CodexOutput/upserver/P2AlphaAudit/A3-module-ledger.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# A3:31模块双向台账
|
||||
|
||||
Decode位置及Apply合同详见JSON。Absent只说明本样本未覆盖对应Present;共享主档会关联多个模块,但100个原样本出现项只计一次。
|
||||
|
||||
| 模块 | 内容 | 101键 | 102键 | 观察与边界 |
|
||||
|---|---|---|---|---|
|
||||
| M01 | 玩家附加/核心 | BombGameCount、FishHuntGameCount、IsOpenAppraise、NewPlayerDataDic、NewRodList | BombGameCount、FishHuntGameCount、NewPlayerDataDic、NewRodList | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M02 | 小游戏次数 | BombGameCount、FishHuntGameCount、NewPlayerDataDic | BombGameCount、FishHuntGameCount、NewPlayerDataDic | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M03 | 鱼杆地图 | Map_5_101、Map_5_102、NewPlayerDataDic、RodData、RodLevelData | Map_5_101、Map_5_102、NewPlayerDataDic、RodData、RodLevelData | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M04 | 商店 | BuyData、ChainPackDataNew、ShopPackBuyCount、VIPAdPackData | BuyData、ChainPackDataNew、ShopPackBuyCount、VIPAdPackData | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M05 | 活动基础 | NewPlayerDataDic | NewPlayerDataDic | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M06 | 增益 | BuffDataList、TargetBuffDataList | BuffDataList、TargetBuffDataList | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M07 | 营地 | | CampDataDic | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M08 | 成就 | NewPlayerDataDic | NewPlayerDataDic | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M09 | 钓鱼箱 | NewPlayerDataDic | NewPlayerDataDic | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M10 | 引导 | GuideSaveDataNew | GuideSaveDataNew | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M11 | 战令 | BattlePassRecordTask | BattlePassRecordTask | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M12 | 签到 | MonthlySignEvent | MonthlySignEvent | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M13 | 触发礼包 | FixedTimeShopDic、TriggerPackDataList | FixedTimeShopDic、TriggerPackDataList | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M14 | 公会加载态 | IsOpenClubRed | IsOpenClubRed | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M15 | 挑战 | FishingChallengeData | | 101此模块field0 Malformed;102缺键按Missing,整档Valid |
|
||||
| M16 | 宝箱链礼包 | OfferChainsChestData | | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M17 | Disco礼包 | OfferDiscoPartyManager | OfferDiscoPartyManager | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M18 | 伙伴 | | | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M19 | 消块 | EventCubeMeltData | EventCubeMeltData | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M20 | 活动礼包 | EventPackData | | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M21 | 储蓄罐 | PiggyBankPackData | PiggyBankPackData | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M22 | 砍价礼包 | GeneralEventPackData | | 101此模块field0 Malformed;102缺键按Missing,整档Valid |
|
||||
| M23 | 足迹 | | | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M24 | 靶场 | | | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M25 | 药水 | epdk | epdk | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M26 | 弹珠 | epbdk | epbdk | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M27 | 刮刮卡 | | | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M28 | 节日礼包 | | | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M29 | Pinata | | | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
| M30 | 挖矿加载壳 | | | 仅重置加载壳;DigCount/DigGridData未在此解码,另列OUTSIDE-31 |
|
||||
| M31 | 登录附属 | MMTest | MMTest | 101此模块未报诊断但整档Malformed;102完整Decode Valid;无样本键不等于覆盖所有Present格式 |
|
||||
59
CodexOutput/upserver/P2AlphaAudit/A3-空态语义与未消费键裁定.md
Normal file
59
CodexOutput/upserver/P2AlphaAudit/A3-空态语义与未消费键裁定.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# A3:空态语义与未消费键裁定
|
||||
|
||||
2026-09-28,主会话只读盘点。以下是源码观察及后续候选,不是生产兼容修订批准。
|
||||
|
||||
## M15:不是随机坏档,但也不能宣称任意入口都可安全读取null
|
||||
|
||||
101保存的FishingChallengeData原字符串为`null`。旧代码有明确生产路径:FishingChallengeManager.ClearFishingChallengeData(184~189)清对象后DoSave;OnSettleFinished(false)(869~875)同样清对象后DoSave;DoSave(1082~1084)直接JsonConvert.SerializeObject。因此这不是只能靠手工造出的值。旧PlayerData.InitData在792~794遇到键才调用InitChallengeData(string),后者218反序列化得到null。
|
||||
|
||||
**null和缺键的等价性必须限定前态**:新对象默认null,受控Reset也清null;这两种前态下,缺键不装载与显式null的最终对象均为null。但旧对象已经有挑战数据时,“缺键不调用Init”与“显式null清对象”并不等价,不能推广为热换号安全,也不能通过删键替代兼容。
|
||||
|
||||
### 全部直接引用清单与分类
|
||||
|
||||
`M15-all-references.txt`和`A3-M15-read-ledger.json/md`覆盖当前Scripts全部142处标识符文本出现:94处需活动上下文、20处空判断/条件读取、6处赋值、1处别名、1处可保存null、1处声明、8处验证、11处注释。逐行保留路径、当前行号、原语句及上下文,注释/验证没有冒充运行读取。`M15-type-and-key-references.txt`扩大到Assets/LocalPackages的类型及key引用。该枚举不声称覆盖反射、资源持久化事件或任意动态加载代码的全部调用图。
|
||||
|
||||
| 入口/组 | null与fresh缺键行为 | 结论 |
|
||||
|---|---|---|
|
||||
| ShouldOpen:139;ChallengeState:1028 | 显式null分别false/state0 | 两种空态观察一致 |
|
||||
| Init:244、ProcessLastChallenge:278 | 无当前事件且null则返回;有当前事件才new并InitBaseData;历史结束处理先判非null | 空态与活动初始化分开,不应在Decode中激活挑战 |
|
||||
| UpdateLocalData:569、AddScoreByQuality:601、OnSettle:840、UpdateTimeData:946、GetTimeSpan:1072、GetOpenEventKey:1087 | 有null分支/前置检查,具体见当前源码 | 同一空对象前态下分支一致;不扩大为所有异步续体安全 |
|
||||
| IsFirstOpen:110、IsTimeAllow:169、IsFinishCurLevel:200、IsClearAllLevel:205、各比分/结算/机器人/奖励方法 | 多处直接解引用,需要已初始化活动 | null与fresh缺键均不满足活动前置;不能为让这类入口继续而造默认挑战 |
|
||||
| CheckAutoOpenPanel:495、IsSettleState:1062 | 状态0路径不进入需要时间的分支 | 对空态有保护 |
|
||||
| InChallenge:510 | 状态0仍可发起资源加载;后续依赖eventChallengeMain/config,未独立证明无效入口无法触发 | 保留为活动入口生命周期限制,本次不修,不批准101真实挑战运行 |
|
||||
| HomeBtnChallenge.OnEnable:64~119 | CheckInit→ShouldOpen;false时禁用并return,其后才直接读EventId/uiStep | 正常首页入口按此门工作;后续动画/事件读取仍依赖活动上下文 |
|
||||
| Challenge UI/Scene/Road/Players | 全部直接读取位置见台账;例如SceneRoad.Awake:81取别名,82读_thisEventData.step | 依赖挑战场景合法进入;直接null解引用在两种空态下都不安全,未运行这些场景 |
|
||||
| KV捕鱼奖励准入UserService.KVFishingReward:127 | 非null才判断挑战状态 | 不将缺挑战自动当作已启动挑战 |
|
||||
| Clear/OnSettleFinished(false)/DoSave | 明确可写回JSON null | 保留原样本和原key,不授权自动删键 |
|
||||
|
||||
最小候选:后续独立兼容方案只讨论“存在且为JSON null”的挑战输入如何保持未激活空态,原对象结构的严格检查保持。不得改变活动入口/场景/计分/奖励算法;需要测试fresh、Reset后、旧状态到空态、非对象错误输入及保存语义。此处没有修改Schema或Apply。
|
||||
|
||||
## M22:null列表是原构造默认值,不能用清空礼包消除诊断
|
||||
|
||||
GeneralEventPackData是struct,构造函数:30的selections默认null,:45原样保存。BargainPackData.UpdateData:204~216构造时未提供selections,随后SaveData:181序列化全部_data;原加载PlayerData:829~836按redirectID/PackType=3调用LoadData(:185原样赋值)。101的redirect4056001在冻结配置中PackType=3(A3-M22-pack-config.json),不是因为礼包类型错配而故意拒绝。
|
||||
|
||||
`M22-all-selections-references.txt`核查Assets/LocalPackages当前C#文本:旧构造与序列化可保留null;现有Bargain玩法中没有找到读取列表元素/Count的业务逻辑,元素访问出现在KV验证;新DecodeBargain:238 IntegerList要求数组,PlayerKVBargainState:318拒绝null,Apply:64复制新List。因此**不是只改Schema一行即可保证整个物化链支持null**。
|
||||
|
||||
候选优先讨论保留null的窄兼容:Schema、解码DTO、Apply/Snapshot各自应明确定义null、空数组和非空数组;其余11整数/2布尔/浮点等字段与_isPresent不能丢失。不以“当前没读元素”为由把整键删除、重建礼包或自动把null写成[]。真正改动白名单和测试须另完整评审。
|
||||
|
||||
## 26种模块外键(42个出现项)
|
||||
|
||||
100个样本出现项中,58个出现项关联31模块;42个出现项/26种键在该解码图之外。Schema的Valid仅覆盖31模块,不等于raw中所有key逐值通过。Raw保留这些键供其他消费者,并不承诺其生命周期隔离或迁移安全。
|
||||
|
||||
| 类别 | 键与旧消费定位 | 本次处置 |
|
||||
|---|---|---|
|
||||
| 泛型活动仓库 | Event1v1BattleSlapData、EventBoostPackData、EventBossFightData等;具体类型引用见key台账,EventDataRepository:26/38/55按typeof(T).Name读写(原B3-C001/C002等) | 保留;需具体活动解码/写入归属专项,未为它们造Schema |
|
||||
| 懒加载或独立模块 | AquariumEventDataNewKey、DigCount/DigGridData、EventBingo、EventLuckGameRecord、EventLuckMagicPlayfabData、EventPartnerStatueData、MiniBPKeyNew、LuckyTaskADKey、OfferStoryChain、OfferSweepPackData、Pack1A1Data/Pack1A2Data、SoloDataKey、TransitionData、WelcomeBack、DeferredRewardStashService、LastPaymentTime | 逐key旧引用与B3字面量/同文件候选位于A3-key-ledger.json;存档保存不等于已批准所有玩法使用;不清理 |
|
||||
| 当前C#文本未定位 | EventLuckyTowerData、EventOfferDevourFishData、EventTransitionTokenDic、Leadboard_LastContinent、SeasonStampData | Assets/LocalPackages搜索exit1无命中,见搜索元数据;可能历史/外部/动态来源,无法判断废弃,原值保留 |
|
||||
|
||||
原审查引用的“234行”是早期文本初扫;本轮复用的B3DesignAudit/calls.json实际223个语法调用。按原B3-C编号/历史行号引用,并附当前源码引用;同文件候选不冒充精确语义绑定,也不因无字面量命中推断无读写。
|
||||
|
||||
## 其他严格项与样本覆盖限制
|
||||
|
||||
| 项 | 本轮观察 | 后续规则建议 |
|
||||
|---|---|---|
|
||||
| AD坏槽/多表示 | 两样本M08未报诊断;Achievements/DecodeAchievements分别解析AchievementData、AD、ad并检查重叠值;当前样本没有覆盖所有旧坏槽 | 保留严格拒绝迁移候选;不得沿用旧静默跳过,也不得宣称坏槽已实测兼容 |
|
||||
| 未知鱼/错归属/缺卡配置/同卡冲突 | M03本轮未报诊断;DeriveFish显式检查鱼/地图/卡及下标;部分旧派生会限制重量/等级、补最低卡数量 | 原字节与运行派生值区分,原备份不改;没有新样本时仅记录合同,不能说全历史档支持 |
|
||||
| core布局/重复表示/时间/数值 | 新主档、别名与旧顶层存在优先级/冲突处理;此次无新diagnostic,不代表所有布局/时区组合 | 保留各表示与采样UTC/cfg指纹;不手工拼新core试图消诊断 |
|
||||
| 未采到Present的模块 | M18/M23/M24/M27/M28/M29等本批无相应直接键,M30仅加载壳 | 明确Absent覆盖,未来要拓展这些业务需相应样本和用例;不把31节点运行过当31类真实档齐全 |
|
||||
|
||||
结论:两类兼容冲突已得到具体来源及边界,不需要先修改整个活动框架;后续最小单位应为101两类空态的精确兼容方案。模块外键和样本代表性仍是正式启用前问题;本轮不修改101,也不覆盖102已续进度。
|
||||
49
CodexOutput/upserver/P2AlphaAudit/A4-交付与后续最小开发建议.md
Normal file
49
CodexOutput/upserver/P2AlphaAudit/A4-交付与后续最小开发建议.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# P2-α-A交付与后续最小开发建议
|
||||
|
||||
2026-09-28。主会话已完成A1裁决、A2现有固定入口诊断、A3语义盘点和本次A4交付准备,**待独立执行复核,尚未宣布整个P2-α或G4完成**。
|
||||
|
||||
## 结果
|
||||
|
||||
| 验收 | 证据与结论 |
|
||||
|---|---|
|
||||
| 方案完整审查与裁决 | 20/20基线一致;七项与四P3全部裁决,A1-审查裁决与执行批准.md |
|
||||
| 配置/时间 | cfgData267项、Tables源码616项,共883项前后不变;A1-environment-freeze.json记录集合hash与KV102原采样时间;A2-sampling-window.json记录本地UTC窗口,未冒充服务器时间 |
|
||||
| 新空闲入口 | 旧103828正常退出,新90064;A2-get-version.json=2022.3.62f2c1;前后playing/enabled/ready=false、run=null、permit=false;没有创建claimed,原11个保持 |
|
||||
| 本地解码 | 10155键→Malformed,仅M15/M22 field0;10245键→Valid,0错误;源hash与历史cdTime修复后诊断一致;只诊断,不Open/Apply/发布,writes=0 |
|
||||
| 键覆盖 | A3-key-ledger.json/md:100出现项,58唯一键,含逐值hash、字段规则、旧源码/B3直接key编号及同文件候选、Decode/Apply引用与未验证项;原样本不去重 |
|
||||
| 模块覆盖 | A3-module-ledger.json/md:31节点,明确Absent样本边界和加载壳;不是31类真实Present全覆盖 |
|
||||
| M15逐入口 | 142处直接引用,扩大至Assets/LocalPackages且忽略ignore规则后仍142无新增;分类和逐行上下文保留;Road别名继续追踪;null安全仅限对应前置条件 |
|
||||
| M22 | 旧构造/保存允许null;4056001 PackType=3;新DTO与Apply也要求非null,不能只修改Schema或清空礼包 |
|
||||
| 模块外键 | 42出现项/26种;5种当前源未定位也保留。不把Valid解释为所有Raw键兼容;不用新解析器静默过滤 |
|
||||
| 运行边界 | Unity错误日志0;无Play/运行许可/正式接口请求/存档写/业务或测试源码改动;只用了原CLI固定本地诊断 |
|
||||
|
||||
本地Editor自身可能有启动检查等环境联网;“无正式接口请求”指本任务没有访问s101/PlayFab数据接口,不将环境行为夸张为整台机器网络流量为零。
|
||||
|
||||
## 最小后续建议
|
||||
|
||||
下一开发候选是**101两类历史空态的精确兼容差异方案**,以只改必要加载表示、保留原始存档为目标。是否进入该方案由本单元独立复核后的主会话裁决决定;不在本轮直接改代码。
|
||||
|
||||
- M15:讨论存在JSON null能否物化为“未激活挑战”并保留raw key;普通对象严格检查保留。验证fresh/Reset后/旧状态→空态,错误字符串/数字/数组仍拒绝;不改活动开启、场景或奖励逻辑。
|
||||
- M22:首选评估保留selections=null的表示,而非自动转[]。范围必须同时覆盖Schema、DecodedSave不可变DTO、Bargain Apply/Snapshot及真实对象回归,集合非空时仍深复制;其余礼包字段和存在标记不变。
|
||||
- 两类处理均需完整方案独立审查后才编码。诊断只能证明101当前两条首要问题,消除后若浮现下一处配置问题,应记录并按差异边界处理,不能扩大修复直到绿。
|
||||
- 不要求101变Valid才认可本次盘点完成;不导入101,不覆盖102,不再钓鱼补证,不开展全活动重构。
|
||||
|
||||
## 后续真实迁移政策(产品待确认,未授权执行)
|
||||
|
||||
| 场景 | 建议政策 | 当前证据与缺口 |
|
||||
|---|---|---|
|
||||
| 尚未迁入KV、旧PF仍为唯一权威 | 兼容不足先停止该账号切换,是否保留PF入口由产品确认;不给玩家空白新档 | 已定位两类空态和额外键;缺代表性真实用户样本,不能直接用于全用户拒档 |
|
||||
| KV已存在后续进度 | 不用旧PF覆盖或自动合并;先确认权威源、身份与停写窗口 | 102为具体反例:旧PF与当前KV已分叉;当前KV234004/383仅为9/28备份观察,不是今后永远基线 |
|
||||
| 决定迁移单账号 | 源/目标各自备份与hash、账号映射证据、精确key/值差异、排他写入条件及恢复清单必须可审 | 101/102授权不代表任意其他账号或批量导入授权;没有CAS不能保证并发覆盖安全 |
|
||||
| 写入Unknown/可能已提交 | 停止后续写,独立读取观察;不自动重发、不切回PF继续双写 | 读取一致只证明观察时点;无新幂等/CAS保证 |
|
||||
| 人工恢复 | 只对确认属于本次、且之后无新增合法进度的精确键讨论恢复;有并发/不明变化则停止 | 不全库回退、不删未知键;任何恢复需要当前态和具体范围重新审核 |
|
||||
|
||||
用户产品决策仍包括:不兼容档如何呈现/是否保留旧入口;目标已有数据时何者权威及人工处置;正式迁移对象与停写窗口。该表是可审政策草案,不以用户本轮“进入开发”替代这些决定。
|
||||
|
||||
## 作者自审与限制
|
||||
|
||||
没有新建诊断类、Schema模拟器、运行框架或兼容代码;清单生成只是shell文本/元数据盘点,实际判断使用原固定生产Decode。一次清单整理命令的PowerShell语法错误发生在执行前,纠正后生成;未产生业务副作用,不涉及源码。
|
||||
|
||||
本轮未观察的新输入错误、额外key消费路径、挑战异步入口合法性、通用反射/资源事件覆盖、全量真实用户代表性均列为未验证,没有冒称修复。历史PF身份/DNS、StorageError、非Editor编译和完整4B3/4C/4D/tickets问题保持,不让本专项扩大范围。
|
||||
|
||||
交独立复核:使用A4-独立执行复核提示词.md及execution-review-hashes.json。复核返回后由主会话核hash并逐条裁决,决定本只读单元是否关闭以及下一最小兼容方案;不能把本次只读交付当成正式迁移完成。
|
||||
18
CodexOutput/upserver/P2AlphaAudit/A4-独立执行复核提示词.md
Normal file
18
CodexOutput/upserver/P2AlphaAudit/A4-独立执行复核提示词.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# P2-α-A只读盘点独立执行复核
|
||||
|
||||
你是独立复核侧。仅只读源码/本地证据/hash,不启动Unity、执行许可、联网、写存档、修改共享状态或源码。落盘 `CodexOutput/upserver/P2-alpha-A只读盘点执行独立复核-2026-09-28.md`,由主会话裁决关闭。
|
||||
|
||||
先核P2AlphaAudit/execution-review-hashes.json,阅读原方案、独立方案报告、A1裁决、A4交付;核A1-review-verification.json中的原方案基线证据。原20项清单和后续产物清单含义不同,不混淆。
|
||||
|
||||
请逐项审查:
|
||||
|
||||
1. 生产/测试白名单为空是否保持,是否只复用InspectPFBackup,未创建新Schema/诊断框架、未Open/Apply/Play/发许可或写正式接口。
|
||||
2. 20/20裁决、267cfgData+616Tables、真实UTC采样窗、旧/新进程版本与准入是否充分;配置集合hash与KV样本时间是否可复核。
|
||||
3. A2原结果101的M15/M22两项、102Valid与历史对照是否真实,不把合成身份/本地时间冒充真实认证。
|
||||
4. 100样本键出现项、58唯一键、31模块双向表、42出现项/26模块外键是否准确;B3原223语法调用编号/历史行号与当前引用区分是否诚实,字面量缺失和同文件候选不等于完整语义绑定。
|
||||
5. M15所有142直接引用及别名是否涵盖源码边界,null与缺键的fresh/Reset前态限制是否正确;未把挑战直接解引用无保护解释成“任何入口安全”。
|
||||
6. M22构造默认null、PackType=3、当前DTO/Apply约束是否核实;后续候选是否保留其他礼包字段,不自动规范[]或清档。
|
||||
7. 未定位5键、AD坏槽、未知鱼/配置派生、Present样本不足及身份/并发等未决项是否清晰保留;候选政策是否误当用户产品批准。
|
||||
8. 能否关闭本只读盘点单元(非整个P2-α/G4),然后进入101两类空态最小兼容完整方案准备;如不够请给精确最小补充,勿要求自动正式服试错或消费补样。
|
||||
|
||||
输出受审hash结果、逐条结论、P1/P2/P3与引用位置、接受/有条件接受/退回。遇未覆盖场景应按本方案要求的“发现并登记未决项”与“必须在本单元验证完成的项”区分,不因盘点发现未来问题就自动扩大本轮代码范围。
|
||||
39
CodexOutput/upserver/P2AlphaAudit/A5-执行复核裁决与关闭.md
Normal file
39
CodexOutput/upserver/P2AlphaAudit/A5-执行复核裁决与关闭.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# P2-α-A执行复核裁决与关闭
|
||||
|
||||
2026-09-28,主会话。接受独立执行复核,**限定关闭P2-α-A只读盘点单元**,无需再次复审此单元。进入101两类历史空态精确兼容的完整方案准备;不是批准兼容编码、101导入或真实玩法运行。
|
||||
|
||||
## 基线核验
|
||||
|
||||
更新共享文档之前重算1232/1232项SHA256及字节,全部一致。记录:`A5-execution-review-verification.json`。
|
||||
|
||||
- 受审清单SHA256:`D35384EF21F1AD6A6C3D55859AEE4CC334EDB80F8059A6FC0FE37C1EB28740A2`。
|
||||
- 独立报告SHA256:`B374F3346D42946666F403C9542AB408CDBBAF31E50C19FFF0A01A145C7E1685`。
|
||||
- 报告:`../P2-alpha-A只读盘点执行独立复核-2026-09-28.md`;结论接受,无P1/P2。
|
||||
- 不重写原受审清单及A1~A4证据。之后入口/TODO/日志等变化属于本关闭及下一方案的文档增量,不是受审源码漂移。
|
||||
|
||||
## 八项裁决
|
||||
|
||||
| 项目 | 裁决 |
|
||||
|---|---|
|
||||
| Q1 白名单与只读 | 接受;仅现有Inspect和静态盘点,未改业务/测试源码,未发正式存档接口请求 |
|
||||
| Q2 配置、时间及准入 | 接受;883项指纹、原KV采样时间及本地UTC窗口分开;90064诊断前后空闲无许可,不伪称本轮再次实测编辑器状态 |
|
||||
| Q3 诊断 | 接受;101仅M15/M22,102 Valid;合成描述符不等同真实身份,诊断不等同可导入 |
|
||||
| Q4 台账 | 接受;100出现项/58唯一键/31模块/26种模块外键,B3候选与实际语义分开 |
|
||||
| Q5 M15 | 接受;142直接引用及Road别名,空态等价限定fresh/Reset,直接解引用场景前置仍未证明 |
|
||||
| Q6 M22 | 接受;null旧构造来源成立,后续应覆盖Schema/DTO/Apply,保留其他字段与存在性 |
|
||||
| Q7 未决项 | 接受;5键、AD/配置严格项、代表性和身份/并发缺口保持;产品政策未获执行批准 |
|
||||
| Q8 关闭边界 | 接受;关闭本只读单元,不要求101先变Valid,不关闭整体P2-α、4C或G4 |
|
||||
|
||||
## 三条P3裁决与落实
|
||||
|
||||
| 意见 | 裁决与交付 |
|
||||
|---|---|
|
||||
| P3-1 每处M15前置状态锚点 | 采纳;下一方案附142行引用、近邻声明/条件行号及已知状态门;找不到可证明的门时明确“依赖有效活动上下文、未证明可达性”,不编造保护 |
|
||||
| P3-2 五键定位尝试 | 采纳;下一方案显式链接原搜索结果和元数据,并列搜索模式/范围/exit1含义;不为了清档重跑或推断废弃 |
|
||||
| P3-3 102分叉时间线 | 采纳;下一方案附9/24原PF、一次导入、4C1、4C2及9/28末次备份的证据链接;时间点不得拼成单次消费过程 |
|
||||
|
||||
## 当前边界
|
||||
|
||||
下一工作是完整兼容方案、最小文件白名单、红绿/真实对象测试矩阵与送审提示词。沿用方案完整评审后编码、每检查点记录日志。主会话可直接准备方案,无需用户重复选择方向;收到下一方案独立报告后再核hash并裁决实施。
|
||||
|
||||
本次关闭只读核验,没有重跑Unity/游戏、收费动作或接口调用。正式地址固定`http://s101.local:18080/`;仅Unity CLI Loop,不用UnitySkills、不打包。
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"count": 20,
|
||||
"matched": 20,
|
||||
"manifestSHA256": "577F09692DD4534BD2DE81E150B61780C410D15DA9E30177C435790B73C093CB",
|
||||
"mismatches": []
|
||||
}
|
||||
107
CodexOutput/upserver/P2AlphaAudit/design-review-hashes.json
Normal file
107
CodexOutput/upserver/P2AlphaAudit/design-review-hashes.json
Normal file
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"phase": "P2-alpha-A-design-only",
|
||||
"createdUtc": "2026-09-28T03:16:31.0489632Z",
|
||||
"count": 20,
|
||||
"items": [
|
||||
{
|
||||
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
|
||||
"sha256": "63C369187806A2645C8C6A1411397A6CB7CDDBF5A2DC0E41D905872168DC8675",
|
||||
"bytes": 5105
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/BargainPackData.cs",
|
||||
"sha256": "E3AB3F9E80509DDF959A26B8C3C2DA957B760DDC3B82A93D4160711DE31D3748",
|
||||
"bytes": 12328
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/DataCenter/FishingChallengeManager.cs",
|
||||
"sha256": "DDE32B179C213CA4B3C7B0929FA807FFA454BDCFC490C3EA6996CBDB2AD7B3DE",
|
||||
"bytes": 37838
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs",
|
||||
"sha256": "710A0050277BE07AC781F976945D8D2DDF7704EA616D0BF83797ABA2FA6530EA",
|
||||
"bytes": 6874
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
|
||||
"sha256": "6AA8973A276C0D297B1FC9076349F2CC15EC4B58968FFA721274118261CB162E",
|
||||
"bytes": 75709
|
||||
},
|
||||
{
|
||||
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
|
||||
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
|
||||
"bytes": 40556
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/后续真实运行采样与离线复跑约定-2026-09-28.md",
|
||||
"sha256": "AA577135FA3D4DC8B0B510BAEA8550DB3F8FFCE8C8F6C9DF983AC8373A653A74",
|
||||
"bytes": 2526
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4最小真实玩法闭环102兼容审查裁决与实施批准-2026-09-24.md",
|
||||
"sha256": "BCC494B50715A76D66A0B7AEC94E782327538F5D0AED011737AB1AD2370F2CEE",
|
||||
"bytes": 2108
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2修订2审查裁决与实施批准-2026-09-23.md",
|
||||
"sha256": "71DF63FCEE375F8D6E6B0DCB9AD332CCBCC44668B6EA9BBB7C4E08046E58C8B6",
|
||||
"bytes": 4262
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4B2字段与模块加载合同-正式版3-2026-09-23.md",
|
||||
"sha256": "2DB02D14C9C06472960591B265B80500A3CE389C6BB20E935CDE45C7F0B707A4",
|
||||
"bytes": 37288
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2实施复核裁决与关闭-2026-09-28.md",
|
||||
"sha256": "8ABDA98C319D9A6F9570F6B36705E971EF407560083DAC742200296222E6A281",
|
||||
"bytes": 4781
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/阶段4C2完整实施独立复核-2026-09-28.md",
|
||||
"sha256": "0AFFFE245B1F8F08D656C56BE7D2A21B4AC06A9F3DD830045227E21FBEA978CE",
|
||||
"bytes": 7145
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/其他AI审查提示词-P2-alpha-A只读盘点-2026-09-28.md",
|
||||
"sha256": "B8B6158681A560BA52FCBF1C909332B30004A47C7398F1C4AAAE61E645FB1412",
|
||||
"bytes": 2033
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/102.json",
|
||||
"sha256": "A00C2BA9B1E11C177D735CEF7CC925099E9D7C32ADFAE9B0D6DBBA6F784BEF40",
|
||||
"bytes": 14408
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/cdtime-source-schema.json",
|
||||
"sha256": "05DC05CA47FFF26DBA2EC41761B536F589EB4C5A7FEE6E754952EF27C688165D",
|
||||
"bytes": 1442
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/101.json",
|
||||
"sha256": "E6EB3E656B62A3535FDB8F0DC517321A4C3E32F3A8D95385A2B7D5C0AA8222EF",
|
||||
"bytes": 22144
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/102.json",
|
||||
"sha256": "827F36084648449CEFAFB96B3CE62093DF70B8A87E33A526DA5B03A9C135A377",
|
||||
"bytes": 14392
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-schema.json",
|
||||
"sha256": "6E475CE8820697C4C6B3311A8C5212B604598AC76CF093F637A235092C20A873",
|
||||
"bytes": 1536
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-source-inspection.cs.txt",
|
||||
"sha256": "B12C6122FE5738F05420D0C4A7A2DAF384DDC51CF2F1131A40B7821795737F16",
|
||||
"bytes": 360
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2-alpha-A已有存量档只读盘点方案-待评审-2026-09-28.md",
|
||||
"sha256": "10B737948F395B0CD6E10EE8026B70A688CD697D9036EDA5EE6D478ECFFDB91E",
|
||||
"bytes": 9860
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"checkedUtc": "2026-09-28T03:33:25.0594371Z",
|
||||
"manifestSHA256": "D35384EF21F1AD6A6C3D55859AEE4CC334EDB80F8059A6FC0FE37C1EB28740A2",
|
||||
"checked": 1232,
|
||||
"mismatches": []
|
||||
}
|
||||
6169
CodexOutput/upserver/P2AlphaAudit/execution-review-hashes.json
Normal file
6169
CodexOutput/upserver/P2AlphaAudit/execution-review-hashes.json
Normal file
File diff suppressed because it is too large
Load Diff
41
CodexOutput/upserver/P2AlphaImport101/D0-config-hashes.json
Normal file
41
CodexOutput/upserver/P2AlphaImport101/D0-config-hashes.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"version": "import101-fixed-20260928-v1",
|
||||
"count": 7,
|
||||
"items": [
|
||||
{
|
||||
"path": "cfgData/tbglobalconfig.json",
|
||||
"sha256": "9AEE49D6041E2888798AEDB89ACD6503E6FB866EAAA1D148F2F5D0E13D2F5DA0",
|
||||
"bytes": 6818
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbroddata.json",
|
||||
"sha256": "A1634FD01B03C23218D652B9944CAA7B08E38587CA89C41A5B7E2974A4DD74E6",
|
||||
"bytes": 36327
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbmapdata.json",
|
||||
"sha256": "1B81E9F1727BC1F39DF68AA98BECEACB94601A818BC82667C29E92304EEE8646",
|
||||
"bytes": 112619
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbeventpackmanager.json",
|
||||
"sha256": "FC9CEA913387D84824251358260BBDBAC98DEA37FBCEAD74ACFA0F833710D4BE",
|
||||
"bytes": 663446
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishingevent.json",
|
||||
"sha256": "C8A4A9794E9390C94B9C8F1927B3E718B3EB9F784F0889508E1E576DD4B77A2D",
|
||||
"bytes": 1000464
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishdata.json",
|
||||
"sha256": "846EEF5FF4139BBC5B9891686CCDD7AA8E836F1D1CBB6EAD546B14B60093C2E0",
|
||||
"bytes": 1756698
|
||||
},
|
||||
{
|
||||
"path": "cfgData/tbfishcard.json",
|
||||
"sha256": "0E534C8AE67B77FA3FA295D73EE3CCED4C6B788F6FEED6DAE19ABF93D11839A0",
|
||||
"bytes": 456977
|
||||
}
|
||||
]
|
||||
}
|
||||
124
CodexOutput/upserver/P2AlphaImport101/D0-固定101历史档导入最小方案-待评审.md
Normal file
124
CodexOutput/upserver/P2AlphaImport101/D0-固定101历史档导入最小方案-待评审.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# P2-α-D:固定101历史档导入最小方案
|
||||
|
||||
2026-09-28,版本1,主会话。**方案完成,待独立评审;未编码、未导入。** 用户已确认固定历史备份与101映射;本方案不再请求重复确认该决定。真实写入前的停写窗口尚未建立。
|
||||
|
||||
## 1. 目标、产品决定和不做的事
|
||||
|
||||
将用户指定的历史PF101样本作为可丢弃专用账号101的固定测试起点,原样写入空的s101目标,再完整读回核对。这是一次测试导入,不代表所有历史用户、活动业务或身份系统已完成迁移。
|
||||
|
||||
- PF来源:`KVGameplayLoopTests/pf-source-backups/20260924T041802Z/101.json`,title108EE8/customId101,55键,SHA256=`E6EB3E656B62A3535FDB8F0DC517321A4C3E32F3A8D95385A2B7D5C0AA8222EF`。
|
||||
- 用户确认其映射至s101 playerId101,接受固定历史测试起点;不要求重新访问PF,也不把其称为当前PF最新数据。
|
||||
- API固定`http://s101.local:18080/`;目标非空、来源或候选校验失败则停止,不覆盖、不合并、不生成空白档。
|
||||
- 102及其导入claim保持原状;不登录102、不复用/修改Import102,不运行PF、玩法、批量迁移、热换号、打包或新交易/CAS框架。
|
||||
- C的070339Z目标空快照仅为历史参考;其at是本地UTC,本地钟与服务器钟偏差未校验。实际写前必须新Get,不把历史快照当锁或服务时间。
|
||||
- 不合格时只停止101本次导入,不改变旧PF入口、路由或全体用户产品策略。26模块外键等保持原值,不声称业务消费者已迁移。
|
||||
|
||||
## 2. 选型与改动白名单
|
||||
|
||||
| 方案 | 结论 |
|
||||
|---|---|
|
||||
| 单独固定101辅助入口,沿用既有客户端/解码器 | 采用,便于约束一次测试,游戏逻辑零改动 |
|
||||
| 把Import102改成通用账号迁移器 | 不采用,扩大原已验收路径和参数范围 |
|
||||
| 直接HTTP脚本导入,省略候选校验/claim/替身测试 | 不采用,无法验证写前拒绝与Unknown路径 |
|
||||
|
||||
唯一允许的源码变更(均在`CodexOutput/upserver/KVGameplayLoopTests/Preflight/`):
|
||||
|
||||
1. **Program.cs**:增加两个严格单参数分支`--verify-import-101`和`--import-approved-101`。保留现有分支内容/默认拒绝逻辑不变,不添加任意账号/地址/路径参数。
|
||||
2. **新增Import101.cs**:固定入口及一次导入流程;复用S101AccountSession、PlayerKVClient、PlayerKVSaveSchema.Decode。配置快照构造沿用Import102现有取值方式,复制所需短函数,不为共享函数改Import102。
|
||||
3. **新增Import101Tests.cs**:固定离线验证组及替身handler;不新建通用测试/迁移框架。
|
||||
|
||||
csproj已有本目录C#默认包含规则,不修改项目文件。Client下C#、cfgData、场景、原备份、旧导入器及claims禁止改动。新编译产物只进入本目录D1-bin及原Preflight obj;无Unity编译必要。
|
||||
|
||||
数据/证据输出仅本目录:已冻结`D0-source-values.json`(55键名/hash/UTF8长度,不含整档值);D1/D2离线证据;D3停写记录;唯一`import-101.claimed`;`runs/<UTC+随机唯一后缀>/`的账号描述、before、候选报告、Set结果、after和核对。不得覆盖旧文件。
|
||||
|
||||
## 3. 固定输入与本地门
|
||||
|
||||
固定生产入口不接收外部覆盖参数,检查顺序:
|
||||
|
||||
1. 确认固定工作目录/源路径/API/101常量;现有claim存在即拒绝,禁止删除旧claim或换目录重试。
|
||||
2. 校验原文件完整hash,再用DateParseHandling.None、拒绝重复属性/尾随内容读取。source=PlayFab/titleId108EE8/customId101、非空playFabId必须符合冻结源;data只能是55项唯一键/字符串值。
|
||||
3. 逐项与受审D0-source-values的Ordinal键集合、UTF8长度/hash匹配;源原值保持在内存,不重新序列化值内JSON。未知键同样写入,不能按31模块过滤。
|
||||
4. 配置固定读取7项:tbglobalconfig、tbroddata、tbmapdata、tbeventpackmanager、tbfishingevent、tbfishdata、tbfishcard;以及既有cfg.ConditionType。固定清单`D0-config-hashes.json`,版本`import101-fixed-20260928-v1`;送审hash不符停止,不自动更新、补配置或转默认值。两个D0数据清单本身的hash须在实现中锁定并随实施复核核验,不允许通过同时修改清单绕过来源/配置门。
|
||||
5. 新证据目录必须不存在。目录或本地证据持久化失败时,写前直接停止;无正式请求也要保留可用错误输出。
|
||||
|
||||
源元数据检查和逐值清单是误操作防护,不是秘密/签名校验。来源及测试映射的产品依据是本轮用户明确答复。
|
||||
|
||||
## 4. 登录、候选和一次写入顺序
|
||||
|
||||
### 4.1 登录与写前数据
|
||||
|
||||
只登录101一次;使用原会话Cookie/禁止重定向/既有超时。成功且NewlyCreated=false,PlayerId101;记录InternalId、CreateTimeUtc、ServerTimeUtc及本地采集时刻,不记录Cookie。PlayerId是客户端请求ID,不把它冒充服务端回显或正式跨系统身份绑定。
|
||||
|
||||
登录可能产生会话/更新元数据;newCreate后置拒绝不能撤销服务器可能已创建的账号。失败/newCreate停止,不Get或清理账号,不自动重试。
|
||||
|
||||
随后第一次全量Get,必须成功,将完整before原值持久化后要求0键。非空立即停止,无Set/删除/合并。此Get不提供CAS,安全边界依赖已确认的专用账号停写窗口;不宣称消除了外部并发竞争。
|
||||
|
||||
构造与Import102同类的候选:本次真实账号描述符、固定epoch=1/专用ownerId、原PF playFabId身份快照、channel none、固定cfg快照及**本次ServerTimeUtc**。只Decode,不Apply/Open真实游戏会话。完整保存verdict/diagnostics,再要求Valid;未通过则保留原档并停止。A/B样本Valid只作依据,不跳过本次候选。
|
||||
|
||||
### 4.2 claim与Set
|
||||
|
||||
以上所有写前证据保存成功后,用CreateNew、Flush(true)持久化固定`import-101.claimed`:账号/API、源hash、键数、证据目录、配置版本、开始UTC和已确认停写记录标识。claim冲突/写盘失败则零Set;若已留下部分claim也不得自动删除。claim持久化之后、调用Set之前即认定“本次尝试已消耗”,即使进程此时崩溃也不自动重跑。
|
||||
|
||||
只调用一次SetAsync,载荷为全部55键原字符串。没有Set重试、PF双写、Delete或补偿。进入调用后本地/网络异常都按“可能已写”处理;不能因没有set-result文件就判定没写。
|
||||
|
||||
### 4.3 写后观察与本地落盘失败
|
||||
|
||||
Set调用正常返回或抛异常后,只要进程仍可运行且无并发/身份等新异常,均尝试**一次**同会话全量Get观察;Set结果文件保存失败不得短路此观察。实现用明确的try/catch/finally路径:单独记录网络结果/异常与本地保存异常,再走观察;Get失败不重试,保留claim。
|
||||
|
||||
观察结果若可用,尽力以CreateNew保存完整after及55项逐值矩阵(新增/缺失/额外键、UTF8长度/hash)。写后磁盘失败只能说明证据不完整,不反推KV没写;将错误送stderr/非零退出,仍不再Set。若进程/系统崩溃,无法保证finally运行,留到人工只读观察,不宣称总能获得after。
|
||||
|
||||
成功必须同时满足:Set明确Success、after成功且恰55键、全部原值相同、必需证据均持久化、停写边界未被破坏。任何一项不满足即“需人工核查”,即使Unknown后读值相同也不自动标成功。随后不Play、不补发;claim永久保留。
|
||||
|
||||
正常路径上限:1次登录+2次Get+1次Set,应用层4调用;失败按实际已到达阶段计数,不硬编码总是4。PF/102/Delete=0。观察Get读取原账户状态,不触发业务保存。
|
||||
|
||||
## 5. 狭窄测试接缝与离线验证
|
||||
|
||||
测试必须跑同一导入核心,不复制一套流程。允许在Import101内部提供仅测试使用的参数:输入副本/证据临时目录、CookieContainer→HttpMessageHandler工厂、候选校验回调、证据保存回调。固定CLI运行入口全部绑定真实固定实现;CLI不得传入这些参数,测试入口不得创建真实HttpClientHandler或用null回退联网。
|
||||
|
||||
接缝只用于:拒绝源变更的临时副本、有限mock序列、强制候选无效、模拟before/claim/set-result/after保存失败。候选真实实现仍调用既有完整Decode;成功组至少一次使用真实55键及真实配置的隔离候选解码,其他组可替身返回verdict。mock仅允许101登录/Get/Set固定URL,额外请求、102/PF/Delete或不符合顺序立即失败。测试Cookie由替身构造,不访问网络。
|
||||
|
||||
| 验证组 | 必须断言 |
|
||||
|---|---|
|
||||
| 源/配置/清单不符 | 错源hash、条目遗漏/重复或值变更、配置hash不符均不登录/不Set;原样55键可通过本地门 |
|
||||
| 登录拒绝 | HTTP/协议失败、newCreate=true;Get/Set均0,不自动清理 |
|
||||
| 目标非空/Get失败 | Set=0,非空before保留;无额外登录或重试 |
|
||||
| 候选无效 | Set=0、claim未创建、诊断保存;记录这是故障注入,非真实样本不兼容 |
|
||||
| before/候选保存失败 | Set=0,不跨过持久化门 |
|
||||
| claim既有/写失败 | Set=0,旧claim字节保持;失败留下的claim不删除 |
|
||||
| 正常成功 | 登录1/Get2/Set1,完整载荷55项逐值相同(含两种历史null字符串/未知键),结果与证据齐全 |
|
||||
| Set返回Unknown/抛异常 | 仍Get一次,Set始终1,结果不标成功;无Delete/补偿/重试 |
|
||||
| Set结果落盘失败 | 仍Get一次、非零结束,after可落则保留,不能静默成功 |
|
||||
| after失败/缺键/多键/值变/落盘失败 | 非成功、claim保留、Set1;所有故障不触发第二次Set |
|
||||
| 再执行 | 已有claim在网络前拒绝,原claim/快照保持,不通过删除claim复测 |
|
||||
|
||||
边界测试使用临时目录并保留摘要,不改原备份/生产claim。无意义的全量历史回归不重跑;既有Program分支内容和Import102全文件hash须保持(Program仅两处分支新增)。如实现必须超出三文件范围或增设通用服务,先停并修订方案。
|
||||
|
||||
## 6. 检查点与交接
|
||||
|
||||
- **D0**:本完整方案、产品决定、55项源指纹、依赖hash及自审送独立方案评审;主会话逐条裁决前不写C#。
|
||||
- **D1**:通过后按三文件白名单实现。显式`dotnet build .../Preflight.csproj --no-restore -o CodexOutput/upserver/P2AlphaImport101/D1-bin`;不得隐式restore/运行正式分支。保存输入/产物hash、diff、构建结果。
|
||||
- **D2**:只运行锁定DLL的`--verify-import-101`,完成上表替身验证;记录断言/请求计数及失败证据、确认源码范围。**交独立实施复核,主会话裁决前不运行正式导入分支。** 本步骤不要求用户开启停写窗口。
|
||||
- **D3**:实施复核通过后,主会话向用户明确实际执行窗口:从确认101所有客户端/设备停用开始,至本次执行结束并报告;不声称已由当前来源确认建立。按Unity CLI Loop核本地空闲/无permit并冻结全部claimed;若编辑器已关闭只读进程与文件,不强启/强退。确认停写后记录D3窗口文件,仅运行锁定DLL的`--import-approved-101`一次。
|
||||
- **D4**:前后状态/claimed核对、原源不变、真实账号/配置/候选、before/Set/after/对账和异常口径全部交付。新import-101.claimed为唯一预期新增,既有11 gameplay claimed不变;无Play。交独立执行复核后主会话逐条裁决关闭,只关闭此单账号测试导入。
|
||||
|
||||
每个检查点更新入口/状态/TODO/开发日志及机器todoItem。若任一阶段受阻,标明卡点和已发生的真实请求,不自动继续写入或修改原方案/证据掩盖差异。
|
||||
|
||||
## 7. 最终验收及恢复边界
|
||||
|
||||
| 项 | 成功条件 |
|
||||
|---|---|
|
||||
| 授权与基线 | 固定源/101映射已确认;方案和实施复核已裁决;执行时停写窗口明确 |
|
||||
| 修改范围 | 仅Program两分支+两个新辅助C#;Client/配置/Import102与102 claim无变化 |
|
||||
| 写前门 | 来源55项、配置、现有账号、空目标、候选Valid及持久化before/claim全部成功 |
|
||||
| 至多一次 | 独立持久claim,最多一次Set;错误/Unknown/写盘失败均不重发 |
|
||||
| 实际结果 | before空,after恰55原值且无额外键,Set明确成功,全部证据完整 |
|
||||
| 边界 | 101独占窗口、无Play/permit/102/PF/Delete;新导入claim之外旧claims不变 |
|
||||
| 交付口径 | 准确阶段请求计数、at本地钟限制、剩余迁移条件、无需回滚时不执行回滚 |
|
||||
|
||||
失败不是“恢复到空档”的授权:即使原before为空,也不得自动Delete所有键,因为Unknown/外部进度会使清空成为数据丢失。人工恢复另案需当时新鲜观察、差异和无新增进度证据;当前只保留源、claim及结果停止。本方案不承诺多键服务器事务或CAS,不为本专用测试引入新服务器能力。
|
||||
|
||||
## 8. 作者自审
|
||||
|
||||
已按真实Import102顺序检查并区别处理“set-result写盘失败会跳过观察”的缺口;明确claim在Set之前持久化、失败可能已写、崩溃不能保证观察、源码固定与测试接缝分离、真实导入前实施复核/停写两门。源的历史性、未知键保留、两种null原字符串、时间偏差及身份映射局限均已声明。未扩大游戏模块或通用迁移范围。
|
||||
|
||||
当前停在D0方案独立评审;用户来源决定已完成,不能再标为“待用户确认来源”。真实停写确认在D3发生,当前不打断用户进行无必要的提前停机。
|
||||
41
CodexOutput/upserver/P2AlphaImport101/D0-独立方案评审.md
Normal file
41
CodexOutput/upserver/P2AlphaImport101/D0-独立方案评审.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# P2AlphaImport101 D0-固定101历史档导入最小方案:独立方案评审
|
||||
|
||||
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本方案编写与任何导入执行;此前参与为P2-α-A/B/C全链审查。本轮只读+hash重算+**源指纹独立逐值核对**;未构建/跑工具/访问正式或PF接口/操作Unity/验证危险参数。
|
||||
|
||||
## 受审hash核对
|
||||
|
||||
| 项 | 结果 |
|
||||
|---|---|
|
||||
| `design-review-hashes.json`(60项) | **全部一致** |
|
||||
| `expectedAbsent`(Import101.cs/Import101Tests.cs/import-101.claimed) | **全部确认不存在** ✓ |
|
||||
| `D0-source-values.json`(55条) | **本审查独立逐值重算:55/55键名/UTF8 hash全部一致**;源文件SHA256=`E6EB3E65…`吻合;source=PlayFab/title108EE8/customId101/55键元数据吻合 |
|
||||
|
||||
## 总判定
|
||||
|
||||
**通过。** 无P1/P2;P3三条不阻塞。方案是最小正确的单账号测试导入设计,且诚实处理了Import102先例中的已知缺口。
|
||||
|
||||
## 七项逐条
|
||||
|
||||
**1. 最小范围:确认。** 游戏源码零修改(Client下全部禁改);仅Preflight目录Program两固定单参分支+两个新辅助文件(expectedAbsent已证当前不存在);csproj默认包含规则免改。三路线取舍合理(改Import102为通用迁移器扩大已验收路径;裸HTTP脚本省略候选校验/claim/替身测试——均正确否决)。无遗漏必要依赖(复用S101AccountSession/PlayerKVClient/Schema.Decode/Import102取值方式复制)。
|
||||
|
||||
**2. 固定输入与门闭合:确认(经独立核对)。** 55键源指纹本审查逐值重算全部一致;两种历史null(M15/M22经B修复后)与未知键**原样写入不过滤**("不能按31模块过滤"正确);配置7项hash固定版本`import101-fixed-20260928-v1`+送审不符即停+**两清单自身hash在实现中锁定**(防同时改清单绕门)——三层固定闭合。候选Decode用本次真实ServerTimeUtc而非历史时间——正确。
|
||||
|
||||
**3. claim/并发/停写:足够且诚实。** claim在Set**之前**CreateNew持久化、之后即"已消耗"(崩溃不自动重跑);目标Get不提供CAS——**明确声明安全边界依赖专用账号停写窗口、不宣称消除并发竞争**;D3才建立实际窗口(不打断用户提前停机)。不要求全体用户迁移或CAS工程(正确留界)。
|
||||
|
||||
**4. 一次Set/Unknown/落盘失败口径:自洽(且修复了Import102已知缺口)。** "set-result写盘失败不短路观察"(作者自审明示这是对照真实Import102发现的缺口);进入Set后一切异常按"可能已写";观察Get恰一次不重试;成功五条件同时满足(Set明确Success+after恰55原值+证据持久化+停写未破坏),**Unknown后读值相同也不自动标成功**;无隐含重发/自动清空("失败不是恢复到空档的授权"——因Unknown/外部进度会使清空成数据丢失——正确)。
|
||||
|
||||
**5. 测试接缝与故障覆盖:可实施、不过度。** 接缝仅internal参数(输入副本/handler工厂/候选回调/保存回调);CLI固定绑真实实现、测试不联网;11个验证组覆盖源/登录/非空/候选/持久化/claim/成功/Unknown/落盘失败/after异常/再执行——含"故障注入≠真实样本不兼容"的显式区分声明。成功组至少一次真实55键+真实配置隔离Decode——与替身组分层清楚。
|
||||
|
||||
**6. D0–D4门完整:确认。** 方案评审→实现/离线(D2即交独立实施复核,**正式导入前双门**:实施复核+D3停写窗口)→一次执行→执行复核→限定关闭。当前仅批准方案。
|
||||
|
||||
**7. 限制声明完整:确认。** 请求计数上限(1登录+2Get+1Set)按实际到达阶段计数;登录可能新建账号的后置拒绝语义;PlayerId非回显;本地钟未校验;26模块外键/身份映射/业务覆盖限制保留;101导入≠全体用户/正式启用。
|
||||
|
||||
## P3清单(不阻塞)
|
||||
|
||||
- **P3-1**:D3停写窗口记录建议包含"窗口起止的本地UTC+操作者标识+当时101无其他连接的可核实手段清单(哪怕只有'用户声明所有客户端已停用')"——把不可证明性显式落为记录字段而非省略。
|
||||
- **P3-2**:`D0-config-hashes.json`建议在D1实现中以常量内嵌版本串比对而非仅文件hash(防清单文件被移动后路径失效绕过门)。
|
||||
- **P3-3**:观察Get的after矩阵建议记录"服务器返回键的原始顺序"(Ordinal对账不受影响,但顺序差异可作为未来并发观察的辅助信号,零成本留证)。
|
||||
|
||||
## 结论
|
||||
|
||||
**通过D0方案。** 主会话核hash(已代验60/60+absent 3/3+源指纹55/55独立重算)逐条裁决后按D1(三文件实现+专用构建)→D2(替身验证+独立实施复核)→D3(停写窗口+一次真实导入)→D4(执行复核+限定关闭)推进。本方案批准≠导入已执行;101导入成功也仅覆盖单账号测试,不代表全体用户迁移或P2-α整体关闭。
|
||||
17
CodexOutput/upserver/P2AlphaImport101/D0-独立方案评审提示词.md
Normal file
17
CodexOutput/upserver/P2AlphaImport101/D0-独立方案评审提示词.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# 独立评审AI:P2-α-D固定101导入方案
|
||||
|
||||
请在`C:/projects/ft`只读评审本目录`D0-固定101历史档导入最小方案-待评审.md`,先核`design-review-hashes.json`所有SHA256/长度及`expectedAbsent`的新源码路径不存在。读上一级产品决定文档及P2AlphaTargetCheck/C5关闭裁决。A/B/C和4C2已限定关闭,不重复复审。
|
||||
|
||||
用户已明确选择固定20260924T041802Z PF101历史备份和101映射、目标非空/校验失败停止、不覆盖/合并/建空档。不要误判来源政策尚待确认;实际停写窗口尚未建立,安排在D3。
|
||||
|
||||
重点逐项给出裁决:
|
||||
|
||||
1. 是否确为最小范围:游戏源码零修改、Program两固定分支+Import101/Import101Tests两个辅助文件;是否有不必要抽象或遗漏必要依赖。
|
||||
2. 固定源55键原值/元数据/配置hash、来源历史性与映射、真实服务器时间候选Decode、空目标门是否闭合;D0源清单请独立核对,未知键及历史null不得转值。
|
||||
3. claim持久化与Set顺序、目标Get后并发窗口、专用账号停写约束是否足够;不得要求本轮直接做全体用户迁移或CAS工程,但应明确不能承诺什么。
|
||||
4. 最多一次Set、Unknown/异常后一次观察、set-result写盘失败不短路观察、after失败和进程崩溃的口径是否自洽;有没有隐含重发或自动清空。
|
||||
5. 测试接缝仅internal且正式CLI绑定固定真实实现、替身明确零网络、关键故障覆盖是否可实施且不过度设计;测试“故障注入”和实际源验收能否区分。
|
||||
6. D0—D4的独立方案评审→实现/离线→独立实施复核→停写/一次真实导入→执行复核是否完整;当前只允许方案批准,不越过后续门。
|
||||
7. 请求计数、登录可能新建副作用、PlayerId非回显、本地钟未校验、身份/业务覆盖限制是否完整。
|
||||
|
||||
只写本目录`D0-独立方案评审.md`,禁止修改共享文档/源码/备份/claim、构建、跑工具、访问正式或PF接口、操作Unity。报告给出hash核对数、通过/有条件通过/不通过、逐项结论和P1/P2/P3最小修订建议。主会话负责逐条裁决;需要方案变更应指出,不替主会话编码。
|
||||
23
CodexOutput/upserver/P2AlphaImport101/D1-方案裁决与限定实施批准.md
Normal file
23
CodexOutput/upserver/P2AlphaImport101/D1-方案裁决与限定实施批准.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# D1:方案裁决与限定实施批准
|
||||
|
||||
2026-09-28,主会话。独立方案评审通过,无P1/P2。更新状态及源码前主会话重算60/60项SHA256/长度一致,3个expectedAbsent均不存在;完整核验存D1-design-verification.json。批准D1三文件实施与D2隔离验证,**不批准运行正式导入命令**。
|
||||
|
||||
| 审查项 | 裁决 |
|
||||
|---|---|
|
||||
| 1 最小范围 | 接受,Program两分支+Import101/Import101Tests,Client/Import102/csproj不改 |
|
||||
| 2 输入/候选 | 接受,55原值、7配置、两个清单hash常量、服务时间完整Decode;不删未知键 |
|
||||
| 3 claim/窗口 | 接受,CreateNew持久claim在Set之前;无CAS声明保持,实际窗口留D3 |
|
||||
| 4 一次写/观察 | 接受,异常/Unknown/Set日志失败均不重发,正常进程继续一次观察;全部持久证据才可成功 |
|
||||
| 5 隔离验证 | 接受,internal狭窄接缝、固定正式绑定;替身禁止联网、成功组真实源/配置Decode |
|
||||
| 6 流程 | 接受,D2实施复核是实际导入前必经门,之后再确认当次窗口 |
|
||||
| 7 限制 | 接受,准确请求阶段、登录副作用、本地钟/身份/业务覆盖限制 |
|
||||
|
||||
## 三条P3
|
||||
|
||||
- P3-1采纳。D3-window.json记录windowId、operator、startUtc、expiresUtc、verificationMethods(至少用户声明所有客户端停用)、noOtherClientsDeclared、implementationReviewApproved;实际endUtc在运行结束记录,不冒充提前知道。记录不证明服务端无连接。正式入口校验固定账号/API及当前处在本地UTC窗口,写前和结束再核窗口有效性;D2使用清楚标识的模拟记录。
|
||||
- P3-2采纳。配置版本常量`import101-fixed-20260928-v1`与文件hash同时匹配;两个清单均固定路径读取、常量hash验证,缺失/移动失败关闭,不回退。
|
||||
- P3-3限定采纳。保存after.Data.Keys未排序枚举数组为`adapterKeyOrder`,并注明来自客户端字典枚举,**不是HTTP原始字节或并发证明**。不为获取原始JSON次序修改已验收PlayerKVClient;正式对账继续Ordinal集合/原值。
|
||||
|
||||
实现细节收敛:本地文件先读取一次bytes,再hash/parse同一份内容;配置解析结果保存在本次输入对象,避免校验后重读另一个版本。测试替身必须显式提供handler工厂,不得null回退真实网络。以上均落于原白名单和既有合同,不新增通用框架。
|
||||
|
||||
D1构建及D2通过后交独立实施复核;本轮无正式账号请求、无Unity操作/Play/permit或正式导入claim,不提前建立真实停写窗口。
|
||||
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Newtonsoft.Json.dll",
|
||||
"sha256": "7292D3EB508652D14726749DD27094F2D481AECCF2DB6427B62F68A71460897E",
|
||||
"bytes": 696320
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Newtonsoft.Json.pdb",
|
||||
"sha256": "EEBB075CE7B6530268DA0FB24854B085B10BE7FD6492FE74F3E5608061291741",
|
||||
"bytes": 2186752
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Newtonsoft.Json.xml",
|
||||
"sha256": "E0FED73A98ED4DB5A2BDE3DC53836CC1FAC24E34EAEAB2007E1CFAB81ADB71B0",
|
||||
"bytes": 702415
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Preflight.deps.json",
|
||||
"sha256": "50DBE40646847BBD9D5DDB1A1B8834901232881C5EFAE38E44F2C163D8B9317B",
|
||||
"bytes": 831
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Preflight.dll",
|
||||
"sha256": "AAA1276630E8633C131072DDF638639B92F60134A0425E17616A4A5A2A436607",
|
||||
"bytes": 355328
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Preflight.exe",
|
||||
"sha256": "B950DA7A97A2710B6B5D6919316DE96B22E46B0E8A80453029D4A6C7A31C4CF2",
|
||||
"bytes": 156160
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Preflight.pdb",
|
||||
"sha256": "AEA0D31C9F058E000AB1F86822DD04F8246BD323316FABA11B047795EA07F53E",
|
||||
"bytes": 100904
|
||||
},
|
||||
{
|
||||
"path": "CodexOutput/upserver/P2AlphaImport101/D1-bin/Preflight.runtimeconfig.json",
|
||||
"sha256": "A45057885F807F4A337FDEA3CCDFA64E1675D22A6D6A6FC7C7394FD44BA9EEBE",
|
||||
"bytes": 268
|
||||
}
|
||||
]
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user