# Reasonix Worker B: Main Page Tab Title Sync

Project root: `/mnt/Data1T/mnote`

## 背景

用户报告：主 tab 的标题与实际打开页面标题不一致，不会随实际打开的 tab / 页面变化。

事实源：

- Review: `bugs/05-editor-mainline/process/2026-05-21-workbench-filetree-office-slash-bugs-review-v1.md`
- Checklist: `bugs/05-editor-mainline/process/5-28-main-page-tab-title-active-sync-v1.md`

## Ownership

你负责小范围修改：

- `rust/crates/mnote-web/src/routes/web_shell.rs` 中 page tab / `updatePaneChrome` / 标题保存同步相关逻辑
- `rust/crates/mnote-web/src/ssr/pages/document.rs` 如需要补 data 属性
- 相关 Rust tests

不要修改 OnlyOffice、文件树菜单、slash 定位、ACP/Hermes 文件。你不是独自在代码库中工作；不要回滚、覆盖、格式化或清理其他 worker 的改动。不要提交 git。

## 任务

1. `replacePaneDocument` / `updatePaneChrome(primary)` 更新 primary document 后，同步：
   - `[data-mnote-main-tab="page"] .mnote-main-tab-title`
   - page tab 上的 document/workspace data 属性（如需要）
2. 标题保存控制器 `updateVisibleTitle` 保存标题时，同步当前 page tab 标题。
3. 资源 tab 与 page tab 切换时，page tab 标题始终代表当前 primary document。
4. 补一个 Rust 字符串测试或现有测试断言。

## 验证

至少运行：

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

## 最终回复格式

- 修改文件列表
- 完成的 checklist 项
- 运行过的命令和结果
- 未完成项/风险
