feat: complete WorkBuddy parity and Windows release workflow

This commit is contained in:
xiaohan.yuan committed 2026-10-18 12:45:21 +08:00
1 parent 143516b3a8
commit d5512df549
434 files changed
+54977 -1854

No files matched your search

+92
View File
@@ -0,0 +1,92 @@
# 资料库模块拆解(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来源。新增两个声明式探针及本文件;未改业务代码,未运行构建或应用测试,未声称资料库已实现。