Fix starred scope page tree and local edit save
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# 5-34 [done] 星标 scoped 文件夹 PageTree 错位与本地 Markdown 编辑不保存
|
||||
|
||||
## 现象
|
||||
|
||||
- 点击星标置顶的本地 `design` 文件夹后,FileTree 已切到 `design` scope,但 PageTree 仍显示旧 workspace/root 页面树或为空。
|
||||
- 在“我的空间”本地 Markdown 页面输入 `111` 后,切换页面再回来内容消失。
|
||||
|
||||
## 根因
|
||||
|
||||
- 星标文件夹打开时,`/api/tree/projections/file` 已带 `parentRelativePath=design`,但 `/api/tree/projections/sidebar` 没有带同一 scope;后端 PageTree projection 也没有按 `parentRelativePath` 扫描子目录。
|
||||
- `document-session-runtime.js` 拆分后继续直接使用 `hydrateMindmapAttrsFromDom` / `textToTiptapDocument`,但文件自身未导入这两个 conversion helper。编辑器变更能进入 dirty session,但保存计时器执行时抛出 `hydrateMindmapAttrsFromDom is not defined`,导致 `/api/page-body/write` 根本没有发出。
|
||||
|
||||
## 修复
|
||||
|
||||
- 星标 scoped folder 打开时同时给 sidebar projection 传 `parentRelativePath`,并确保 cloud/default 页面缺少 `#sidebar-tree-root` 时能在 PageTree panel 内创建 scoped PageTree host。
|
||||
- 后端新增 scoped local PageTree snapshot:按 `rootUri + parentRelativePath` 扫描并缓存,`/api/tree/projections/sidebar` 在 local folder + `parentRelativePath` 下返回 scoped PageTree。
|
||||
- `document-session-runtime.js` 显式导入 `hydrateMindmapAttrsFromDom` 与 `textToTiptapDocument`,恢复 dirty session 自动保存链路。
|
||||
|
||||
## 验证
|
||||
|
||||
- RED:`node scripts/task498-starred-page-tree-scope-and-local-edit-smoke.js` 先失败于 scoped PageTree 未显示 `Brief`,修复 PageTree scope 后再失败于保存阶段 `hydrateMindmapAttrsFromDom is not defined`。
|
||||
- GREEN:`node scripts/task498-starred-page-tree-scope-and-local-edit-smoke.js` 通过,覆盖星标 `design` 后 PageTree 只显示 design 内 Markdown、输入 `111` 后 `/api/page-body/write` 成功、磁盘 `Home.md` 包含 `111`、切到 `Other.md` 再回 `Home.md` 仍保留。
|
||||
- 回归:`node scripts/task492-sidebar-starred-shortcuts-smoke.js`、`node scripts/task494-filetree-lazy-loading-dedup-smoke.js`、`node scripts/task497-local-page-tree-filetree-open-performance-smoke.js` 通过。
|
||||
- Rust:`local_folder_page_projection_can_scope_by_parent_path`、`local_folder_page_tree_snapshot_reuses_cache_until_watch_revision_changes`、`tree_projection_routes` 通过。
|
||||
Reference in New Issue
Block a user