Files
ycode/docs/资料库模块拆解-2026-10-17.md
T

93 lines
11 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.
# 资料库模块拆解(2026-10-17)
> 开发执行入口:[三模块开发计划](三模块开发计划-2026-10-17.md)。首批以跨任务真实产物索引与浏览为交付,后续接个人资料、编辑和引用;共享接口与文件边界由主上下文统一。
> 新增源码核对:[对话资料沉淀与任务引用](对话资料沉淀与任务引用确认-2026-10-17.md)。普通/项目选择树、显式space-doc+library技能、个人/项目保存入口及todo关联已有固定源码证据;原版自动检索、解析时机和底层存储关系仍未知。下文“未拆解引用”等为上次观察边界,本次补充以新记录为准。
本轮用户授权拆解此前仅记录的四个模块。本文件只记录原版证据、YCode 差异和后续任务,不表示实现或 1:1 验收完成。原版观察全部通过 REA;没有新建、上传、修改、分享或删除原版资料。
## 1. 原版证据与边界
本轮原版为 WorkBuddy **5.8.3**、Windows、深色、1336×902。5.8.2 已有有效证据继续复用,不以新版本证据覆盖旧版本结论。
| 证据 | 归档 | 覆盖与限制 |
| --- | --- | --- |
| `ev_3d653093d5a6c22b41cf5cf7a8e39e1b618fd4b11ae32ac9620c7655503d5ff6` | `.tmp/rea-four-modules-launch-20261017.json` | 既有本地 REA lifecycle provider 启动安装的 WorkBuddy;启动前没有同名进程,没有关闭用户任务。只证明进程创建。 |
| `ev_ea3b4d82afab5f6ee4f8451b1debb2a2b6a2bfbdb34d948d495f83a1e0d76582` | 本会话 REA target list | 确认端点 9223、WorkBuddy/5.8.3、target `1CAD78026104DDABDB43F9EB6BA7635D`。 |
| `ev_f3929b82c6249f5eaa4f7162b87364ceae077a22b204c66fd7f12e3912b033ca` | `.tmp/rea-four-modules-baseline-20261017.json` / `.png` | 导航前的定时任务页,资料库为左栏第五个入口。 |
| `ev_fa8e4adddc7304748c872d3a42e8ee7c51dc7cd71a479a58bffbf4a16cbbf7ee` | `.tmp/rea-four-modules-library-20261017.json`;`library-after` PNG | REA 声明式点击资料库并等待 1s;action frame 为加载骨架,不能拿初始 artifact 当导航后页面。 |
| `ev_82a9ad8ec38c807e465646d749e2cedbb150fec62e30234c97acd0bb309c349e` | `.tmp/rea-four-modules-library-stable-20261017.json` / `.png` | 稳定首页、DOM/计算样式/已归属脚本和 CSS。整体 `policy_filtered`:32 资源、15 越界脚本、2 未归属脚本排除;未取得完整资料库业务源码。 |
| `ev_1d7ecab64cb98e4ce1f1c584dc9f5abb64af0a6ae9fea4d62891bbb4aefe6766` | `.tmp/rea-four-modules-library-controls-20261017.json`;按 step 分开的 PNG | 类型菜单、个人新增菜单、本地产物页;搜索 action 返回 completed,但立即采帧未显示搜索界面,不能宣称搜索交互已拆完。 |
| `ev_b7fe1b4adac2311b04dfa454126363ca382869d6a29664152d497a920c2e8cad` | `.tmp/rea-four-modules-library-local-20261017.json` | 本地产物稳定态 DOM/布局/脚本,整体 `policy_filtered`,34 资源、15 越界脚本和2未归属脚本排除。 |
可复跑探针:`scripts/rea/probe-four-modules-library-20261017.json`、`probe-four-modules-library-controls-20261017.json`。选择器顺序仅对应本次原版布局;复跑前核对当前页面和 target,不能盲用历史 target。
历史 5.8.2 静态证据 `ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb` 中 `space-library-picker-D2BL85X8.js` 已确认存在 `fetchSpaces`、`fetchProjectSpace`、`searchSpaceNodes`。这证明文档空间选择器的数据调用入口存在,不证明其后端实现与权限规则。详见 `assessment-space-tools-2026-10-15.md`。
本轮 REA 首页证据包含 `space-library-DZ_aI7LI.js`(4995 bytes,SHA-256 `91bbbd1b9b1602088e8e19d495f29b44da25d8df20028c663163baa8db3d5cbd`)、`space-library-picker-iy0rD3_T.js`(61585 bytes,SHA-256 `648cf973cd4f7b2b7ae8cd7a0db26755d8671583ead81a62bcfa185491901ea3`)及 `library-target-B9F6xlSn.js`(1399 bytes,SHA-256 `5b9beba2df38c87cec4393b8c7b54ec950221269b4cf660970800713a79d3ba1`)。本轮未做这些模块的完整语义追踪,不能凭文件名推出全部资料库能力。
## 2. 已观察的页面与交互
| 区域 | 原版实际观察 | 尚未证实 |
| --- | --- | --- |
| 资料库内侧栏 | 标题、通知图标、搜索、最近、本地产物;我的资料、团队空间两组树和加号;底部容量与升级入口 | 通知内容、团队新增流程、树节点菜单/拖拽/权限和容量结算 |
| 最近首页 | 最近访问 / 我分享的 / 与我共享;列表列为名称、所有者、位置、最近访问;有介绍卡片 | 分享页空/有数据/撤回状态,分页与更新策略 |
| 类型筛选 | 全部类型、文档、表格、网页;当前项有对勾 | 切换后的查询、持久化和组合条件 |
| 我的资料加号 | 新建文档 (.md)、新建表格 (.csv)、新建文件夹;上传和导入(有子菜单箭头)、添加链接 | 保存位置、命名规则、导入子菜单、限制、覆盖和失败恢复 |
| 本地产物 | 返回资料库;全部类型、搜索文件/任务/工作空间、我的收藏;按工作空间 → 任务 → 文件分组 | 收藏持久化、类型全集、搜索匹配规则、缺失文件和打开行为 |
| 本地产物表格 | 名称、类型、更新人、更新时间、大小;名称与更新时间有排序图标;真实文档/代码条目 | 排序切换顺序、跨任务重复文件如何合并、产物生成与磁盘修改的关联规则 |
| 加载态 | 首次进入资料库曾出现标题、正文与卡片形状的骨架 | 骨架最短显示时长、错误重试、离线/无权限状态 |
本轮观察不包含:文档编辑器、表格编辑器、网页发布、团队协作、成员权限、上传/下载结果、资料发送到对话后的实际上下文。不能把列表截图视为编辑/检索闭环已拆完。
## 3. 已取得的几何基线
同一 1336×902 深色视口,主应用侧栏宽约284.28;资料库内侧栏 `[284.28,30,280,872]`,右侧内容从 x≈564.28 开始。标题区高56;搜索按钮 `[296.28,86,256,30]`;最近/本地产物导航高30;资料树行高32。首页页签组 `[608.28,146,248,32]`,三个按钮各80宽;类型筛选100×32;列表宽约679.70,表头36高、正文行48高。
本地产物页返回按钮 `[308.28,47,107,30]`;内容包装 `[308.28,150,1003.70,752]`,滚动列表 `[308.28,197,1003.70,705]`。这些是单一视口实测值;后续必须恢复布局约束、浅色 token、窄窗口和长文本行为,不能写死这些坐标充当自适应1:1。
## 4. YCode 当前状态
- `src/renderer/src/mock.ts` 的 `library` 导航仍为 `implemented:false`;当前 `App.tsx` / `Sidebar.tsx` 只有 chat、capabilities、projects 页面路由,没有资料库页面。
- `src/shared/ipc.ts` 没有 library 集合、资料树、最近访问、收藏或资料检索的专用契约。
- `src/shared/types.ts` 已保留消息的 artifact parts、attachments、resources、quotes,可作为本地产物关联来源;这不是完整产物索引。
- `src/shared/resources.ts`、`src/main/resources.ts` 及 renderer resource store 已支持真实目录/文本/图片读取和产物预览,可复用到打开资料的宿主侧。
- 现有本地工作目录的空间、项目中的资产,以及资料库文档空间必须分别建模;当前没有证据证明原版三者使用同一存储或同一权限语义。
- 没有持久化资料库、跨任务索引、全文检索、资料编辑、分享/团队协议。已有预览与 Markdown 渲染只覆盖显示能力。
## 5. 建议的数据与实现边界(YCode 设计建议)
以下是建议,不是原版字段恢复;最终契约由主上下文统一决定。
1. `LibraryCollection`:个人资料/团队资料的容器。与本地 `WorkspaceRecord` 使用不同 ID 域;保存来源、所有者、权限能力,不用当前账户信息伪造团队。
2. `LibraryNode`:所属集合、父节点、类型(文件夹/Markdown/CSV/网页)、标题、内容引用、创建/更新时间、来源版本。路径和内容读取在主进程处理,renderer 使用受控节点 ID。
3. `LocalArtifactEntry`:关联 workspaceId/sessionId/messageId/产物或文件引用、显示名、类型、大小、可用状态。先从真实产物事件与现有历史回填,不把项目全部源文件无条件当作任务产物。
4. `LibraryUserState`:最近访问、收藏、展开与排序;独立持久化,重启恢复,文件失效有可读状态。
5. `LibraryReference`:引用节点ID、版本、标题、选区或内容快照及来源;发送时冻结,使编辑原资料后已发送上下文不被暗改,恢复历史时仍能正确重建。
6. 用适配层区分本地与云端资料提供者。云端协作、配额/购买、远端权限仍按当前范围暂缓;不能复制原版账户的5GB容量或把本地数据标成原版团队内容。
本地可先做:页面外壳、真实个人文档/表格文件、文件夹、导入、链接记录、最近访问、收藏、搜索、本地产物聚合和对话引用。文档/表格编辑器的功能范围需先补证据,不能把可编辑 textarea 等同于原版编辑器。
## 6. 后续分批任务与验收
| 批次 | 具体任务 | 交付门槛 |
| --- | --- | --- |
| L0 补证据 | 搜索稳定态、上传导入子菜单、文档/CSV/网页详情、节点菜单;浅色及窄屏 | 每项记录REA截图/结构/状态/来源;不能取得的业务源码列明原因 |
| L1 页面骨架 | library 路由、内侧栏、最近页、类型菜单、骨架/空/错误、主题和滚动 | 同数据同视口截图与计算布局对照;切页不丢当前会话草稿 |
| L2 个人资料 | 节点存储与主进程IPC;新建/命名/文件夹/本地导入/链接 | 重启恢复;取消不写入;失败可重试;重复命名和失效来源处理有证据或明确设计记录 |
| L3 本地产物 | 跨任务真实产物索引、工作空间/任务分组、筛选/排序/收藏/失效文件 | 展示只来自真实事件/关联;打开正确来源;切空间/归档/删除后不串归属 |
| L4 编辑与预览 | 据补采接 Markdown/CSV/网页宿主,预览复用已有右侧栏 | 编辑保存/取消/失败保留草稿;类型对应正确预览;不能仅展示成功toast |
| L5 检索与引用 | 最近、搜索、选取资料入对话、已发引用与历史恢复 | 查询结果与内容一致;引用冻结版本;请求上下文与UI来源一致 |
| L6 完整对照 | 原版全状态、深浅色、窄屏、长列表/长标题/空与错误、键鼠与动效 | 功能和视觉分开验收;云端未接范围单列,不给完整1:1完成标记 |
## 7. 阻碍与所需证据
- 当前 REA 已能进入资料库、截图、取DOM/计算样式。阻碍不再是“不能采画面”。
- 资料库页面的完整业务脚本和样式有部分未被当前 file-page 归属规则收录;应由 REA 的精确模块/协议支持补足,禁止直接CDP/evaluate或手写提取器绕过。
- 当前仅有深色单视口。未证实搜索、编辑、导入、团队权限、错误恢复和实际引用行为;后续 L0 需要补采。
- 云端资料持久化、权限、协作及配额服务不在本轮范围。本地替代链路可以做,但必须和原版服务等价性分开验收。
## 8. 本轮验证
只读核对 `mock.ts`、`App.tsx`、`Sidebar.tsx`、shared IPC/types/resources 和 main resources;解析REA归档确认Evidence ID、版本、过滤范围、action steps和PNG来源。新增两个声明式探针及本文件;未改业务代码,未运行构建或应用测试,未声称资料库已实现。