docs(upserver): 归档阶段裁决与批量迁移待办

This commit is contained in:
Liubing\LB
2026-09-28 18:17:40 +08:00
parent a6f5e107f8
commit 1c0cdf7a99
376 changed files with 89430 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
# P2AlphaTargetCheck C0-目标状态核验最小方案:独立方案审查
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与本方案编写;此前参与为P2-α-A/B全链审查。本轮只读+hash重算+源码核查,未构建/跑DLL/操作Unity/调用任何正式或PF接口、未验证危险参数。
## 受审hash核对
`P2AlphaTargetCheck/review-hashes.json`:**57/57重算全部一致**。共享文档以本清单送审版本为准(B关闭时18项为历史增量,非漂移)。
## 总判定
**通过。** 可批准:仅此一次、零源码改动、成功上限2登录+2Get的核验执行。无P1/P2;P3三条不阻塞。
## 七项逐条
**1. 复用现有工具合理:是。** 本审查核实`Preflight/Program.cs`三分支现状:`:8 --import-approved-102`、`:9 --backup-pf-101-102`、`:10 --backup-101-102`(默认拒绝无参调用)——目标分支存在且后两危险分支已被方案明确禁用。新增只读101工具需新分支+构建+验证,为省1登录/1Get不值——正确取舍。无重复工作(不重跑兼容测试/不重搜未定位键)。
**2. 副作用与证据缺口描述准确:是。** 关键三点全部源码核实:①`Program.cs:18`的`NewlyCreated`检查确在**登录返回后**(后置拒绝,非前置保护)——方案如实说明"服务端若账号不存在可能创建账号";②`PlayerId`为客户端规范化请求ID的定性正确(不夸大为服务端回显身份绑定);③"只读KV"未被夸大为系统零写——登录会话/元数据副作用、失败时"请求已发送但响应丢失记不确定"的口径诚实。
**3. 构建与执行闭合:是。** 专用输出目录`C1-bin`(新建、记录DLL/依赖hash、禁`dotnet run`隐式重建)落实了apphost教训;危险分支靠**不传参**隔离(单参严格匹配`:10`),不从代码上删除——零源码改动约束下的正确做法;工作目录/地址固定、无重试、失败保留部分输出、目录秒级碰撞即停——闭合。
**4. 空闲与并发限制充分:是。** 前后两次只读状态核验+claimed全量冻结;编辑器关闭则记录不强启;"本地空闲≠跨设备停写窗口"明确;不擅自Stop/退役许可/杀进程——正确。
**5. 迁移前置限定准确:是。** C3条件表六行(目标占用/PF来源权威/身份映射/兼容性缺口/时间并发/失败恢复)如实区分"本轮能确定/仍需什么";"101空目标≠准许导入、102进度不可被旧PF覆盖"为硬结论。
**6. 检查点与矩阵完整:是。** C0–C4职责分明(C1构建+状态冻结→C2一次采集→C3逐键对账→C4停在执行复核);T1–T7覆盖边界/可追溯/请求口径/数据完整/差异有效/运行状态/结论限度;"失败交付也是交付但不标验收通过";**产品正式迁移决策明确留待后续写入方案、不阻塞本轮取证**——正确分离。
**7. 批准范围:批准上述限定核验**;不批准导入101/覆盖102/Play(方案自身也未申请)。
## P3清单(不阻塞)
- **P3-1**:C2建议在命令行中记录采集的**本地起止UTC到秒**并与生成的`<UTC>`目录名互证(方案已要求记录起止时间,补一句"目录名时间须落在起止区间内"的核对,防时钟跳变歧义)。
- **P3-2**:C3的102差异摘要建议同时记录"与`20260928T025514Z`末次闭环备份"和"与4C2结束对账基线"两个参照的键集合差(若相同则显式记"两参照一致",简化后续写入方案的引用)。
- **P3-3**:若C2出现newCreate异常停止,建议交付中显式列出"该异常登录是否可能已产生服务器侧新会话/账号"的说明模板(方案已停住不清理,补一段标准说明文字供主会话裁决用)。
## 结论
**通过C0方案。** 主会话核hash(已代验57/57)逐条裁决后按C1–C4执行;执行复核仍归独立侧。本单元关闭仅为"目标快照核验",不构成101导入授权、不关闭整体P2-α/G4。

View File

@@ -0,0 +1,19 @@
# 交独立评审AI:P2-α-C目标状态核验方案
请在`C:/projects/ft`只读审查`CodexOutput/upserver/P2AlphaTargetCheck/C0-目标状态核验最小方案-待评审.md`。当前A/B和4C2已限定关闭,不重审已关闭实施,不启动101导入或下一玩法。
先核同目录`review-hashes.json`每项路径、SHA256、bytes;报告一致数和差异。共享文档已冻结为此次送审版本,旧B关闭清单的共享文档hash为历史版本;不要把预期状态更新混淆为代码漂移。
请回答并逐项裁决:
1. 复用固定两账号备份命令是否足以回答101目标占用、102现有进度差异,是否比新增工具合理,是否有无价值的重复工作。
2. 登录副作用、newCreate后置检查、PlayerId由请求赋值而非服务端回显、身份/时间证据缺口是否准确;有无把“只读KV”夸大为整个系统零写。
3. 构建输入与执行DLL是否能对应;危险参数分支隔离、工作目录/地址/无重试/失败部分输出/目录碰撞是否闭合。
4. CLI空闲、permit/claimed、跨设备停写无法证明的限制是否充分;不批准强制退出或擅自退役许可。
5. 快照原字符串对账及来源权威、跨系统身份、时点/并发、未知键等迁移前置是否被准确限定。
6. 检查点0—4和T1—T7是否完整,是否存在阻断执行的P1/P2;产品正式迁移决策可否留待写入方案,而不阻塞当前授权范围内取证。
7. 能否批准仅此次零源码改动、一次2登录+2Get上限的核验;不能批准导入101、覆盖102或Play。
禁止构建/跑DLL/运行Unity/调用正式或PF接口/修改代码/更新共享入口。你只可新建报告`CodexOutput/upserver/P2AlphaTargetCheck/C0-独立方案审查.md`;报告若已有请保留旧版后明确修订,不覆盖历史证据。不得通过实际调用危险参数验证其危险性。
报告给出“通过/有条件通过/不通过”、各项依据(路径/行号)、问题等级、最小修订建议和hash结果。无问题也说明结论范围。主会话负责复核hash、逐条裁决和更新共享文档;不要由审核侧代做。

View File

