Files
nana-story/docs/status/2026-07-29-m2-wave7-windows.md

73 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# M2 第七波 Windows 基线与上下文前置状态
日期:2026-07-29
## 本机 Windows 基线
- 已安装 Visual Studio 2022 Build Tools 17.14、MSVC x64 工具链与 Windows 11 SDK
10.0.26100`cl.exe``link.exe``rc.exe` 均可用。
- `scripts/windows-smoke.ps1` 现在会通过 `vswhere` 选择具备 C++ 工具链的 Visual
Studio,并自动载入 x64 开发环境。普通 PowerShell 不再需要先手工运行
`VsDevCmd.bat`
- 使用现有应用图标生成 Tauri 的 Windows ICO、macOS ICNS、Linux PNG 及后续移动端
图标集合,关闭了 Windows 资源编译缺少 `icon.ico` 的阻塞。
- release 模式的 Windows 桌面程序已构建:
`target/release/nana-story-app.exe`
## Task 5 前置契约
### 模型预算
- `OpenLappChatExecutor` 从实际选中的 LAPP 模型读取 `context_window`
`max_output_tokens`
- 缺少或无效模型元数据时显式标为 `Assumed`,使用 16,384 / 4,096 的保守 V1 回退;
被应用上限或窗口边界收紧时标为 `Capped` 并保留原始来源。
- 预算值只能通过校验构造,始终保证输出预算大于零且小于上下文窗口;上层可读取来源、
fallback 与 cap 诊断。
- 普通回合、隐藏判定初始调用和所有工具续调用使用同一个模型预算;单回合输出上限为
4,096 tokens。
### 检查点来源
- 增加稳定前缀与叙事来源的强类型 SHA-256 指纹。
- 稳定前缀显式覆盖角色、Persona、剧情模块与绑定世界书的版本来源;持久化读取只接受
规范化的 `sha256:` 小写十六进制值。
- 叙事来源只接受连续的根到目标节点路径,覆盖节点 ID、父节点、玩家实际输入、公开场景、
角色视觉状态和完整演出节拍。
- 状态 delta、精确关系、隐藏判定、NPC 私物、未选择建议和兄弟分支均不能进入来源投影。
- [上下文检查点设计](../context-checkpoint-design.md) 已冻结预算、提示布局、SQLite v3、
失效规则和安全边界。
### 重新生成
- `Regenerate` 的叙事历史截止到待替换节点的父节点;模型使用目标节点的安全 post-state
与原判定定性结果生成兄弟节点,不再接收旧演出或骰点细节。
- 原玩家行动标识、authoritative delta、隐藏判定、终局状态与物化状态原样复用;模型
只能替换演出,也不能让成功 / 失败结果反转。
- 终局节点允许重生成演出,但普通继续行动仍会被终局保护拦截。
- 新版本使用独立分支并切为活动线路,旧节点、旧线路和后代保持不可变。
- Memory 与 SQLite 均在单次原子操作中校验来源线路、节点、delta 和物化状态。
## 验证
- Rust workspace171 项测试通过。
- Runtime83 项。
- Store44 项。
- Tauri 后端:17 项。
- Domain / Engine / Contracts27 项。
- `cargo clippy --workspace --all-targets -- -D warnings`:通过。
- Rust 契约生成器 `--check`:通过。
- Web:5 个测试文件 / 29 项测试、TypeScript 检查与生产构建通过。
- 契约:25 份 Schema 与 TypeScript DTO 无漂移。
- `pnpm tauri build --no-bundle`:通过,生成 Windows release 可执行文件。
- 隔离 Demo 已启动,窗口枚举标题为《听娜娜讲故事》,进程保持响应并创建独立 SQLite
存档。为重建 release 文件现已关闭该进程;隔离存档仍保留。自动截图组件不支持该
Tauri 窗口,因此本报告不宣称视觉验收完成。
## 尚未关闭
- 当前执行环境仍会关闭 Gitea SSH 2222 连接,本地提交暂时不能推送。
- SQLite v3 检查点表、同模型摘要工具、500 节点滚动压缩与实际预算编排仍属于 Task 5
主体。
- Demo 重启恢复、终局 / 双线路人工操作和真实 LAPP 在线调用仍待后续冒烟。