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

11 KiB
Raw Blame History

资料库模块拆解(2026-10-17)

开发执行入口:三模块开发计划。首批以跨任务真实产物索引与浏览为交付,后续接个人资料、编辑和引用;共享接口与文件边界由主上下文统一。

新增源码核对:对话资料沉淀与任务引用。普通/项目选择树、显式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来源。新增两个声明式探针及本文件;未改业务代码,未运行构建或应用测试,未声称资料库已实现。