3.3 KiB
3.3 KiB
M2 第五波状态
日期:2026-07-28
基线
本轮从已推送到私有 Gitea 的 449515f 开始,继续保持 Rust 领域类型为契约唯一事实
来源,以及“模型提出 TurnPlan、引擎裁决、SQLite 单次提交、PlayerView 脱敏投影”
的主链。
已完成
可恢复的故事线路
- 新增线路列表、线路摘要、切换与重命名契约、Tauri 命令和 Vue 界面。
StoryStore同时支持内存与 SQLite 的线路枚举、活动线路 CAS 切换与名称校验。- 回溯创建的新线路自动成为活动线路;普通回合只允许提交到当前活动线路。
- SQLite schema 升级到 v2,增加
branch_metadata、story_sessions与app_settings,并能无损迁移 wave4 的 schema v1。 - 关闭并重启后恢复最后活动线路;原线路与新线路的节点、检定、许诺和物品继续隔离。
LAPP 模型设置
- 设置面板只列出 LAPP profile 中已启用且显式声明
chat、tool-call能力的模型。 - 选择项只持久化 canonical provider/model ID;API Key 和其他凭据不进入应用数据库、
DTO、日志或
PlayerView,仍由 LAPP Vault 在实际生成时即时解析。 - 模型切换会先建立新的 LAPP adjudication provider,成功后再原子保存选择并替换运行 provider;缺 profile、缺能力或初始化失败都会给出明确错误。
NANA_STORY_PROVIDER=demo继续作为显式、不可在界面内覆盖的确定性模式。
“天亮之前”完整纵切
确定性纵切现在可连续完成:
- 玩家亲自答应天亮前回来,娜娜接受许诺。
- 可信运行时完成一次隐藏搜索判定。
- 玩家确认检修门线索并获得“半张旧车票”。
- 玩家进入封锁隧道,时钟与关系按规则推进。
- 玩家在天亮前返回,许诺结算为已履行,故事进入不可继续的终局。
终局仍可通过回溯创建另一条线路。纵切总测试覆盖完成故事、关闭并重启、从根节点 分叉、推进另一线路、再次重启,并验证完成线路与替代线路互不污染。
验证结果
- Rust 1.96
cargo fmt --check通过。 - 111 项核心 Rust 测试通过:Domain 5、Engine 21、Runtime 53、Store 32。
- 11 项 Tauri 后端测试通过。
- 核心与 Tauri Clippy
-D warnings通过,Tauri 全 target 类型检查通过。 - 24 份契约 Schema、TypeScript DTO 与 Rust 源哈希一致。
- TypeScript 严格检查、18 项 Web 测试和 Vite 生产构建通过。
Tauri 的 Rust 检查和后端测试继续使用空的本机 GUI 链接占位库;它证明应用代码、宏和 后端测试可编译执行,不等同于真实 WebKitGTK 窗口启动。
尚未关闭
- 真实 Linux/Windows 桌面窗口与安装包。
- 使用用户实际 LAPP profile、Vault 凭据和在线模型的端到端冒烟。
- 流式演出、取消生成和面向玩家的重试/诊断细分。
- 正式角色立绘、场景素材与最终应用图标。
下一波
- 在真实桌面环境完成在线 LAPP 冒烟与错误恢复。
- 将单次非流式回复升级为可取消的流式演出,但仍保持整轮一次提交。
- 增加新故事/内容包导入入口,并冻结首个可分发存档兼容版本。
- 建立 Windows 构建、签名与安装升级 CI。