# 5-24 Open Editors Lightweight View Checklist v1 > 状态:done > > 归档说明(2026-05-21):open editors lightweight snapshot / 可观测模型已完成;完整 sidebar UI 不是本阶段目标。 > > 日期:2026-05-21 > > Owner:main editor tab / sidebar open editors parity ## 1. 目标 参考 Sidex / VSCode `OpenEditorsView`,为 MNote 做轻量版“打开的编辑器”视图或可观测模型。当前阶段不要求完整 UI,但至少要让 page/resource tabs 的 active、title、kind、dirty guard 状态可被统一读取和测试。 ## 2. 允许修改范围 - `rust/crates/mnote-web/src/routes/web_shell.rs` - `rust/crates/mnote-web/src/ssr/styles.rs` - 可新增 `scripts/task47*-open-editors-*.js` ## 3. 禁止事项 - 不引入完整 VSCode editor group service。 - 不实现多 editor group grid。 - 不改变 Page Aggregate / local Markdown 事实源。 - 不破坏现有 resource tab 打开、关闭和 URL state。 ## 4. Checklist - [x] 暴露轻量 open editors snapshot:page tab + resource tabs。 - [x] snapshot 至少包含 `objectIdentity`、`title`、`kind`、`active`、`dirtyGuard`。 - [x] active tab 切换时 snapshot 更新。 - [x] resource tab close / create 时 snapshot 更新。 - [ ] 如做 UI,保持低干扰,不新增复杂 sidebar 分组。 - [x] 补测试或 smoke,验证可读取 active editor 列表。 ## 5. 验收 - `cargo test -p mnote-web web_shell -- --test-threads=1` - 如新增 smoke:`node scripts/task47*-open-editors-*.js` ## 6. 非目标 - 不做 drag editor between groups。 - 不做完整 dirty working copy service。 ## 7. 执行记录 - 2026-05-21:Codex 补齐 `mnote.open_editors_snapshot.v1` 轻量合同,暴露 `window.__mnoteDocumentPaneRuntime.getOpenEditorsSnapshot()`,并同步 `window.__mnoteOpenEditorsSnapshot` / `data-mnote-open-editors-count` / `data-mnote-active-editor`。 - 2026-05-21:snapshot 覆盖 page tab 与 resource tabs;resource tab 条目包含 `objectIdentity`、`title`、`kind`、`badgeKind`、`active`、`dirtyGuard`、`assetId`、`path`。 - 2026-05-21:未新增 sidebar UI,当前阶段先保持为可观测模型。 - 2026-05-21:`cargo test -p mnote-web web_shell -- --test-threads=1` 通过。 - Reasonix Worker A 本轮只停留在探索,未产生可合入 diff;最终由 Codex 本地实现。