@@ -0,0 +1,108 @@
# P2-α-C:迁移前目标状态核验最小方案
2026-09-28,主会话,版本1,**待独立方案审查,未批准执行**。
## 1. 目标与已有结论
101的旧PF本地样本经P2-α-B修复后已能解码,但这不能证明其目标KV现在仍为空,也不能批准真实迁移。本单元只取得一次新的目标快照,回答“101目标是否已有数据、102相对已关闭闭环的末次快照是否变化”,据此把后续写入方案的冲突条件写实。
P2-α-A/B、R1/4C1/4C2保持限定关闭。复用原样本、台账与兼容验收,不重新跑兼容测试,不再收费钓鱼,不重新导入102。整体P2-α仍开放。
设计开始前已核对B关闭增量清单18/18项SHA256及长度一致;之后共享状态更新属于本次设计增量,不能用旧清单要求共享文档永久不变。
## 2. 选择与最小范围
| 选择 | 代价及结论 |
|---|---|
| 复用现有`--backup-101-102` | 本方案采用。零源码改动;固定读取两个已授权专用账号,102用于核对当前进度而非迁移源 |
| 新增只读取101的命令 | 可少一次登录/Get,但需新增分支、构建和验证;本轮不值得为两账号既有工具另造入口 |
| 直接导入101并试玩 | 缺来源权威、跨系统身份与停写窗口等条件,本轮不采用 |
现有工具并不证明完整迁移资格。交付结论必须为“目标快照已取得/核验受阻+未满足的迁移条件”,不得输出笼统的“迁移安全/可以上线”。
## 3. 精确执行入口与副作用
- 工作目录固定`C:/projects/ft`;API固定`http://s101.local:18080/`。
- 仅执行`Preflight`的`--backup-101-102`分支;顺序101、102,每账号各一次`account/Login`和`playerdata/Get`。两条都是HTTP POST,Get的含义是KV读取。
- 成功完整运行:2次登录、2次Get;KV Set/Delete=0、PF请求=0。失败时可能少于此数,按进程日志、已落文件和分支位置记录;不能把计划上限伪装为实测网络统计。请求已发送但响应丢失时记“不确定”,不声称零请求。
- 登录会产生服务器会话/可能更新登录元数据。服务端若账号不存在还可能创建账号:`NewlyCreated`是在登录返回后检查,**不是服务端禁止创建的前置保护**。历史两账号已存在降低此风险但不能消除;一旦newCreate、登录失败或身份检查失败,工具抛错停止,不发该账号Get,不自动清理新账号、不自动重试。
- `S101AccountSession.PlayerId`是客户端规范化请求ID,不能把相等判断说成服务端回显的身份绑定证明。工具虽校验internalId/服务时间/Cookie,但备份没有保存这些字段;本轮不补写、不推断其值。
- `PlayerKVClient.GetAsync(null)`读取全部字符串键值,拒绝重复属性/非字符串数据;无应用层重试,无重定向。未知键原值保留。
- 现有可执行程序还有`--import-approved-102`与`--backup-pf-101-102`分支;二者本轮**均禁止调用**。不修改`Import102.cs`、不删除或复用`import-102.claimed`。
## 4. 输入、输出及禁止项
既有输入:
1. `KVGameplayLoopTests/pf-source-backups/20260924T041802Z/101.json`:55键,原来源PlayFab/title108EE8/customId101,原文件SHA256=`E6EB3E656B62A3535FDB8F0DC517321A4C3E32F3A8D95385A2B7D5C0AA8222EF`。
2. 同目录102.json:45键,SHA256=`827F36084648449CEFAFB96B3CE62093DF70B8A87E33A526DA5B03A9C135A377`。仅历史参照,不能覆盖KV102。
3. `KVGameplayLoopTests/backups/20260928T025514Z/101.json`及102.json:前者当时0键,后者45键且已包含4C2新进度。均不是下一次写前备份。
4. 现有A3台账、B5关闭裁决及剩余条件清单。不重新解码样本或重复5个未定位键的全库文本搜索。
新输出限定:
- 工具生成的唯一新`KVGameplayLoopTests/backups/<UTC>/`下两账号原始JSON及summary;原档使用CreateNew,不覆盖。调用前确认预计秒级目录未存在;若碰撞或写盘失败停止,保留部分输出,不换参数重跑。
- 本目录下C1构建/入口核验日志、C2运行stdout/stderr/退出码/状态、C3逐键差异摘要与条件表、C4交付和独立执行复核提示词及SHA256清单。
- 入口、开发状态、TODO、开发日志、todoItem按检查点同步;构建产生的Preflight obj及本目录独立输出目录属于编译产物,不是生产源码变更。
不修改任何C#、配置、场景、预制体、原备份、存档;不创建/移除permit与claimed;不Play、Apply、Open游戏会话、扣费、领奖、打包。没有KV写入,因此本单元不设计或执行回滚/恢复;发现异常只保留证据停止。
## 5. 检查点0—4
### C0:完整审查及主会话裁决
独立AI只读方案及受审文件,报告落本目录`C0-独立方案审查.md`。主会话先核`review-hashes.json`全部路径/长度/hash,再逐条裁决,落`C1-审查裁决与执行批准.md`。P1/P2未解决、范围变化或基线漂移不能直接执行。A/B不因此重新复审。
### C1:准备,尚未请求正式数据
1. 核源码/依赖基线。执行经审查的现有csproj构建:`dotnet build CodexOutput/upserver/KVGameplayLoopTests/Preflight/Preflight.csproj --no-restore -o CodexOutput/upserver/P2AlphaTargetCheck/C1-bin`。新目录须不存在;记录构建退出码、编译输入及最终DLL/依赖hash。不能用旧bin中身份不明DLL;不能跑`dotnet run`隐式重建。缺依赖/编译错误即停,不顺手修源码或自动联网restore。
2. 使用Unity CLI Loop固定`unity-state.cs.txt`读取当前状态,要求工程路径正确、playing/enabled/ready=false、run=null、permit不存在;另用只读表达式确认`EditorApplication.isPlayingOrWillChangePlaymode/isCompiling/isUpdating`均false。若编辑器已关闭,记录无本项目Unity进程以及本地无permit;不为了快照强行启动/重启。已开启但CLI无法核验则停,不猜测空闲。
3. 冻结全部既有claimed文件路径及hash,包括子目录;记录客户端运行状态。发现游戏正在运行或活动许可,只报告,不能擅自Stop/退役许可/杀进程。
4. 此前已授权101/102作为专用测试账号;本次完整审查裁决通过即在此范围运行,不再要求重复确认已授予的读取权限。其他设备是否使用这些账号无法从本地证明,故任何快照只能代表该次响应,不能构成排他停写窗口。
### C2:一次采集
从仓库根目录运行`dotnet CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.dll --backup-101-102`一次,保存完整输出、退出码、起止本地UTC及生成目录。失败保留已生成内容,不循环、不再次登录来“补齐成功”。不得把101成功而102失败当两账号采集完成。
采集后再次只读核Unity状态及permit/claimed。若期间出现运行或许可变化,标记环境条件未满足,停止后续迁移判断;不自行撤销别人的操作。任何错误、newCreate或无法判定请求状态,均形成明确失败交付,不回退/补发/恢复。
### C3:离线对账与前置条件表
核新JSON与summary的账号/API、SHA256、键数、主档存在性一致。时间字段`at`是工具本地UTC,**不是服务器时间**;两账号是先后读取,不是跨账号原子快照。
逐键比较新旧KV快照:键名集合按Ordinal区分大小写,字符串用原样UTF8 SHA256及字节长度比较(含新增/删除/改变);不对字符串内JSON重排或转日期。摘要默认只输出键名/hash/长度,不输出整档。101分为“目标为空/目标非空/读取失败”,102列相对末次闭环样本的差异;发现变化不擅自归因、不还原。
后续条件表至少包含:
| 条件 | 本轮能确定什么 | 仍需什么 |
|---|---|---|
| 101目标占用 | 本次Get返回空/非空 | 真正写入前必须重新读取;非空禁止旧PF覆盖或自动合并 |
| PF来源 | 历史备份来源标签、时间、原文件hash | 不能证明当前PF仍相同;产品确认一次性历史快照权威,或另审新鲜源采集 |
| 身份映射 | 历史customId与本次请求playerId都是101 | 不等于跨系统同一人/同一账户的服务端证明;实际导入前需明确映射依据与批准 |
| 兼容性 | 复用B已关闭两样本Valid | 26模块外键、Present缺口与业务消费者仍未全覆盖 |
| 时间与并发 | 本地采集时刻及本地客户端空闲 | 服务器时间、跨设备独占停写窗口未证明;本单元不引入CAS框架 |
| 失败与恢复 | 本轮零KV写、异常保留证据停止 | 真实写入前另审Unknown观察/人工恢复边界,不整档回滚已有进度 |
### C4:有限交付,停在执行复核
落盘全部证据及限制,更新五份共享状态,冻结交付清单并输出独立执行复核提示词。不得因101为空自动接到导入;下一步仍是依据新证据形成单账号写入方案及产品决策。执行复核后主会话逐条裁决关闭的只会是本次目标核验,不是整体P2-α。
## 6. 验收矩阵
| 项 | 判据 |
|---|---|
| T1 边界 | 无源码/配置修改;禁止分支未调用;正式地址唯一;无Play/存档写/打包 |
| T2 可追溯 | 受审hash裁决、构建结果、实跑DLL/依赖hash、精确参数及退出码齐全 |
| T3 请求口径 | 成功上限2登录+2Get,KV Set/Delete及PF为0;失败如实记未知,不把登录称绝对无副作用 |
| T4 数据完整 | 两份新快照与summary一致;原备份不变,未知键保留;失败部分数据不冒充完成 |
| T5 差异有效 | 原始字符串逐键比对,明确102已有进度不可被旧PF覆盖;无变化也只是该次观察 |
| T6 运行状态 | 前后空闲/无permit、claimed全部保持,未擅自改变运行状态 |
| T7 结论限度 | 身份/权威源/并发/时间/业务覆盖缺口明确;101空目标不等于准许导入 |
纯复用执行无需新增镜像测试或重跑既有77组;构建及本次实际读取的完整性检查是适当验证。失败同样应交付事实和阻塞项,但不得将T2—T6未通过标成验收通过。
## 7. 作者自审与停止位置
已逐行检查Program/AccountSession/PlayerKVClient和Editor State入口,补足两账号固定读取、登录可创建副作用、PlayerId非服务端回显、备份未记录服务器时间/身份详情、两次Get非原子快照、目录碰撞、失败不重试等限制。选择现成工具以保持零代码变更。
当前止于**C0独立方案审查**。没有执行本方案的构建、Unity命令或正式请求。正式迁移产品政策保持待确认,不需要在本次只读取证前先批准整套上线政策。

View File

