Files
nana-story/docs/status/2026-07-28-m1-wave4.md
T
Codex 449515fcfe
verify / verify (push) Has been cancelled
docs: record wave4 integration
2026-07-28 03:43:44 -04:00

4.1 KiB

M1/M2 第四并行波次状态

日期:2026-07-28

基线

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

已完成

确定性上下文编译

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

引擎掌控的隐藏检定

  • 新增类型化 HiddenCheckRequestAdjudicationCatalog 与有界工具循环。
  • 检定随机性由故事、分支、行动和检查标识确定;模型不能提供 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/打包环境验证安装包、升级与存档路径。