# Batch B Worker B：BufferStore Save Refresh Visible Readback Gap

项目根目录：`/mnt/Data1T/mnote`

你不是单独在代码库里工作，可能有其他 worker 并行执行。不要回滚、覆盖或格式化与你任务无关的文件；不要提交 git。

## 目标

推进 `design/01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.md` 的 Gap A2：

> 保存后磁盘 `.md` 与 PageAggregate 已更新，但刷新后编辑器 DOM/截图未显示正文。

请复现、定位并尽量最小修复。优先让刷新后的主编辑器可见 DOM 消费最新 Page Aggregate / blockDocument。

## 允许修改范围

- `rust/crates/mnote-web/src/routes/web_shell.rs`
- `rust/crates/mnote-web/src/ssr/pages/layout.rs`
- `design/01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.md`
- 如确有必要，可新增或修改 `scripts/task48*-bufferstore-*.js`。

不要修改 OnlyOffice、Convex schema、AI 工具链；如发现需要跨域修改，请先在 final.md 中说明。

## 建议排查入口

- `#__MNOTE_PAGE_AGGREGATE__`
- `data-page-aggregate-snapshot`
- `mnote-leptos-tiptap-editor-root`
- `blockDocument`
- `refreshPageAggregate`
- `initializePageUiSurfaces`

## 验收命令

至少运行：

```bash
cargo test -p mnote-web document_buffer -- --test-threads=1
cargo test -p mnote-web page_aggregate -- --test-threads=1
```

如新增 smoke，运行 `node --check`；能实跑则实跑并记录结果。

## 输出要求

最终说明：

- 复现路径和根因判断。
- 修改文件。
- 验证命令和结果。
- 如果没有安全修复，明确 `FAIL/BLOCKED` 和下一步最小修复点。