@@ -0,0 +1,42 @@
[
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Newtonsoft.Json.dll",
"sha256": "7292D3EB508652D14726749DD27094F2D481AECCF2DB6427B62F68A71460897E",
"bytes": 696320
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Newtonsoft.Json.pdb",
"sha256": "EEBB075CE7B6530268DA0FB24854B085B10BE7FD6492FE74F3E5608061291741",
"bytes": 2186752
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Newtonsoft.Json.xml",
"sha256": "E0FED73A98ED4DB5A2BDE3DC53836CC1FAC24E34EAEAB2007E1CFAB81ADB71B0",
"bytes": 702415
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.deps.json",
"sha256": "50DBE40646847BBD9D5DDB1A1B8834901232881C5EFAE38E44F2C163D8B9317B",
"bytes": 831
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.dll",
"sha256": "C2F8E8578BA3E60EDAFC4CC9A98E60BF2D2E64549F1C174F0CFD47E970C42A81",
"bytes": 289280
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.exe",
"sha256": "B950DA7A97A2710B6B5D6919316DE96B22E46B0E8A80453029D4A6C7A31C4CF2",
"bytes": 156160
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.pdb",
"sha256": "A04BC64F64D0BEC9E9F189B43270F6C86D70C9AE865B51971CFAB20B52236276",
"bytes": 93716
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.runtimeconfig.json",
"sha256": "A45057885F807F4A337FDEA3CCDFA64E1675D22A6D6A6FC7C7394FD44BA9EEBE",
"bytes": 268
}
]

View File

@@ -0,0 +1,31 @@
# P2-α-C方案审查裁决与执行批准
2026-09-28,主会话。独立报告判定通过,无P1/P2;主会话在更新共享状态前重算受审清单**57/57项SHA256及长度一致**。清单SHA256:`EFF9D8724EB24106156CA008B721CC237D19BD5668A26B460A59950B90751EFD`。核验细节另存C1-review-verification.json。
## 七项裁决
| 项 | 主会话裁决 |
|---|---|
| 1 复用 | 接受现有固定101/102备份分支;无需改源码、新增工具或重跑已关闭玩法 |
| 2 副作用 | 接受。登录可能改变会话/账号状态;newCreate为后置拒绝;PlayerId是请求ID,不冒充服务器绑定证明 |
| 3 构建/运行 | 接受专用C1-bin、显式DLL、固定单参数和一次执行;不运行PF或导入分支、不自动重试 |
| 4 空闲/并发 | 接受前后CLI核验、permit/claimed保持;无编辑器则证实进程不存在;不据此声称跨设备排他 |
| 5 迁移前置 | 接受来源权威、身份、时间、并发、业务覆盖和恢复条件继续开放;空目标不能放行迁移 |
| 6 验收 | 接受检查点0—4、T1—T7;实际失败明确标未通过;正式产品迁移政策不阻塞本次已授权读取 |
| 7 范围 | 批准仅一次成功上限2登录+2Get的目标核验,不批准导入/覆盖/Play/打包 |
报告第1项“后两危险分支”的指代表述略含混,以实际参数为准:唯一可运行参数是`--backup-101-102`,禁止`--import-approved-102`和`--backup-pf-101-102`;`--verify-advert`也不在本轮范围。
## 三条P3逐条处理
- **P3-1采纳**:记录起止完整UTC,并将目录名解析为秒级UTC,与起止时间各截断到秒后的区间比较;保存原始毫秒/更高精度时间,避免起点小数导致误判。若越界记录时钟/目录异常,不能自动归因。
- **P3-2采纳**:明确第二参照为4C2真实收鱼、收下回主页后的`backups/20260928T024903Z/102.json`,第一参照为恢复再退出后的`20260928T025514Z/102.json`。依据《阶段4C2第四次真实闭环与新进程恢复记录》§快照记录,原报告称二者45键逐值一致,本轮离线重新核其原值及键集合;相同须显式写“两参照一致”,不能仅比较文件hash(封装at不同)。
- **P3-3采纳**:若异常登录发生,交付使用“已调用登录,可能产生服务器会话;若明确newCreate=true则可能已创建账号;现有工具报错未区分原因时仅记无法判定,不反推没有副作用。本轮未清理账号、未补发请求、未写KV。”现有Program统一异常不输出newCreate,不新增代码获取它。
三项都是证据口径及既有文件离线对比补充,不改源码、账号或请求范围,无需新增方案补审。原方案及报告保持原文;本裁决为执行约束补充。
## 执行与停止
批准C1构建/只读状态准备→C2一次采集→C3离线对账→C4交付并交独立执行复核。任一前置失败先停止并落盘,不以修代码、重试登录或强制重启绕过。下一次写入仍需另外完整方案和产品决定。
正式地址固定http://s101.local:18080/;Unity CLI Loop;不使用UnitySkills、暂不打包。

View File

@@ -0,0 +1,37 @@
# C3:目标状态与迁移前置结论
2026-09-28。唯一一次运行在UTC07:03:39.1088381至07:03:42.1490964,exit0;新快照目录`KVGameplayLoopTests/backups/20260928T070339Z/`。目录名UTC处于起止秒级区间内。
## 实测结果
| 对象 | 结果 |
|---|---|
| 101当前KV | 0键,无主档;与025514Z历史快照同为空,仅表示此次Get结果 |
| 102当前KV | 45键,有主档;与025514Z恢复退出快照原字符串全部一致,无增删改 |
| 102第二参照 | 与024903Z收鱼收下回主页快照45键全部一致;两个历史参照的键集合和原字符串也全部一致 |
| 完整性 | 两新快照的账号、地址、文件hash、键名集合、键数及主档标志均与summary一致 |
| 运行环境 | Unity90064前后playing/enabled/ready=false,run=null,permit不存在;切换/编译/更新均false;11 claimed路径/hash/长度全部不变 |
逐键证据见`C3-snapshot-verification.json`,比较键名及字符串使用Ordinal;值hash以原样UTF8计算,不对存档字符串内部JSON重排/转日期。两新文件hash分别为:
- 101:`144B8E9AD706A0649AC3B6E25CA80CC699CA22A4216AA523F177AB57B3959841`
- 102:`95E5C886228D2B393740643DFA63D077BD41241BAFB1648A7D6FA35D0667323D`
应用层调用为2登录+2Get、KV Set/Delete及PF为0,依据锁定DLL对应源码的单次成功执行路径及两份快照,不是抓包或服务端总流量计量。登录可改变会话/元数据;本轮未发生异常,成功路径意味着两次newCreate均未触发拒绝。不要据此声称系统完全无写。
## 后续写入仍缺什么
| 条件 | 现有证据 | 后续要求 |
|---|---|---|
| 101目标占用 | 本次为空 | 实际导入前重新读取;非空停止,不能覆盖或自动合并 |
| 来源权威 | 20260924T041802Z原PF101备份55键且hash保持,B限定兼容通过 | 确认使用该历史快照为一次性专用账号源,或另审新鲜来源采集;不能当当前PF |
| 身份映射 | 源customId101、本次请求playerId101 | 两个字符串相同不等于跨系统身份绑定;实际导入前明确映射依据及批准 |
| 业务覆盖 | A台账/B两类null兼容已关闭 | 26模块外键、Present样本不足与相应消费者仍未全覆盖 |
| 时间与并发 | 本地采集时刻、编辑器空闲 | 备份未记录服务器时间,且两账号非原子快照;跨设备停写窗口仍未建立 |
| 故障恢复 | 本轮无KV写,无需数据回滚 | 写入方案另审Unknown观察及人工恢复条件,不回退整个旧备份 |
结论:**目标快照已取得且对账完成,未批准101迁移;102已有进度保持,不得以旧PF覆盖。** 当前可进入本单元的独立执行复核;之后再准备明确来源/身份/停写边界的单账号写入方案及产品决定,不在本轮自动推进。
## 时间对账过程更正
首次临时离线核验先用PowerShell ConvertFrom-Json把UTC文本转DateTime,再隐式转无Z字符串交DateTimeOffset解析,造成时区偏移,目录区间误报false。保留`C3-snapshot-verification-initial-time-parser.json`,未改运行日志或快照。改为从原JSON用JsonDocument取得ISO字符串、按InvariantCulture/DateTimeOffset转UTC后,正确区间为07:03:39Z—07:03:42Z,目录07:03:39Z在内。详见`C3-time-check-correction.json`。这是临时证据处理纠正,不是生产代码修改、时钟跳变或正式请求重试。开发日志C2/C3段的区间结论以此更正证据为依据。

View File

