4.1 KiB
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 私密许诺。 - 支持确定性预算裁剪,并为顺序、选择、预算和泄密边界建立测试。
引擎掌控的隐藏检定
- 新增类型化
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 和网络访问的桌面环境做一次真实模型冒烟。
- 分支已持久化且可恢复,但应用启动仍默认打开主分支;跨分支浏览、活动分支记忆与 分支命名留到下一波。
下一波
- 增加分支列表、活动分支持久化和跨分支时间线。
- 完成 LAPP profile/model 设置、错误恢复界面与真实模型冒烟。
- 将“天亮前回来”扩成可连续游玩的完整娜娜纵切。
- 在 Windows CI/打包环境验证安装包、升级与存档路径。