# Reasonix Worker B：BufferStore conflict UI 数据源

Project root: `/mnt/Data1T/mnote`

你不是唯一 worker。不要回滚、覆盖或整理他人改动；只处理本任务 ownership 范围。

## 背景

上位 checklist：`design/01-tree-first-graph-kernel/process/1-12-batch-e-p1-p2-tail-execution-checklist-v1.md`

`1-6` Gap A2 中 BufferStore 基础设施和保存后刷新读回已完成，但 conflict UI 数据源尚未接入 buffer state。当前 conflict UI 已存在，`task451-local-markdown-conflict-resolution-ui-smoke.js` 能验证 accept disk / keep current / merge，但文档仍指出它主要靠 session/local state。

## Ownership

允许修改：

- `design/01-tree-first-graph-kernel/process/1-6-next-phase-gap-closure-checklist-v1.md`
- `rust/crates/mnote-web/src/document_buffer_store.rs`
- `rust/crates/mnote-web/src/routes/documents.rs`
- `rust/crates/mnote-web/src/routes/web_shell.rs`
- `scripts/task451-local-markdown-conflict-resolution-ui-smoke.js`

禁止修改：

- GFM parser 代码
- FileTree action / command context 代码
- AI / Hermes / OnlyOffice 文件
- git commit、git reset、git checkout

## 任务

1. 审查 `BufferStore` 当前 API 与 conflict UI 事件链。
2. 为当前打开文档暴露最小 buffer state 查询能力，或把已有 Page Aggregate / session conflict envelope 明确桥接到 BufferStore 状态。
3. conflict UI 应可验证 editor base version、disk/current version、source actor 或等价字段来自 buffer state / conflict envelope，不是临时纯前端猜测。
4. 保持 `task451` 三条交互不回退；必要时扩展该 smoke 读取新的 DOM/data 属性。
5. 更新 `1-6` Gap A2 记录，不把未覆盖项标完成。

## 验收命令

- `cargo test -p mnote-web document_buffer -- --test-threads=1`
- `cargo test -p mnote-web local_folder -- --test-threads=1`
- `PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/google-chrome-stable node scripts/task451-local-markdown-conflict-resolution-ui-smoke.js`

## 最终回复

请列出：

- 修改文件
- 运行的命令和结果
- 未完成项
- 风险或需要 Codex 再判断的点