@@ -0,0 +1,36 @@
# P2-α-C目标状态核验:执行交付与验收
2026-09-28,主会话。**C1—C3已完成,C4交付,待独立执行复核;本单元尚未正式关闭。**
## 本次完成
独立方案审查通过,主会话57/57项hash及长度一致后逐条裁决七项/三P3,批准一次现有工具核验。现有Preflight专用输出构建0错误0警告,35项输入hash不变,8项产物已冻结;通过Unity CLI Loop核验空闲后,仅运行一次显式DLL加`--backup-101-102`。
采集UTC07:03:39.1088381—07:03:42.1490964、exit0,新目录070339Z。101为0键,102为45键;与4C2收鱼结束024903Z及恢复退出025514Z两参照均逐值一致,两参照也相同。详见[C3结论](C3-目标状态与迁移前置结论.md)。没有迁移、覆盖、消费、领奖、Play或打包。
## T1—T7验收
| 项 | 作者结果 | 证据及限制 |
|---|---|---|
| T1 范围 | 通过 | C4-scope-verification:原57项中52项不变,仅5份共享状态预期变化;没有源码/配置修改。固定命令见C2-invocation,未调用PF/导入参数 |
| T2 追溯 | 通过 | C1-review-verification、C1-build-result/log、C1-build-input-check、C1-artifact-hashes、C2-invocation/run-result。未使用旧bin或dotnet run |
| T3 请求 | 通过(应用层口径) | 成功路径2登录+2Get,KV Set/Delete和PF为0;非服务器抓包总量;登录会话/元数据副作用保留 |
| T4 完整性 | 通过 | C3-snapshot-verification,两份JSON/summary一致,原PF及KV参照hash不变;未知键无改写 |
| T5 差异 | 通过 | 101仍空;102两参照各45键Ordinal原字符串/UTF8指纹全部相同,零增删改;不把零变化视为跨时点保证 |
| T6 状态 | 通过 | C1/C2两轮unity-state、editor-idle与claims证据;90064空闲,无run/permit,11 claimed不变 |
| T7 结论 | 通过 | C3六项条件表;空目标不批准101导入;源权威/身份/时间并发/业务覆盖/失败恢复仍需后续方案 |
P3-1目录名位于起止秒区间内;首次临时时间解析误报已留底并以原ISO文本重算修正,见C3-time-check-correction。没有重采集或改原日志。P3-2双参照已逐键确认一致。P3-3异常副作用模板已在C1裁决明确,本轮正常退出未触发;不伪造一次异常测试。
## 过程偏差与证据保持
- 初次CIM只读进程查询受沙箱限制,后经权限提升只读成功;这不是正式接口失败/重试。
- 时间核验的临时PowerShell转换错误已完整保留初始JSON和更正说明。生产源码未改,原采集起止与快照未改。
- 原方案57项清单不重写;共享状态正常更新是执行增量。原B/A/4C2关闭材料保持;Preflight obj和专用C1-bin是本次允许的构建输出,不覆盖KVGameLoadTests交付DLL。
- 受审范围内52项保持不变是文件证据,不声称扫描证明整个磁盘无其他进程修改。
## 交独立执行复核
使用[C4复核提示词](C4-独立执行复核提示词.md)及`execution-review-hashes.json`。复核仅核hash、离线对账和阅读证据,不重建、不再访问账号、不操作Unity。报告交回主会话核hash逐条裁决后,才关闭本次目标核验。
当前后续在独立执行复核侧;真实迁移/整体P2-α/4B3B/C/4D/G4仍开放。正式地址http://s101.local:18080/,Unity CLI Loop,不用UnitySkills、暂不打包。

View File

@@ -0,0 +1,38 @@
# P2AlphaTargetCheck C4-目标状态核验执行独立复核
日期:2026-09-28。审查者:ZCode会话。独立性声明:未参与P2-α-C执行;此前参与为C0方案审查(三条P3为本轮核对项)。本轮仅hash重算+源码阅读+**离线独立对账**;未构建/运行DLL/登录/请求/操作Unity。
## 受审hash核对
`execution-review-hashes.json`:**110/110重算全部一致**。C0原57项与本次执行清单的共享状态增量关系已由`C4-scope-verification`说明(52未变+5状态更新——与C0裁决"共享文档冻结为送审版本、后续状态更新为设计增量"一致)。
## 总结论
**通过。本次目标核验(P2-α-C)可限定关闭**(主会话裁决后)。无P1/P2;P3一条。
## 七项逐条
**1. hash与增量:成立。** 110/110一致;52项未变+5份状态更新的划分清晰,无混用。
**2. C0七项/三P3落实+可追溯:确认。** 构建0错误0警告、35输入hash+8产物hash、实跑DLL与唯一参数`--backup-101-102`可追溯(C2-invocation记录)。三条P3中:P3-1(目录名落在起止区间)经时间更正后**闭环**(见第6项);P3-2(双参照)已执行(C3结论含两参照一致);P3-3(newCreate说明模板)未触发(无newCreate,N/A)。
**3. 一次成功运行+请求口径:确认。** C2-stdout两行完整输出(101 count=0/kvWrites=0、102 count=45/kvWrites=0);退出码0;应用层恰2登录+2Get,Set/Delete/PF=0;无包级计量时**未夸大**(交付明示"应用层口径")。
**4. 运行边界:守住。** 前后Unity空闲核验+附加idle表达式、无permit、11 claimed路径/hash/长度冻结不变;无未授权运行操作。
**5. 独立离线对账(本审查亲自执行):全部一致。**
- **新101快照:`data={}`,0键——目标为空**(外层playerId/api/at元数据规范);
- **新102快照:45键**,与`024903Z`(4C2收鱼结束)及`025514Z`(恢复退出)**双参照键集一致、全部45键原值逐键一致**(Ordinal键名+UTF8 SHA256+字节长度三重比较,本审查独立计算);
- 未对字符串内JSON重排/转日期——原样指纹。
**6. 时间区间独立复算+更正透明性:确认。** 本审查以**原字符串正则**提取两`at`文本(`101: 07:03:42.0771782Z`、`102: 07:03:42.1313424Z`),目录名`070339Z`落于startRaw`07:03:39.108Z`~endRaw`07:03:42.149Z`区间(目录创建于首次请求前约3秒——合理)。**初始误报留底+更正透明**:`C3-time-check-correction.json`如实记录"PowerShell DateTime→隐式culture字符串→丢失UTC Z"的转换错误、原始值、更正后`within=true`、`noNewNetworkCalls=true`——是复核期内离线更正非重采,处理正确。
**7. T1–T7成立+开放条件保留:确认。** 来源权威/跨系统身份/服务器时间/停写窗口/26模块外键/恢复条件在C3结论与条件表中全部明确开放;**"101空≠准许导入、102进度不可被旧PF覆盖"重申**;交付结论形态为"目标快照已取得+未满足迁移条件清单",未输出笼统"迁移安全"。
## P3清单
- **P3-1**:本次快照JSON外层新增的`at`为工具本地UTC——后续写入方案引用该快照时建议注明"本地钟与服务器钟未校验偏差"(C3条件表"时间与并发"行已隐含,写入方案显式引用更佳)。
## 结论
**通过P2-α-C执行交付;建议主会话裁决后限定关闭本次目标核验。** 关闭后即具备:101目标空+102进度完整的新鲜证据——下一步是**单账号(101)写入方案+迁移政策产品确认**(你的决策点:拒档策略/是否导入101/停写窗口),或按优先级转入4B3B/C。

View File

@@ -0,0 +1,17 @@
# 交独立AI:P2-α-C目标状态核验执行复核
工作目录`C:/projects/ft`。请先核`CodexOutput/upserver/P2AlphaTargetCheck/execution-review-hashes.json`每一项SHA256及bytes,再读本目录C0原方案/独立审查、C1裁决、C3结论和C4交付。
仅做hash、源码阅读、现有JSON离线对账。**不得构建、运行Preflight DLL、登录账号、请求KV/PF、操作Unity、修改代码或共享文档**。不要为了复核重采快照;只允许写报告`CodexOutput/upserver/P2AlphaTargetCheck/C4-独立执行复核.md`。本单元零生产代码改动,不重审已关闭A/B。
逐项回答:
1. 受审hash一致数;原方案57项和当前执行清单的共享状态增量是否说明清楚。C4-scope-verification中52项未变/5份状态更新是否成立。
2. 独立审查七项和三P3是否落实;构建0错误0警告、35输入hash和8产物、实跑DLL及唯一参数是否可追溯。
3. C2-invocation/run-result/stdout/stderr与新070339Z快照/summary能否支持一次成功运行、应用层2登录+2Get且Set/Delete/PF为0;没有包级计量时是否避免夸大。
4. 前后Unity状态、附加idle、11 claimed路径/hash/长度及无permit是否满足边界;是否有未经授权的运行操作。
5. 请独立离线比较101旧/新快照及102新快照与024903Z、025514Z双参照。采用原字符串(Ordinal,UTF8指纹),不对字符串内JSON重排/转日期;确认45键无增删改、两参照一致。
6. 从C2原JSON取ISO时间文本独立复算目录区间。注意PowerShell ConvertFrom-Json可能自动转换DateTime,不得丢Z后重解析。检查C3初始误报留底与更正是否透明,不把修正报告当修改原快照。
7. T1—T7是否成立;来源权威、跨系统身份、服务器时间/停写、未覆盖业务与恢复条件是否仍明确开放,101空不等于准许导入。
给出通过/有条件通过/不通过、P1/P2/P3及依据、是否可以限定关闭本次目标核验。不能批准101导入、覆盖102、下一玩法或整体迁移上线。主会话负责逐条裁决与共享状态更新。

View File

