Files
mnote/design/05-editor-mainline/done/5-23-editor-side-target-secondary-pane-v1.md
T
lix-2026 1956a8a21a chore: align mvp design governance
- 统一 local-first MVP 后阶段架构口径,补充 process 执行总序和 Reasonix 协作记录

- 归档已完成的 design checklist,标注参考型 process,更新 AGENTS/REASONIX/架构文档

- 补充文件树/主编辑器下载与上下文菜单相关实现、bug 记录和 smoke 脚本

验证:git diff --check;codegraph sync .;cargo test -p mnote-web;node --check scripts/task476-filetree-editor-context-menu-download-smoke.js
2026-05-21 09:04:13 +08:00

53 lines
2.7 KiB
Markdown
Raw 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.
# 5-23 Editor Side Target / Secondary Pane Checklist v1
> 状态:done
>
> 归档说明(2026-05-21):`openTarget=side` 到 secondary pane 的轻量合同已完成。
>
> 日期:2026-05-20
>
> Ownerdocument pane runtime / side target
## 1. 目标
补齐 P1secondary pane 与 main tab 目前是两套概念。目标是先建立轻量 side target 合同,让 `openTarget=side` 能稳定映射到当前 secondary pane,而不是继续分散在“右侧边栏打开”和 resource tab 特例里。
## 2. 允许修改范围
- `rust/crates/mnote-web/src/routes/web_shell.rs`
- `rust/crates/mnote-web/src/ssr/pages/layout.rs`
- `scripts/task457-main-editor-resource-tab-smoke.js`
- 可新增聚焦 smoke`scripts/task47*-side-target-smoke.js`
## 3. 禁止事项
- 不实现完整多 editor group grid。
- 不改变 primary page / resource tab 的默认 active tab 行为。
- 不把 secondary pane 等同为 active resource tab。
- 不删除现有 `secondaryDocumentId` query 兼容。
## 4. Checklist
- [x] `resolveResourceOpen` / document pane runtime 对外暴露 `openTarget=side` 的稳定返回。
- [x] 页面文档的 side target 继续打开 secondary pane,并更新/清理既有 secondary query。
- [x] 资源类 side target 有明确行为:当前阶段可先显示 unsupported/error placeholder,但必须可观测且不误开新窗口。
- [x] 关闭 secondary pane 不影响 active resource tab URL state。
- [x] smoke 覆盖 active tab 与 secondary pane 可同时存在、互不清状态。
## 5. 验收
- [x] `cargo test -p mnote-web web_shell -- --test-threads=1`
- [x] `node scripts/task457-main-editor-resource-tab-smoke.js`
- [x] 如新增 smoke`node scripts/task47*-side-target-smoke.js`
## 5.1 本轮执行记录
- 已合入:`openResourceAsSideTarget`,资源侧栏目标先显示可观测 unsupported placeholder,不再误开新窗口或污染 active resource tab。
- 已合入:`tree.page.open` + `openTarget=side` 的 document side target wrapper,复用现有 `openSecondaryDocument` / `secondaryDocumentId` 合同。
- 已合入:资源类 `openTarget=side` 使用 secondary pane unsupported placeholder 时清理 `secondaryDocumentId` / `secondarySourceKind` / `secondaryRootUri`,保留 active resource tab 的 `resourceTab` URL state。
- 验证记录:`node --check scripts/task472-side-target-secondary-pane-smoke.js``node --check scripts/task457-main-editor-resource-tab-smoke.js``cargo test -p mnote-web web_shell -- --test-threads=1``node scripts/task472-side-target-secondary-pane-smoke.js``node scripts/task457-main-editor-resource-tab-smoke.js`
## 6. 非目标
- 不实现 split editor layout、drag editor between groups、MRU across groups。