Files
ft/CodexOutput/upserver/阶段4C2实施进展与准入阻塞-2026-09-24.md

61 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阶段4C2实施进展与准入阻塞
2026-09-24,主会话。**这是中间检查点,不是完整交付或关闭报告。当前下一步需要评审引导准入补充方案。**
## 1. 已裁决与实施范围
原独立方案审查九项结论、四条P3已逐条接受;319项受审hash全部一致后才编码,详见《阶段4C2方案审查裁决与实施记录-2026-09-24.md》。7旧源码原字节存于 `KVFishingRewardTests/before/`。
本轮实现限于原批准的7旧源码和2新Editor源码:v3一次消费加收鱼许可、独立奖励动作、S1/S2/S3同步写入记录、最终鱼档和主档保存、原票据确认后展示、重入/取消保护。没有修改奖励金额公式、概率、战斗参数、任务算法或底层存储协议。`scope-checkpoint.json`核对受审源码仅7个白名单文件变化,267个配置JSON未改;不能以共享工作区全部git diff冒充本轮修改。
修复的具体缺口:未破重量纪录时,原SetGetFishCount只改变内存,原SetWeight不会保存Map。新增最终Map保存仍调用原SetFishData,不再加数量或发布事件;最终主档保存调用原序列化。金币公式、SetProficiency、SetFishWeight三个原片段保持一致。
## 2. 已执行证据
以下路径均相对 `CodexOutput/upserver/KVFishingRewardTests/`。
| 验证 | 结果及证据 |
|---|---|
| 原鱼数量漏存红测 | `legacy-red.log`,原方法提取宿主证明数量20→30但Map写0;这是预期失败 |
| v3许可红绿 | `permit-red.log`→`permit-green.log`,12项通过 |
| 面板重复OnShow红绿 | `panel-duplicate-red.log`→`panel-duplicate-green.log`;原确认动作不再被重复调用覆盖,计算一次、确认后展示一次 |
| 奖励固定Unity host | `reward-fixed-final-retry.json`,25组85断言;.invalid网络,不是真实捕鱼 |
| 真实数据与订阅 | 上述host包含新鱼/破纪录/未破纪录、实际PlayerData次数/金币/主档序列化、成就与战令保存;现行MiniBP/Lucky/Magic对收鱼相关事件不产生写入,消费正向覆盖由4C1回归提供 |
| 原公式同输入对照 | `formula-comparison.log`,原/新四组结果122、0、10、0相同;`formula-source-check.json`三个片段一致。提取宿主的UI/配置与Mathf边界为替身,不冒充实景 |
| 当前消费入口 | `consume-control-current.log`,原方法提取27断言;v2新增preflight seam为无操作替身 |
| 当前控制器入口与生命周期 | `controller-source-tests.log`,实际方法提取9断言,包含重复拉杆/结束、UI等待期间Disable、Destroy、自然失败及旧许可;核心战斗/UI加载服务为替身 |
| 4B2 | `regression-b2.log`,75组1718断言通过 |
| B3A全量 | `regression-b3a-approved.log`,13组544断言通过 |
| 额外bridge回归 | `regression-bridge-approved.log`,18组226断言通过 |
| R1退出/许可 | `regression-exit-editor.log` 10组35;`regression-exit-service.log` 10组30;`regression-r1-permit.log` 15断言 |
| Unity既有回归 | `unity-regressions.json`:4C1 19组81、加载M01 168、B2-20 83、保存34、装备9组28,全过 |
| 编译 | `compile-final.json` Editor 0错误269警告;`service-host-compile.log`通过;`default-player-compile.log`仍有既有FishingChallengeManager.cs:72 `_cheatingScore` CS0103,不报通过 |
失败与限制保留:
- B3A/bridge初次沙箱运行失败;`regression-b3a-diagnostic.log`证实File.Replace UnauthorizedAccessException。相同源码和测试在批准的沙箱外通过,未改文件替换算法。
- Unity host的一次 `reward-fixed-final.json`发生StorageError uncertain=True;新独立测试目录复跑25/85通过,但未捕获该次底层异常,**根因未定,不将其归因于沙箱或称已修复**。没有因此重试任何真实付费动作。
- 最终三处Tween继续点仅补当前动作检查并经最终Editor编译;不是全动画资源覆盖。SERVICE_HOST相关分支不包含这些Editor专用保护。
- C2-01原奖励展示不等待的独立原入口红测尚未补齐;C2-02当前Map读回使用原FishWeightData反序列化,专门Schema Map三态复验尚未补齐。
- C2-07实景控制器销毁/资源加载与正常Quit联动、C2-09完整运行准入正向及配置/活动漂移故障矩阵仍需补验。已跑的来源提取/数据host不替代这些项。
## 3. 真实运行尚未开始:引导门阻塞
最新只读备份 `KVGameplayLoopTests/backups/20260924T084836Z/`:101仍空;102仍45键,与 `20260924T080345Z/102.json`逐值相同。该工具发生登录/Get请求、KV写0;本轮无新游戏许可、无真实消费、无收鱼奖励。
原方案§6要求所有触及捕鱼相关面板的引导组均完成。实际GuidanceConfig中有11组;102已完成Fish_01、Fish_02、StabFish、FishEscape,另外7组未完成且不在等级跳过名单:FishSkill01、Pollution01、FishSkill02、FishSkill03、FishSkill04、Egyptian01、EasterFish01。它们都是None触发条件的特殊技能引导。
证据:`offline-guide-gate-final.json`、`guide-details.json`;固定host用真实Guide解码和实际CheckRewardGuide验证原方案在消费前拒绝,未写引导数据。因此不能执行C3,也不能把“普通鱼可能不会触发这些引导”当作既有批准。
## 4. 下一步与完成度
- [x] C0完整评审裁决、受审hash及快照。
- [x] C1限定接线及主要数据/票据/生命周期固定验证。
- [ ] C1/C2剩余验证项见§2;不宣称矩阵全部通过。
- [x] C2-11既有回归及Editor/SERVICE_HOST编译;历史默认非Editor错误保留。
- [ ] 评审《阶段4C2引导准入最小补充方案-待评审-2026-09-24.md》,主会话核hash逐项裁决后,才允许修改准入和完成补验。
- [ ] C3一次真实收鱼、奖励确认、服务器字段对账和新进程新缓存恢复。
- [ ] C4完整交付、独立实施复核、主会话裁决关闭。
正式地址仍http://s101.local:18080/;Unity CLI Loop、不使用UnitySkills、不打包;不导入102旧45键、不删claimed、不改成就/引导档绕过门、不自动重试消费。