@@ -0,0 +1,52 @@
{
"phase": "C-closure-and-D-preparation-delta",
"originalCount": 110,
"nonStatusUnchanged": 105,
"items": [
{
"path": "CodexOutput/upserver/接手入口.md",
"sha256": "7BAF8C486C9957F73540D0487772A18B6A67AF4DAFA3C3FFB23F14DF5297650D",
"bytes": 65525
},
{
"path": "CodexOutput/upserver/开发状态.md",
"sha256": "FCA59A2A39DDC8ED54E84F92FA38C860CB9BB2DA56C69A474656849FFB8CBC15",
"bytes": 69233
},
{
"path": "CodexOutput/upserver/TODO.md",
"sha256": "6A529F4DF5A71AEA24FDED5F6AB005C67092E5FC7348BF326E7B15EA1AF04F19",
"bytes": 73810
},
{
"path": "CodexOutput/upserver/开发日志.md",
"sha256": "72E8180D3D12B74BE9D7F4F1EE78C602EAEB89636B328BB728F7B59FBC33DA6C",
"bytes": 193642
},
{
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
"sha256": "B9038A5448D84082C24DF135B85CF4849D7C22407DDC356AB4C86C49A61ACCC4",
"bytes": 20904
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C5-执行复核裁决与关闭.md",
"sha256": "6E4E1DCF5264A9089FEA1852FFF0142B132613A1FD703861BA4C1B908EF501EC",
"bytes": 2999
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C5-closure-verification.json",
"sha256": "18AB5FA297B9858828B0FFCC0F1A12CDA062C1B66ECCB97FC40579A97DDB67E7",
"bytes": 25677
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C4-独立执行复核.md",
"sha256": "0D6EFE22D35D6360EA365DB4F91C4390CA7415AC1FA20BC9F0ECE240CA15A198",
"bytes": 3768
},
{
"path": "CodexOutput/upserver/P2-alpha-D单账号101导入范围与产品决策-2026-09-28.md",
"sha256": "DAC4A660FA6E05B3D4BA24FDACC81C3F0ACC58D2464B67875A9F7651FBC8E373",
"bytes": 5289
}
]
}

View File

@@ -0,0 +1,33 @@
# P2-α-C执行复核裁决与关闭
2026-09-28,主会话。**接受独立执行复核,限定关闭本次目标快照核验P2-α-C,无需再次复审该单元。** 不关闭整体迁移,不批准101导入或覆盖102。
## 基线
更新共享状态前,主会话独立重算`execution-review-hashes.json`:110/110项SHA256及长度一致。清单SHA256为`D1461C8850CD584E5ECDD60F2146F8B9B98BC63DE61D9188E27532494B1A22AE`。详细核验与报告hash见`C5-closure-verification.json`。原清单/报告/采集证据保持,不重写。
## 七项逐条裁决
| 项 | 主会话裁决 |
|---|---|
| 1 hash/增量 | 接受110项一致及C0的52未变/5共享更新说明;关闭后共享状态为新增量 |
| 2 可追溯/三P3 | 接受构建、35输入、8产物及唯一参数证据;目录时间、双参照和异常说明均落实;异常模板未触发,非实测异常测试 |
| 3 执行/请求 | 接受一次exit0和两份完整快照;2登录+2Get为应用层路径推得,KV Set/Delete/PF=0,不推断服务器登录元数据无变化 |
| 4 运行边界 | 接受前后空闲、无permit、11 claimed不变,未Play;本轮关闭不重新运行Unity或正式接口 |
| 5 数据对账 | 接受101空、10245键与两参照逐值一致,独立离线对账支持结论;不推为未来写入时仍如此 |
| 6 时间 | 接受透明更正及秒级区间结论;原报告个别时间措辞按下节澄清 |
| 7 范围 | 接受T1—T7及迁移前置继续开放,仅关闭目标核验 |
## 时间措辞澄清
报告第6项将目录`07:03:39Z`写为落在`07:03:39.108Z—07:03:42.149Z`区间内,按精确时间直接比较并不成立。正确判据是C1裁决明确的**起止时间分别截断至秒后**,目录位于`07:03:39Z—07:03:42Z`范围内。目录只编码到秒,不能据其名字证明真实创建时刻精确为07:03:39.000Z,也不将其与第一次请求的时差说成实测值。
报告“复核期内离线更正”也不能当作独立审核侧修改:更正发生在主会话C3,初始误报及更正均于送审前保留。以上属于表述澄清,原始时间、更正计算、采集及hash均无疑点,无需重采或另起复审。
## P3-1裁决
采纳:后续任何写入方案引用本次快照时,必须显式注明`at`是工具本地UTC、**本地钟与服务器钟未校验偏差**。旧快照不替代实际写前Get,不提供排他停写窗口或服务端身份映射证明。纳入后续范围文档。
## 关闭后下一步
转主会话准备单个专用账号101的写入方案。用户随后已明确选择“采用上述固定备份与101映射”,接受固定历史测试起点、PF customId101→s101 playerId101、非空/校验失败停止、不覆盖/合并/建空档。停写窗口留到实际执行前明确;仍需新方案完整评审,不直接编写代码或写入。102现有进度保持,A/B/C及4C2不重复复审。见`../P2-alpha-D单账号101导入范围与产品决策-2026-09-28.md`。

View File

