feat(runtime): preserve current branch context
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# M2 第七波本地开工状态
|
||||
|
||||
日期:2026-07-28
|
||||
|
||||
## 本地基线
|
||||
|
||||
- 从私有 Gitea 安全恢复 `integration/v1@23672e857b`,并通过 `git fsck` 检查对象完整性。
|
||||
- 下载时使用的临时仓库只读 Token 已在 Gitea 撤销;临时配置、bundle 与内存中的凭据均
|
||||
已清理。
|
||||
- `origin` 已恢复为 Gitea SSH 地址,分支仍跟踪 `origin/integration/v1`。当前执行环境的
|
||||
网络代理会关闭 SSH 2222 端口,因此本轮只提交到本地,不把“已配置公钥”误报为“已成功
|
||||
推送”。
|
||||
- 相邻 `lapp-rs` 已固定在 `5ba3c659e1536ec4bee16340faca603940a5cb17`,未修改其源码。
|
||||
- 本地基线提交为 `37b3397 chore: establish wave 7 local baseline`。
|
||||
|
||||
## 已完成
|
||||
|
||||
### Windows 可重复基线
|
||||
|
||||
- 新增 `.gitattributes`,固定文本 LF 与图片、音频二进制属性。
|
||||
- Node 与 Rust 契约源码哈希在计算前统一 LF,避免 Windows CRLF checkout 产生假漂移。
|
||||
- 增加 LF / CRLF 哈希等价测试。
|
||||
- 安装并锁定 Node 24、pnpm 10.29.2、Rust 1.96.0、rustfmt 与 clippy。
|
||||
- 使用锁文件安装 JavaScript 依赖。
|
||||
|
||||
### 当前分支连续上下文
|
||||
|
||||
- Store 新增按 `(story_id, node_id)` 和 `parent_id` 读取根到当前节点祖先链的接口。
|
||||
- Memory 与 SQLite 后端均检测缺失父节点和父链循环;读取不依赖 `branch_id`,允许分叉
|
||||
复用共享祖先,同时不会遍历兄弟分支。
|
||||
- Runtime 在生成本轮前自动投影当前祖先链,并把已提交的玩家输入、演出节拍、场景和角色
|
||||
视觉状态传给 Provider;未选择的行动建议不会被误当成历史事实。
|
||||
- LAPP 普通回合与隐藏判定回合共用同一套缓存友好上下文协议:
|
||||
`stable_prefix → branch_history → dynamic_tail`。
|
||||
- 动态状态只包含可用于角色扮演的安全投影,包括关系阶段与玩家可见持有物的归属、取得
|
||||
方式;精确关系数值、隐藏骰点、NPC 私物、未触发世界书和状态 delta 仍不能进入提示。
|
||||
- Tauri 的线路恢复复用 Store 祖先链接口,不再保留旧的 200 节点读取上限。
|
||||
|
||||
## 验证
|
||||
|
||||
- `node scripts/verify-contracts.mjs`:25 份契约无漂移。
|
||||
- `pnpm verify:web`:TypeScript 检查、5 个测试文件 / 29 项测试及生产构建通过。
|
||||
- `cargo metadata --no-deps`:通过,相邻 `lapp-rs` 路径依赖可解析。
|
||||
- `cargo fmt --all -- --check`:通过。
|
||||
- `git diff --check`:通过。
|
||||
|
||||
完整 Rust 测试、Clippy、Tauri 后端测试和 Windows 桌面编译尚未关闭,原因不是项目依赖
|
||||
解析,而是本机缺少 Microsoft C++ Build Tools 与 Windows SDK,`rustc` 当前找不到
|
||||
`link.exe`。
|
||||
|
||||
## 下一步
|
||||
|
||||
1. 安装 Microsoft C++ Build Tools 与 Windows SDK 后立即运行 `pnpm verify:rust` 和
|
||||
`pnpm tauri build --no-bundle`。
|
||||
2. 为长分支实现非权威上下文检查点、来源哈希和 SQLite v3 迁移;历史不得静默截断。
|
||||
3. 在连续上下文门禁关闭后,实现“风险预检 → 玩家确认 → 隐藏判定失败 → 推骰 / 重新
|
||||
生成”纵向切片。
|
||||
4. 最后在隔离存档上启动 Demo 窗口,验证重启恢复、终局、回溯和双线路隔离,再运行真实
|
||||
LAPP 最小连接与隐藏判定工具调用。
|
||||
Reference in New Issue
Block a user