M212(M211 复审观察 7 确认的真 bug): - `agent/ports/events.rs::event_path` 仍在 `root.join("game").join(&entry.log_path)`, 而 `log_path` 已经是**相对会话根**的 `game/<id>.jsonl` ⇒ 对每个真实会话解析成 `game/game/<id>.jsonl`。后果是 `ull agent` / MCP 的 read_game_log 与 diagnose_crash 两个工具对真实会话全报「读会话事件流失败」——内置 AI Agent 的看家本领是坏的。 现在解析只走 M211 建立的唯一真相源 `session_index::event_file`(新旧两个根都走它)。 - 夹具:`ports/session.rs`、`ports/diagnose.rs` 的索引夹具此前写裸文件名 `20261029T124501-9f3c2a.jsonl`,与生产差一层 `game/`,所以这个 bug 在测试里永远看不见。 改成 `session_index::log_path_for(id)` + `session_index::event_file` 落盘。 - 用例:`ports/events.rs` 新增三条(解析结果 = 写入侧落盘的那一个 / 文件缺失时指向的仍是 生产形状 / 旧根回落走同一套解析);`cli/tests/agent_mcp_stdio_test.rs` 新增一条真机 MCP 用例(起 `ull agent serve --stdio`,对一份生产形状的会话调 list_game_sessions → read_game_log → diagnose_crash)。旧实现下两条路径都红,红的是 `...\logs\game\game\20261030T101500-abcdef.jsonl`。
Rust 原生单文件 Minecraft 启动器:CLI 完整可用(install/launch/accounts/java/diagnose/agent), MCP server 接入外部 Agent 工具,GUI 开发中。