@@ -0,0 +1,558 @@
{
"phase": "P2-alpha-C-execution-review",
"createdUtc": "2026-09-28T07:07:14.7044971Z",
"count": 110,
"note": "只读复核,不构建/运行DLL/请求服务器/操作Unity。原57项清单保持,当前共享状态为执行增量。",
"items": [
{
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
"sha256": "63C369187806A2645C8C6A1411397A6CB7CDDBF5A2DC0E41D905872168DC8675",
"bytes": 5105
},
{
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
"sha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
"bytes": 10626
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
"sha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
"bytes": 4808
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
"sha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
"bytes": 6765
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs",
"sha256": "D3C9179594392FC0E624266CFBB5020EEC76D4E00B110B36D99457373F914C5C",
"bytes": 6293
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs",
"sha256": "35859243346DFB5A7E1ABC504CBCDDE3818F0793233FCEC8435A74C84D721C03",
"bytes": 57059
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
"sha256": "EAFDF80AC93B4726FDDCAEB359C6A1E0B0F26A3154FAEC8F8A48EA1840C94FE6",
"bytes": 140805
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs",
"sha256": "C22524279905407EF64957BFC6B853A4B24F9B1B15A2B55A1038558DB5649AB9",
"bytes": 13913
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs",
"sha256": "18ABD846BE9FA9F1A0828ADD8B31CFED1EBD1A0F3114ACBA17B65ABC2AC87B10",
"bytes": 1834
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs",
"sha256": "C7EB34DB6FB42A44E9D930592D2928CC96CEC4D1D532A66A3207E82F263C02DB",
"bytes": 4635
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs",
"sha256": "710A0050277BE07AC781F976945D8D2DDF7704EA616D0BF83797ABA2FA6530EA",
"bytes": 6874
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
"bytes": 13612
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs",
"sha256": "4C7D49032229B2CB85DCA0ED5D711181239DD22DCACB4B0624D2A96AF99A691D",
"bytes": 1574
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs",
"sha256": "C9C76A16F61CBC3CC748A0F44B581508B4178E7F322C43C8F05E2FC8707345DC",
"bytes": 1471
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
"sha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
"bytes": 1312
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
"sha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C",
"bytes": 24188
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
"sha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290",
"bytes": 2993
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
"sha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
"bytes": 1192
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveRouteEditorValidationHost.cs",
"sha256": "9FE2066CDB2BA74F8C515B82844E96C3A336220CEC7C3622E6B134DAB81BB8BF",
"bytes": 7755
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
"sha256": "FBDB253D3415E35D7D30F867DA057A84E91EAA7DE2FE74094707C517CB8B51A1",
"bytes": 76183
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
"sha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
"bytes": 16751
},
{
"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/PlayerData/PlayerKVSyncModels.cs",
"sha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
"bytes": 14440
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
"sha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
"bytes": 10925
},
{
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
"bytes": 40556
},
{
"path": "Client/Assets/Scripts/Tables/ConditionType.cs",
"sha256": "E27E770B82C5F3922E7D23A9340E2DC32AE114D65259AE959B34E806A886059C",
"bytes": 6025
},
{
"path": "Client/Library/PackageCache/com.unity.nuget.newtonsoft-json@3.2.1/Runtime/Newtonsoft.Json.dll",
"sha256": "7292D3EB508652D14726749DD27094F2D481AECCF2DB6427B62F68A71460897E",
"bytes": 696320
},
{
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
"sha256": "110FFF7FA926C05664F03709404DC289516608D901348CD3FC1FDD398A4A5E92",
"bytes": 20617
},
{
"path": "CodexOutput/upserver/阶段4C2第四次真实闭环与新进程恢复记录-2026-09-28.md",
"sha256": "ECE690DCCACF7D79993E4ED180319B6DF3551453F2D22B6289ECC2302F96CB86",
"bytes": 8347
},
{
"path": "CodexOutput/upserver/接手入口.md",
"sha256": "4076A13B6163A08F8443B1BDA22DCA9D67A131AA144F57501F97F70E8015B2BB",
"bytes": 65458
},
{
"path": "CodexOutput/upserver/开发日志.md",
"sha256": "43C7A068F9AC17725CB0F632E47E12C148BFBD07D9CBD94D99CCC053568C21EC",
"bytes": 192409
},
{
"path": "CodexOutput/upserver/开发状态.md",
"sha256": "456D00816744F513EC803271516767E50DC638744A6871A90A96002B47DDF3BE",
"bytes": 69166
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T024903Z/102-summary.json",
"sha256": "929EB465F88DBB9EB6D48A5281EAEB7BB761B38F4802DCD609214FA3A6E34C91",
"bytes": 1349
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T024903Z/102.json",
"sha256": "DA2372B9163761447951D4AA07A182B4DDC64D086FE59CF5F87C007BC81DE4A1",
"bytes": 14408
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/101-summary.json",
"sha256": "FD65C620F8D2EE0716E9648D36AD4D63351FFA9BE9FA78550EC1921694C672BE",
"bytes": 291
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/101.json",
"sha256": "90D51BEA6E69D1539B55F6AA9FB2EC64624CF84C10B5C1D1E5DC6D1F0E19641D",
"bytes": 119
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/102-summary.json",
"sha256": "1C7280236CC303FC5563A8D63A0263D5CF92E17DD2AFC7CE5C777C72109CF0B0",
"bytes": 1349
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/102.json",
"sha256": "A00C2BA9B1E11C177D735CEF7CC925099E9D7C32ADFAE9B0D6DBBA6F784BEF40",
"bytes": 14408
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T070339Z/101-summary.json",
"sha256": "A841A3F947D8CF5DFF321353BA5A1A592AE83F191DDF0B624846551A01A5D1E6",
"bytes": 291
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T070339Z/101.json",
"sha256": "144B8E9AD706A0649AC3B6E25CA80CC699CA22A4216AA523F177AB57B3959841",
"bytes": 119
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T070339Z/102-summary.json",
"sha256": "B66E95870740B9A1663D30E2B4E93394259B24C926AD02060D8147573BB1EF5A",
"bytes": 1349
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T070339Z/102.json",
"sha256": "95E5C886228D2B393740643DFA63D077BD41241BAFB1648A7D6FA35D0667323D",
"bytes": 14408
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/101-summary.json",
"sha256": "DC72E8314B0C14408BC03B4487298FF97200FF55CB101D599E67A0B8C1250EB0",
"bytes": 1713
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/101.json",
"sha256": "E6EB3E656B62A3535FDB8F0DC517321A4C3E32F3A8D95385A2B7D5C0AA8222EF",
"bytes": 22144
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/102-summary.json",
"sha256": "E5B2BA80FD3B7E2BA5EF3D929B65E071D2AFCC54304561F958A107DFF0EE1F44",
"bytes": 1421
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/102.json",
"sha256": "827F36084648449CEFAFB96B3CE62093DF70B8A87E33A526DA5B03A9C135A377",
"bytes": 14392
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/AdvertCompatibilityTests.cs",
"sha256": "1C770DF03A3D91327131A45EBD16E480D554CDC7371B323906B61FE9B109F117",
"bytes": 2543
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Import102.cs",
"sha256": "CED9C553ECD79275B3771A90CD52C94EB5A3B5D593643F59660A1D28A65987E1",
"bytes": 7819
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/obj/project.assets.json",
"sha256": "765A197F531F062AE656F81FA7BD66740C26FD1686122F462D6A659DA68E9A4D",
"bytes": 1988
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/PFSourceBackup.cs",
"sha256": "93D5F00F4F8E466801ED7C7BBB7EE0CDEFEB3CE52DAA1EFB58BE9ADA6FF385C6",
"bytes": 3143
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Preflight.csproj",
"sha256": "CD3638FE8DAE92ED8CF13159CC1D6D4A157D9CB4FF2EC4D86E8E5BE73E836540",
"bytes": 812
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Program.cs",
"sha256": "B3D88FE4B225CC5F1D1F0C37B2B8289A323A5F4064E1B0379B36B4267C313F42",
"bytes": 2164
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/101820_639258292892095408.claimed",
"sha256": "FC9B8E102F6D7299867A6AE0FB28C3E9DCB6DC603D32C8B15530FA0DAD64EA2B",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/103828_639261606481142886.claimed",
"sha256": "56CBBAC6B984414BA9AF8FF621697D71A6AE824E68BC9ADAE0BC7A0386E3C28B",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/120896_639258276377220393.claimed",
"sha256": "431D38D388C5A29E291A87C00D99087CBFDBCDA15F2BCF792D524B1DE0E09D1F",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/129848_639258318484354090.claimed",
"sha256": "B0034AD4EB83467225E3EA34563C7CC88F8F91EE4A5542A863B018F5B9A467C4",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/29520_639258498367875839.claimed",
"sha256": "12A20D9184C3BC90D40924290AE08EA0C4D9C69263B28E71B83C3532A31D4289",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/41828_639258336171434448.claimed",
"sha256": "0BAD4A962A80EEB5903F2E2C5D7E2F2A583E83345AE72E0971F373D4C338BD0E",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/42620_639258392922105429.claimed",
"sha256": "0313C5AECA556DD472C468EC16066F3826902F7C8F0869A3CB18E72B11DE05F4",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/44848_639261601944579366.claimed",
"sha256": "B638A9CF4563F3D3825462F7559ED9C8DF799C8C5ACB51C2444E23DAB6A4752F",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/54200_639258133649707870.claimed",
"sha256": "0FE7D1230895114DB307A6C7F2E0E100CE6C39A69757221CD082CB68EFB45B8D",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/62216_639258472117601499.claimed",
"sha256": "5E84064FA3CFBD12A0239A31A0AE23AD1F9A1C702BF2A156E498EE808E63AA6B",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/run-control/69744_639261599226683685.claimed",
"sha256": "05385F43DDC763B3745D3F0410E4EB4B7A4623BDC84C37BEF0C36EE8BA5C4FAC",
"bytes": 28
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-state.cs.txt",
"sha256": "040D25CC55A85210B0DD89EB1B7AC9E16CF78DF030E55D859F8F2FC8511004F6",
"bytes": 36
},
{
"path": "CodexOutput/upserver/MinimalLoginTests/NuGet.Config",
"sha256": "9508CAE5F76364F56E80EB97CB16493977243CF38E5CCA6284E3D74F83B20A2C",
"bytes": 74
},
{
"path": "CodexOutput/upserver/P2-alpha剩余迁移条件与下一步清单-2026-09-28.md",
"sha256": "0B8D9E460C4F21B61F8E1DCEA878142EA93BC3E1D1B286641F9EE994C7967FE2",
"bytes": 4518
},
{
"path": "CodexOutput/upserver/P2AlphaAudit/A3-key-ledger.json",
"sha256": "317A457163B1D612B524A012E4597651B4311C57EB50EC797F0383D6714C211C",
"bytes": 850384
},
{
"path": "CodexOutput/upserver/P2AlphaAudit/A4-交付与后续最小开发建议.md",
"sha256": "A4A57ED1207C449D56E728E9D0D4A28658EFE51171B0CBACCA7877660ACC2F95",
"bytes": 5692
},
{
"path": "CodexOutput/upserver/P2AlphaNullCompatibility/B5-实施复核裁决与关闭.md",
"sha256": "C4AA2C3B239B0CA753CB1C422ED487973343544C9F07FDD0E9BCB9BAAF80DC6D",
"bytes": 3745
},
{
"path": "CodexOutput/upserver/P2AlphaNullCompatibility/closure-delta-hashes.json",
"sha256": "581D62BBFB95A5932D397D9B5FEB3A2BA5EB3E5E06C635C3234431920C44CE2E",
"bytes": 3894
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C0-独立方案审查.md",
"sha256": "8A8D9ABB6C66C6DA79B733FED564CE901E23DC48A56E082557B30477D2DFDB51",
"bytes": 4052
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C0-独立方案审查提示词.md",
"sha256": "4326B2E534C0ADEE615CACF44A1FA15D6E8EC226EE6B2785DF5300EBD8F9A360",
"bytes": 2173
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C0-目标状态核验最小方案-待评审.md",
"sha256": "D2198AA4F992DEE65DFCEF138E1671D2DB3A3FB6EBFC2C993684BA2BA6A9B866",
"bytes": 10780
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C0-前置关闭基线核验.json",
"sha256": "581AFE5F5C4BE5518BD2F5C9DA02417544428C9D9986F7BB6F7A2E9FFFA857A3",
"bytes": 307
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-审查裁决与执行批准.md",
"sha256": "C78103F06A21750BB50E82627427EDAFCCDC0E927A0E678B7B75CC3FB8ED2FF2",
"bytes": 3195
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-artifact-hashes.json",
"sha256": "62A208D27AB55E628F82909695EEC8443080548855919281BA54A26C321FFD25",
"bytes": 1574
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Newtonsoft.Json.dll",
"sha256": "7292D3EB508652D14726749DD27094F2D481AECCF2DB6427B62F68A71460897E",
"bytes": 696320
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Newtonsoft.Json.pdb",
"sha256": "EEBB075CE7B6530268DA0FB24854B085B10BE7FD6492FE74F3E5608061291741",
"bytes": 2186752
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Newtonsoft.Json.xml",
"sha256": "E0FED73A98ED4DB5A2BDE3DC53836CC1FAC24E34EAEAB2007E1CFAB81ADB71B0",
"bytes": 702415
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.deps.json",
"sha256": "50DBE40646847BBD9D5DDB1A1B8834901232881C5EFAE38E44F2C163D8B9317B",
"bytes": 831
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.dll",
"sha256": "C2F8E8578BA3E60EDAFC4CC9A98E60BF2D2E64549F1C174F0CFD47E970C42A81",
"bytes": 289280
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.exe",
"sha256": "B950DA7A97A2710B6B5D6919316DE96B22E46B0E8A80453029D4A6C7A31C4CF2",
"bytes": 156160
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.pdb",
"sha256": "A04BC64F64D0BEC9E9F189B43270F6C86D70C9AE865B51971CFAB20B52236276",
"bytes": 93716
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-bin/Preflight.runtimeconfig.json",
"sha256": "A45057885F807F4A337FDEA3CCDFA64E1675D22A6D6A6FC7C7394FD44BA9EEBE",
"bytes": 268
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-build-input-check.json",
"sha256": "4A3A30F3330D8AA636F54EB2C4F237602819C65F9943C52A2674E4D926262B6B",
"bytes": 7314
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-build-result.json",
"sha256": "18505BBD9A84BD86DB3C5D8CA5A38AEEC83FB123E481BF811DE0AF92758A9B56",
"bytes": 276
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-build.log",
"sha256": "239EA1B3C53FDE8DD7575185391DAF699112D5115C3F0FBED10C3769385067FD",
"bytes": 176
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-claims-before.json",
"sha256": "7AA08FBD0C32927ED0185E8CA26539B1DBBE11BAA2FF73A07796333E648E89FB",
"bytes": 2565
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-editor-idle.json",
"sha256": "3C0616409AAA2EE013DDBAA421B2FA7C1C26F77C030112A889D714BC1CDAF428",
"bytes": 341
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-review-verification.json",
"sha256": "299FF2B0AF9CECDE00EB34DEC03E4A43FFD1E04A55FA532943414C13E21C28B9",
"bytes": 13267
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-unity-processes.json",
"sha256": "CC794A0A75D1386FBB90BBF9CE7C42B07559A8A8A062F05C7300342E64559B08",
"bytes": 163
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C1-unity-state.json",
"sha256": "4BB5465699F6C0E71D330C6CD5060FC0D584D17D04F5BFA3F9D87A816D58E10F",
"bytes": 860
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C2-backup-directories-before.json",
"sha256": "352039153F9FEF6CC99EBFD180730DAEF9D4F9603F4B2FD384633B41283742EA",
"bytes": 649
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C2-claims-after.json",
"sha256": "741A5A2DB326A59800D9EEA827CCBF727A59E1A4305BBDEA6863AAF93A7A88DF",
"bytes": 2638
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C2-editor-idle-after.json",
"sha256": "3C0616409AAA2EE013DDBAA421B2FA7C1C26F77C030112A889D714BC1CDAF428",
"bytes": 341
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C2-invocation.json",
"sha256": "23B8878BD03F148BA1FEED64A22CDDE2F32D8DA75F347FD038363AAFC8D57E03",
"bytes": 316
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C2-run-result.json",
"sha256": "C2E63C1C3E6B8241526EBC998275CE8B0E08768D7715AFF2BD3DCCCD5F43F5E4",
"bytes": 168
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C2-stderr.log",
"sha256": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"bytes": 0
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C2-stdout.log",
"sha256": "3744BB27473B1C833C98001EB760AFEFC7C970DB7572E6EE14DB6A9CCF5412C4",
"bytes": 1296
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C2-unity-state-after.json",
"sha256": "4BB5465699F6C0E71D330C6CD5060FC0D584D17D04F5BFA3F9D87A816D58E10F",
"bytes": 860
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C3-目标状态与迁移前置结论.md",
"sha256": "7CEB71EF071EB56F76317BCB41A887296A2228F96435C32A0C4D05C1F6EFB989",
"bytes": 3507
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C3-snapshot-verification-initial-time-parser.json",
"sha256": "5CCCE81231CBEB3F16FFE5958C91076080332500C77F4454451C0EF95588548A",
"bytes": 57469
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C3-snapshot-verification.json",
"sha256": "4447588D840EB173601C26C06B01F7FEABAB28A83EB177A7C1BE9A36CFD254E0",
"bytes": 57839
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C3-time-check-correction.json",
"sha256": "248C2EB348C3B61FB1BD41453FB13CB6AF377B9E1EA38F7A17140E8CC4A29B4B",
"bytes": 409
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C4-独立执行复核提示词.md",
"sha256": "5162A496EF2628AACC6EAA3E6D6FCF9A2CB6457636CB32EBB8A40DF75901DB68",
"bytes": 2117
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C4-执行交付与验收.md",
"sha256": "B6DA1611B9C5B7667B2E37FAB5483797AC7BDBAFA7952362CF42EA603CEACB42",
"bytes": 3381
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C4-scope-verification.json",
"sha256": "F4CEF8A8DF4E4F67964993B2C24DD667D847DA9F8102CE50A4F9CE98D124C26F",
"bytes": 22555
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/review-hashes.json",
"sha256": "EFF9D8724EB24106156CA008B721CC237D19BD5668A26B460A59950B90751EFD",
"bytes": 12120
},
{
"path": "CodexOutput/upserver/TODO.md",
"sha256": "ABFBDB8B1020CE29AF704FB62700E40B0C4B64D0BACBE4CA6F6BCB053790AFB4",
"bytes": 73696
}
]
}

