# Checklist: Side Pane Slash Overlay Isolation

## 目标

主编辑器 slash 菜单不得在侧栏/secondary pane 中出现；不支持侧栏打开资源时不得留下会响应 slash 的侧栏 editor host。

## 允许修改

- `rust/crates/mnote-web/src/routes/web_shell.rs`
- 必要时 `rust/spikes/leptos-tiptap-spike/src/lib.rs`
- 相关测试 / smoke

## 禁止事项

- 不禁用主编辑器 slash 菜单。
- 不删除侧栏页面编辑能力。
- 不用全局 CSS 隐藏全部 slash menu 作为表面修复。

## 待办

- [x] `positionSlashMenuForRoot` 只查当前 root 内菜单；不能 fallback 到全局第一个 slash menu。
- [x] `activeEditorRootForSlashMenu` 优先选择含有 selection/focus 的可见 root；secondary hidden/unsupported root 不参与。
- [x] 打开 unsupported side target 时彻底卸载 secondary view 并清理遗留 slash overlay。
- [x] 为 primary + secondary 同时存在时的 slash 隔离补测试。
- [x] 若 leptos runtime 自身生成全局 overlay，需要给 overlay 绑定 `data-pane-role` 或 editor host id。

## 本轮执行记录

- 代码：`web_shell.rs` 增加 `setSlashMenuInactive` / `hideSlashMenusOutsideRoot`，非当前 selection/focus root 的 slash menu 会被标记 `data-mnote-slash-inactive` 并隐藏。
- 浏览器验证：`tmp/bug-20260521-workbench-browser-verify/result-slash.json`，`primaryMenus=1`、`secondaryMenus=0`、`inactiveSecondary=1`，截图 `05-slash-primary-secondary-isolation.png`。

## 验收命令

```bash
cd /mnt/Data1T/mnote/rust
cargo test -p mnote-web document_shell_runtime_renders_resource_tab_runtime -- --test-threads=1
cargo test -p mnote-web document_shell_runtime_positions_slash_menu_per_editor_host -- --test-threads=1
```
