# 5-17 [done][bug] 文档页标题优先 liveSidebarTitle 而非 Page Aggregate head v1

> 发现时间：2026-05-17
>
> 状态：`[done]`
>
> 关联主线：`05-editor-mainline`

## 1. 问题定义

文档页标题显示仍可能优先读取 `liveSidebarTitle`，而不是 Page Aggregate `head.title`。当 Sidebar 多源延迟或抢源时，文档页标题可能被 Sidebar snapshot 覆盖。

## 2. 证据

- [document-content.tsx](/mnt/Data1T/mnote/wolai-frontend/src/components/editor/document-content.tsx:159) 使用 live sidebar title 参与标题状态。
- [page-aggregate-client-state.ts](/mnt/Data1T/mnote/wolai-frontend/src/components/editor/page-aggregate-client-state.ts:144) 标题逻辑仍接受外部 live title。

## 3. 影响

- 文档页标题、Sidebar 标题、Page Aggregate head 可能短暂或长期不一致。
- 标题保存后回读来源不唯一，影响面包屑、AI context、页面 chrome。
- Page Aggregate 单一真源收口被 Sidebar 侧状态反向覆盖。

## 4. 建议修复

- 文档页自身标题应以 Page Aggregate head 为主，Sidebar title 只作为导航视图投影。
- Sidebar title 与 Page Aggregate head 冲突时记录诊断并触发 resync。
- 增加 smoke：改标题后 Sidebar、Breadcrumb、文档页标题同源一致。

## 5. 当前主链修复状态

- 原证据指向的 React `document-content.tsx` / `page-aggregate-client-state.ts` 当前不在运行主链；`wolai-frontend/src` 不存在，历史副本位于 `recycle/`。
- 当前 Rust 文档壳初始标题来自 Page Aggregate `head.title`，`updatePaneChrome` 也从 `runtimeDescriptor.aggregate.head.title` 更新文档页 chrome。
- [layout.rs](/mnt/Data1T/mnote/rust/crates/mnote-web/src/ssr/pages/layout.rs:7460) 增加防回归测试，断言当前 sidebar runtime 不包含旧 `liveSidebarTitle` 入口。

## 6. 验证

- `cargo test --manifest-path rust/Cargo.toml -p mnote-web sidebar_tree_runtime_does_not_use_retired_query_preferred_snapshot_selector -- --nocapture`
  - 结果：1 passed
