# 3-23 Sidebar local folder / resource runtime follow-up v1

> 创建时间：2026-05-25
> 状态：`process`
> 来源：`design/03-rust-web/done/3-22-sidebar-tree-runtime-second-stage-split-v1.md` Batch B / Batch D。

## 1. 背景

`3-22` 已完成 sidebar shell helper 第一刀，但 `sidebar-tree-runtime.js` 中 local folder、mindmap fetch observer、resource/filetree 编排仍是下一批 03-rust-web owner。

这些代码仍涉及：

- `installMindmapAssetFetchObserver`
- `withLocalMindmapSourceParams`
- `applyMindmapApiMutationToFileTree`
- `refreshLocalFolderSidebarSnapshot`
- `appendUploadedAssetRow`
- `resolveFileTreeUploadTarget`

其中纯 URL/body/method/file name helper 已有一部分迁入 `filetree-runtime.js`。剩余函数多涉及 fetch hook、workspace/root/document 状态、projection render、selection/focus 恢复、watcher 标记和资源行 patch，因此不能整体迁出。

## 2. 下一批边界

- [ ] 只读审计 mindmap fetch observer，确认是否有新的纯 helper 可迁入 `filetree-runtime.js`。
- [ ] 只读审计 `refreshLocalFolderSidebarSnapshot` 的 post-apply 副作用，避免重复拆已经确认应留在 shell 的 fetch/projection 编排。
- [ ] 若实现，只迁稳定 DOM helper 或 payload normalize helper，不迁 fetch hook 与 projection render。
- [ ] 验证 `task455-local-folder-mindmap-clean-smoke.js` 和 `task479-local-folder-markdown-resource-lifecycle-smoke.js`。

## 3. 非目标

- 不改变 local folder 资源归属语义。
- 不迁 Rust tree command / projection 语义到前端。
- 不把 Page AI panel 混入本文件；AI owner 已拆到 `design/07-ai/process/7-38-page-ai-sidebar-runtime-owner-split-v1.md`。
