Files
mnote/design/old/08-legacy-rust-kernel/process/sidebar-rust-query-target.md
T

77 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# [recycle] Sidebar Rust Query 目标说明
> 更新时间:2026-04-14
>
> 适用主仓:`/mnt/Data1T/mnote`
## 1. 当前起点
当前 Sidebar 仍是“同一份数据集,多处复用”的结构,但重复拼装已经先收口到共享 helper:
- 查询 payload / result 契约:`/mnt/Data1T/mnote/wolai-frontend/src/lib/sidebar-data.ts`
- 服务端聚合入口:`/mnt/Data1T/mnote/wolai-frontend/src/lib/server/sidebar-data.ts`
- API route`/mnt/Data1T/mnote/wolai-frontend/src/app/api/sidebar/route.ts`
- 实时订阅 hook`/mnt/Data1T/mnote/wolai-frontend/src/hooks/use-convex-sidebar-data.ts`
当前事实:
- `sidebar.dataset.list` 已有稳定 payload`{ workspace_id }`
- `sidebar.dataset.list` 已有稳定 result`active_workspace_id``workspaces``documents``trashed_documents``media_assets``trashed_media_assets``mindmap_assets``trashed_mindmap_assets``table_assets``trashed_table_assets``mindmap_docs``mindmap_asset_children`
- `src/lib/sidebar-data.test.ts` 已对上述契约做冻结测试
## 2. Rust Query 最小目标
后续 Rust query 不直接输出 UI rows,而是只负责输出兼容 `SidebarInitialData` 的共享数据集。
最小目标:
- 输入:
- `workspace_id`
- 输出:
- `active_workspace_id`
- `workspaces`
- `documents`
- `trashed_documents`
- `media_assets`
- `trashed_media_assets`
- `mindmap_assets`
- `trashed_mindmap_assets`
- `table_assets`
- `trashed_table_assets`
- `mindmap_docs`
- `mindmap_asset_children`
## 3. 前后端边界
### 3.1 Rust query 负责
- 聚合工作区范围内页面、回收站、媒体、导图、表格的原始数据集
- 保持字段命名与共享 contract 一致
- 保持 `workspace_id` 作用域明确
### 3.2 前端继续负责
- `buildDocumentTree`
- `buildVisibleRows`
- `starred/public/shared/private/templates` 分区语义
- `sort_order -> created_at` 排序投影
- `doc/index.md/asset-folder/asset` 文件树行语义
- 拖拽、剪贴板、展开折叠、回收站双 tab 等交互行为
## 4. 本轮明确不做的事
- 不复制 `mnote-rust``components/sidebar/sidebar.tsx`
- 不引入第二套导航壳
- 不在 Rust query 阶段直接输出前端渲染树
- 不改变当前 Sidebar UI 结构与交互
## 5. 验证锚点
以下文件共同构成本轮 Sidebar Rust query 目标冻结点:
- `/mnt/Data1T/mnote/wolai-frontend/src/lib/sidebar-data.ts`
- `/mnt/Data1T/mnote/wolai-frontend/src/lib/server/sidebar-data.ts`
- `/mnt/Data1T/mnote/wolai-frontend/src/app/api/sidebar/route.ts`
- `/mnt/Data1T/mnote/wolai-frontend/src/hooks/use-convex-sidebar-data.ts`
- `/mnt/Data1T/mnote/wolai-frontend/src/lib/sidebar-data.test.ts`