Files
ft/CodexOutput/upserver/P2-alpha-D单账号101导入范围与产品决策-2026-09-28.md

48 lines
5.2 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.
# 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/正式接口操作。暂不打包。