# M1/M2 第四并行波次状态

日期：2026-07-28

## 基线

本轮从已验证归档中的 wave3 提交 `4de42e3` 恢复完整源码，并以
`cf9507a` 记录恢复点。随后按 Context、Adjudication、Branch Store 三条互不修改
公共契约的工作线并行开发，由集成线统一完成契约、Tauri、前端和交叉审查。

## 已完成

### 确定性上下文编译

- 按固定章节顺序编译 CharacterCard、Persona、依赖范围内的 WorldBook、可触发的
  PlotEvent 与三类可见记忆。
- 世界书继续使用显式标签、关键词与 flag，不引入向量库。
- 将玩家、主角色和共享记忆分区；不输出完整 `RuntimeState`、精确关系、时钟、
  世界 flag、物品隐藏事实、NPC 持有物或 NPC 私密许诺。
- 支持确定性预算裁剪，并为顺序、选择、预算和泄密边界建立测试。

### 引擎掌控的隐藏检定

- 新增类型化 `HiddenCheckRequest`、`AdjudicationCatalog` 与有界工具循环。
- 检定随机性由故事、分支、行动和检查标识确定；模型不能提供
  `RecordCheck`，也不能伪造最终玩家视图。
- 引擎验证角色、技能、物品、推骰与难度，持久化实际结果；模型只收到
  成功/困难成功/极难成功/失败等定性结论。
- `LappAdjudicationModel` 使用 LAPP 原生工具调用续写同一会话：
  `request_hidden_check → tool result → submit_turn_plan`。
- 工具返回和后续上下文不包含骰点、目标值、难度或角色精确数值。

### 真实回溯分支

- 新增 `ForkBranchRequest` / `ForkBranchResult` 及对应 Schema、TypeScript DTO、
  Tauri 命令和前端桥接。
- 内存与 SQLite StoryStore 都能从已保存历史节点创建分支；SQLite 在单个
  `IMMEDIATE` 事务中完成校验和分支头写入。
- 分支标识、来源节点、节点 JSON、物化状态和状态哈希均经过验证。
- 新分支首次追加从来源节点继续，原线路头不移动；重复、未知或损坏来源均原子失败。
- 回溯面板的“从这里继续”已经调用真实桌面命令，并拒绝过期线路头或非当前可见
  祖先节点。

### 运行时接线

- Tauri 默认启用真实 LAPP adjudication provider；显式
  `NANA_STORY_PROVIDER=demo` 才使用确定性 provider。
- 提交与分叉共享操作锁，避免验证来源节点后被并发提交抢先改变线路头。
- 缺失或不可用的 LAPP 配置会返回 provider 错误，不会静默伪装成 AI 回复。

## 交叉审查修正

- CharacterCard 与 ItemSpec 使用资源标识的最后一段映射运行时角色/物品标识，
  Persona 明确映射为玩家。
- `usable=false` 的物品不能作为检定修正。
- 困难和极难检定会将未达到所需成功等级的原始成功正确降为失败。
- 浏览器演示适配器保留确定性回溯体验，但不冒充桌面 SQLite 的权威持久化语义。

## 验证门

最终验证结果：

- Rust 1.96 `cargo fmt --check` 通过。
- 107 项核心 Rust 测试通过：Domain 5、Engine 21、Runtime 53、Store 28。
- 核心与 Tauri Clippy `-D warnings` 通过。
- Tauri 全 target 类型检查及 8 项后端单元测试通过。
- 18 份契约的生成、Schema 与 TypeScript DTO 哈希一致。
- TypeScript 严格检查、14 项 Web 测试与 Vite 生产构建通过。

## 尚未关闭

- 当前 Linux Work 环境缺少真实 WebKitGTK 开发包；Tauri Rust 代码可编译检查，
  但没有宣称真实窗口启动或原生打包通过。
- LAPP 通过脚本化传输验证了完整工具消息与续写载荷；仍需在具备用户 LAPP profile
  和网络访问的桌面环境做一次真实模型冒烟。
- 分支已持久化且可恢复，但应用启动仍默认打开主分支；跨分支浏览、活动分支记忆与
  分支命名留到下一波。

## 下一波

1. 增加分支列表、活动分支持久化和跨分支时间线。
2. 完成 LAPP profile/model 设置、错误恢复界面与真实模型冒烟。
3. 将“天亮前回来”扩成可连续游玩的完整娜娜纵切。
4. 在 Windows CI/打包环境验证安装包、升级与存档路径。
