85 lines
4.1 KiB
Markdown
85 lines
4.1 KiB
Markdown
# 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/打包环境验证安装包、升级与存档路径。
|