View File

@@ -0,0 +1,293 @@
{
"phase": "P2-alpha-C-design-v1",
"createdUtc": "2026-09-28T06:58:27.6255596Z",
"count": 57,
"scope": "方案/共享状态/直接构建源及依赖/既有样本;不授权执行。构建后obj为预期编译产物变化,应记录,不反写本清单。",
"items": [
{
"path": "Client/Assets/Editor/KVGameplayLoopSetup.cs",
"sha256": "63C369187806A2645C8C6A1411397A6CB7CDDBF5A2DC0E41D905872168DC8675",
"bytes": 5105
},
{
"path": "Client/Assets/Scripts/Services/Account/S101AccountSession.cs",
"sha256": "EDEE0803B13B2A33B0F6E9DDE1365031653AC37CAB35C90B8046F207B7AE0476",
"bytes": 10626
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVCacheStore.cs",
"sha256": "A08DAB00F51A28CB5AA9A26D66CB3EB9349216535E92F4DC4E77EE8DDEBA28B1",
"bytes": 4808
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVClient.cs",
"sha256": "9D2D9FC38A0EE48F2CB0B926BB733621045FE179C5B20E7717B0F975D415D2FE",
"bytes": 6765
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVControlledLoadCapability.cs",
"sha256": "D3C9179594392FC0E624266CFBB5020EEC76D4E00B110B36D99457373F914C5C",
"bytes": 6293
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVDecodedSave.cs",
"sha256": "35859243346DFB5A7E1ABC504CBCDDE3818F0793233FCEC8435A74C84D721C03",
"bytes": 57059
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVEditorValidationHost.cs",
"sha256": "EAFDF80AC93B4726FDDCAEB359C6A1E0B0F26A3154FAEC8F8A48EA1840C94FE6",
"bytes": 140805
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadCoordinator.cs",
"sha256": "C22524279905407EF64957BFC6B853A4B24F9B1B15A2B55A1038558DB5649AB9",
"bytes": 13913
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadGuard.cs",
"sha256": "18ABD846BE9FA9F1A0828ADD8B31CFED1EBD1A0F3114ACBA17B65ABC2AC87B10",
"bytes": 1834
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameLoadTransaction.cs",
"sha256": "C7EB34DB6FB42A44E9D930592D2928CC96CEC4D1D532A66A3207E82F263C02DB",
"bytes": 4635
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameplayBindings.cs",
"sha256": "710A0050277BE07AC781F976945D8D2DDF7704EA616D0BF83797ABA2FA6530EA",
"bytes": 6874
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVGameSessionBridge.cs",
"sha256": "DD888351BFA4BBA03E953F39E11362AF8EA9F76FB56AC1CB77D9053C81227363",
"bytes": 13612
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVInitializationIntents.cs",
"sha256": "4C7D49032229B2CB85DCA0ED5D711181239DD22DCACB4B0624D2A96AF99A691D",
"bytes": 1574
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVKeyReadResult.cs",
"sha256": "C9C76A16F61CBC3CC748A0F44B581508B4178E7F322C43C8F05E2FC8707345DC",
"bytes": 1471
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLocalReadResult.cs",
"sha256": "9A00AA0ECEA286FC4474729A1BFABDD3D5A1453182B5FCB91D11CD81724481AF",
"bytes": 1312
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginContext.cs",
"sha256": "3E7435F4BE79A9D92FB044C4D1ECB3E53A08EAA65A7634F1FF63E396E59C742C",
"bytes": 24188
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVLoginPrepareResult.cs",
"sha256": "108CA361C7153D19A08CD348B8325538019A86C426BDD80B907528399F22B290",
"bytes": 2993
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVModels.cs",
"sha256": "836B1A20F0510D48E74AD8D25AEA4E0DAAB3B6E6887374FDEBFDC0ADA688FE4D",
"bytes": 1192
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveRouteEditorValidationHost.cs",
"sha256": "9FE2066CDB2BA74F8C515B82844E96C3A336220CEC7C3622E6B134DAB81BB8BF",
"bytes": 7755
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSaveSchema.cs",
"sha256": "FBDB253D3415E35D7D30F867DA057A84E91EAA7DE2FE74094707C517CB8B51A1",
"bytes": 76183
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSessionOwner.cs",
"sha256": "BFB5AC0DF38BCACC341646292ACAA71606F2DC5FECF91535785D222EAFACF7B5",
"bytes": 16751
},
{
"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/PlayerData/PlayerKVSyncModels.cs",
"sha256": "49143F3A6DAD9A570C522288B471D5C4CE5812F73E0EB7B8E6081453C97990D4",
"bytes": 14440
},
{
"path": "Client/Assets/Scripts/Services/PlayerData/PlayerKVSyncState.cs",
"sha256": "B0BF9EBAA24C8ACB4761B7C09331B81A414E62CDBBF143B106B7F466E334A198",
"bytes": 10925
},
{
"path": "Client/Assets/Scripts/Services/UserService.KVGameplayLoop.cs",
"sha256": "930D1FF02108915F2223BC340010EF1697942EC50CDE9457A578BF1AEEEF2B4A",
"bytes": 40556
},
{
"path": "Client/Assets/Scripts/Tables/ConditionType.cs",
"sha256": "E27E770B82C5F3922E7D23A9340E2DC32AE114D65259AE959B34E806A886059C",
"bytes": 6025
},
{
"path": "Client/Library/PackageCache/com.unity.nuget.newtonsoft-json@3.2.1/Runtime/Newtonsoft.Json.dll",
"sha256": "7292D3EB508652D14726749DD27094F2D481AECCF2DB6427B62F68A71460897E",
"bytes": 696320
},
{
"path": "CodexOutput/upserver/阶段4B3当前TodoItem-2026-09-24.json",
"sha256": "947ACA089D656011A755885125B86AE1831F64D86728F131E747A9BAF4679C2D",
"bytes": 19328
},
{
"path": "CodexOutput/upserver/接手入口.md",
"sha256": "B6E85823F26ADE8824ED01DA9519FF38A6F2FE752CC75F0966580C012765537B",
"bytes": 65628
},
{
"path": "CodexOutput/upserver/开发日志.md",
"sha256": "08AD809A346BB4D719A32D9CF97050DF4CA76A81496C4E36382229C24D2AE2CC",
"bytes": 190829
},
{
"path": "CodexOutput/upserver/开发状态.md",
"sha256": "9DD62B777712673396C70717A35D2E51B461BE3F8DA90B152C9AE612BD33911C",
"bytes": 69336
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/101-summary.json",
"sha256": "FD65C620F8D2EE0716E9648D36AD4D63351FFA9BE9FA78550EC1921694C672BE",
"bytes": 291
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/101.json",
"sha256": "90D51BEA6E69D1539B55F6AA9FB2EC64624CF84C10B5C1D1E5DC6D1F0E19641D",
"bytes": 119
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/102-summary.json",
"sha256": "1C7280236CC303FC5563A8D63A0263D5CF92E17DD2AFC7CE5C777C72109CF0B0",
"bytes": 1349
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/backups/20260928T025514Z/102.json",
"sha256": "A00C2BA9B1E11C177D735CEF7CC925099E9D7C32ADFAE9B0D6DBBA6F784BEF40",
"bytes": 14408
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/101-summary.json",
"sha256": "DC72E8314B0C14408BC03B4487298FF97200FF55CB101D599E67A0B8C1250EB0",
"bytes": 1713
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/101.json",
"sha256": "E6EB3E656B62A3535FDB8F0DC517321A4C3E32F3A8D95385A2B7D5C0AA8222EF",
"bytes": 22144
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/102-summary.json",
"sha256": "E5B2BA80FD3B7E2BA5EF3D929B65E071D2AFCC54304561F958A107DFF0EE1F44",
"bytes": 1421
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/pf-source-backups/20260924T041802Z/102.json",
"sha256": "827F36084648449CEFAFB96B3CE62093DF70B8A87E33A526DA5B03A9C135A377",
"bytes": 14392
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/AdvertCompatibilityTests.cs",
"sha256": "1C770DF03A3D91327131A45EBD16E480D554CDC7371B323906B61FE9B109F117",
"bytes": 2543
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Import102.cs",
"sha256": "CED9C553ECD79275B3771A90CD52C94EB5A3B5D593643F59660A1D28A65987E1",
"bytes": 7819
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/obj/project.assets.json",
"sha256": "765A197F531F062AE656F81FA7BD66740C26FD1686122F462D6A659DA68E9A4D",
"bytes": 1988
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/PFSourceBackup.cs",
"sha256": "93D5F00F4F8E466801ED7C7BBB7EE0CDEFEB3CE52DAA1EFB58BE9ADA6FF385C6",
"bytes": 3143
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Preflight.csproj",
"sha256": "CD3638FE8DAE92ED8CF13159CC1D6D4A157D9CB4FF2EC4D86E8E5BE73E836540",
"bytes": 812
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/Preflight/Program.cs",
"sha256": "B3D88FE4B225CC5F1D1F0C37B2B8289A323A5F4064E1B0379B36B4267C313F42",
"bytes": 2164
},
{
"path": "CodexOutput/upserver/KVGameplayLoopTests/unity-state.cs.txt",
"sha256": "040D25CC55A85210B0DD89EB1B7AC9E16CF78DF030E55D859F8F2FC8511004F6",
"bytes": 36
},
{
"path": "CodexOutput/upserver/MinimalLoginTests/NuGet.Config",
"sha256": "9508CAE5F76364F56E80EB97CB16493977243CF38E5CCA6284E3D74F83B20A2C",
"bytes": 74
},
{
"path": "CodexOutput/upserver/P2-alpha剩余迁移条件与下一步清单-2026-09-28.md",
"sha256": "0B8D9E460C4F21B61F8E1DCEA878142EA93BC3E1D1B286641F9EE994C7967FE2",
"bytes": 4518
},
{
"path": "CodexOutput/upserver/P2AlphaAudit/A3-key-ledger.json",
"sha256": "317A457163B1D612B524A012E4597651B4311C57EB50EC797F0383D6714C211C",
"bytes": 850384
},
{
"path": "CodexOutput/upserver/P2AlphaAudit/A4-交付与后续最小开发建议.md",
"sha256": "A4A57ED1207C449D56E728E9D0D4A28658EFE51171B0CBACCA7877660ACC2F95",
"bytes": 5692
},
{
"path": "CodexOutput/upserver/P2AlphaNullCompatibility/B5-实施复核裁决与关闭.md",
"sha256": "C4AA2C3B239B0CA753CB1C422ED487973343544C9F07FDD0E9BCB9BAAF80DC6D",
"bytes": 3745
},
{
"path": "CodexOutput/upserver/P2AlphaNullCompatibility/closure-delta-hashes.json",
"sha256": "581D62BBFB95A5932D397D9B5FEB3A2BA5EB3E5E06C635C3234431920C44CE2E",
"bytes": 3894
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C0-独立方案审查提示词.md",
"sha256": "4326B2E534C0ADEE615CACF44A1FA15D6E8EC226EE6B2785DF5300EBD8F9A360",
"bytes": 2173
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C0-目标状态核验最小方案-待评审.md",
"sha256": "D2198AA4F992DEE65DFCEF138E1671D2DB3A3FB6EBFC2C993684BA2BA6A9B866",
"bytes": 10780
},
{
"path": "CodexOutput/upserver/P2AlphaTargetCheck/C0-前置关闭基线核验.json",
"sha256": "581AFE5F5C4BE5518BD2F5C9DA02417544428C9D9986F7BB6F7A2E9FFFA857A3",
"bytes": 307
},
{
"path": "CodexOutput/upserver/TODO.md",
"sha256": "D992B3846D098788695C49AE9C95D4BB87BDDEF2D5B16BEA34D4E362B200FA32",
"bytes": 73780
}
]
}