chore: establish YCode replication baseline and TODO

This commit is contained in:
xiaohan.yuan committed 2026-10-17 02:43:49 +08:00
commit 6dc59f89ba
1118 files changed
+196002

No files matched your search

+96
View File
@@ -0,0 +1,96 @@
# WorkBuddy 1:1 对标:长任务评估与执行基线
用户最新范围:先评估同会话的实际效果,再准备新建任务交互、自定义模型添加、空间、右侧工具栏的 1:1 长任务。自定义模型使用用户自己的上游,不接 WorkBuddy 服务端模型;此前暂后的云服务与子代理调度继续暂后。本轮只评估,未修改生产组件、已导入会话或用户配置,未创建后台长任务/定时任务。
## 结论
可以推进,但这是跨会话状态、模型配置、工作目录归属和右侧工作台的中大型客户端改造。已取得相关主脚本、模型表单 JS/CSS 和关键实际画面;主要阻碍转为实现缺口与验收覆盖,而非拿不到原版 CSS。
此前的局部正文像素结果、源码恢复、导入回读和 fixture 通过,只覆盖各自声明范围。新导入会话的校验证明内容已加载,未证明其取消语义、工具规范化、消息投影或整页显示与原版等价。本轮已发现会显著改变整页效果的具体问题。
## 实际对照
两端会话同为「开始新会话」,来源 `4653e36f-6b2a-446f-a9c9-3f2d2d04644e`,YCode 副本 `6c000be8-b0e8-4768-9a7f-1a0d94a35951`。都以 1336×901、浅色、右栏打开观察最后一轮;截图是各端现状,没有人为改正文、折叠状态或列宽来掩盖差距。
对照图:[原版 / YCode 同屏对照](../.tmp/assessment-comparison/same-conversation.png)。YCode 运行配置值在拼图中遮挡;原始采集留在本机。
| 已确认问题 | 证据与影响 | 优先级 |
| --- | --- | --- |
| 取消被导为 error | 6 轮 `Interrupted by user` 被同时保留为正文和 error;原版 provider 明确投影为取消。最后轮原版「已取消 17m15s」且过程闭合,YCode 展开历史并重复报错 | P0 |
| 终态折叠门控不完整 | 7 个 error 轮不进入完成投影,summary 还被标为运行中。最后轮当前 21 个根渲染单元,终态诊断为 2 个正文锚点和折叠;其他历史轮需逐轮实拍确认 | P0 |
| 工具名规范化缺失 | 47/691 次调用走通用兜底:TaskCreate/Update、DeferExecuteTool、present_files、大写 AskUserQuestion。其余命中专用 renderer 也不代表已验收 | P0 |
| 产物没有形成所属会话/回合入口 | 原版本轮展示 13 个产物及「查看所有产物」,当前仍缺相应聚合、标签和导航;来源有 21 条文件引用,不能直接等同于 21 个最终产物 | P0/P1 |
| 主布局和右栏结构不同 | 当前采样原版中栏约 526.7px、右栏 525px;YCode 中栏 409px、右栏 647px。原版是标签工作台,YCode 是环境统计页,正文换行也随列宽改变 | P1 |
| 正文间距与消息尾部仍不完整 | 原版正文有 both/top/bottom 间距规则;YCode 仍按索引统一顶距。头像、操作栏、模型/用量、取消说明和产物区等还需统一恢复 | P1 |
第 31 轮耗时 17m15s 已与原版一致,不再列作差距。357 条 reasoning rawContent 有原始文本结构,但原版历史是否以及如何显示尚需复核,不能盲目全部显示或宣称已经对齐。
## 五个范围的真实基线
| 范围 | 当前 YCode | 目标与工作规模 |
| --- | --- | --- |
| 同会话效果 | 已有正文、工具、Diff 和附件基础;导入/投影仍有上述结构错误 | 先恢复显示语义,再统一布局/间距/图标/状态。中到大 |
| 新建任务 | 点击即落盘空 session,首页场景/推荐有 mock | 原版首页草稿独立,首条提交才创建任务,绑定目录、模型、模式和权限;含附件、IME、失败重试、导航草稿。大 |
| 自定义模型 | 单一旧网关配置,不能代表当前 OMP 生效模型;缺多模型管理 | 模型列表、添加/编辑、覆盖确认、测试、删除、能力和 token 配置;UI、持久化及实际请求目标一致。大 |
| 空间 | 固定 MOCK_SPACES;会话无独立 workspace/cwd | 本地工作区创建/目录选择/分组/重命名/删除语义、任务归属、切换恢复与路径正确性。大 |
| 右侧工具栏 | 自制运行统计占位,预览能力另有基础 | 原版多标签、文件树、变更、产物、预览、浏览器、终端,含拖动宽度与会话恢复;宿主浏览器/终端是新增能力。很大 |
这里的「空间」首先是侧栏本地工作区。团队知识库/云文档、登录、分享和云同步另有服务体系,不将它们混入本地空间完成度。
## 长任务依赖与批次
统一的数据关系应先明确为 `工作区 → 会话 → 回合/消息 → 产物与右侧标签`;任务保存模型标识和有效配置,执行前由同一解析入口生成 OMP/后备路径配置。右侧读取会话所属目录,避免沿用一个全局 workspace 导致跨空间串目录。既有会话和配置需要迁移与回读,不能通过清空数据获得新界面。
| 批次 | 工作与依赖 | 完成门槛 |
| --- | --- | --- |
| 0:证据与场景账本 | 固定当前原版版本、会话、截图、源码摘要;补取消/429/工具/产物等展开状态与字体、窗口条件 | 每个场景有原版 Evidence、输入、预期行为和未知项;不把静态分支当动态通过 |
| 1:修正同会话效果 | 取消/错误归一、provider 工具规范化、消息投影、产物映射、正文间距;复用已有源渲染器 | 此会话最后轮默认显示、6 取消轮及真实 429 分别正确;47 个回退调用逐类消除,原正文/输出/图片不丢失 |
| 2:统一归属与配置 | workspace/session/model 引用、历史数据迁移、有效模型解析、panel session 状态;主上下文统筹接口 | 切换两个空间及会话不会串目录、模型、草稿、附件或标签;旧数据回读一致 |
| 3:新建任务与空间 | 首页草稿、场景、选择目录/空间/模型/权限、首次提交创建、防重复/失败重试;真实空间 CRUD | 从首页到首轮执行实际走通;取消创建不产生空任务,创建失败保留输入,空间操作副作用符合已采原版契约 |
| 4:自定义模型 | 本地多模型/凭据存储、源码表单/列表/选择器、验证与覆盖/删除确认、连接测试和 OMP 接入 | 测试不保存,保存重启有效;选定模型实际生效,上游使用用户配置;鉴权/超时/失败可复现,运行中切换契约明确 |
| 5:右侧工作台 | 先标签/布局/会话恢复,再文件树/变更/产物/预览,最后浏览器和 Windows 终端宿主;已有 Pierre/图片/HTML 预览复用 | 入口有真实内容和行为,多标签及切换/关闭/恢复正确;不能用按钮占位或静态输出代替浏览器/终端 |
| 6:整体验收 | 按相同会话/视口/布局/字号/字体/滚动锚点/折叠状态做截图与行为对照,覆盖明暗/宽窄/长文本/错误/动效 | 必要状态逐项验收,修复差异后复验;构建、fixture、真实 IPC 与原版对照分别记录 |
批次 3、4、5 的 UI 和局部宿主能力可以在批次 2 的接口固定后有边界地并行。最终集成、迁移、跨模块状态和真实验收由主上下文负责。每批应保存可接手的完成/未完成/证据/下一步,长任务中断后从账本继续。
## 必须覆盖的验收状态
- 对话:正常完成、6 个取消样本、429、工具等待/运行/失败/取消、问答回放、长输出、产物跳转、历史恢复、字体与正文间距。
- 新任务:进入不创建、重复点击、草稿往返、目录/空间切换、模型/权限选择、附件、多行/IME、首条发送、防重复、失败重试、重启恢复边界。
- 模型:空列表、添加/编辑、必填与 URL/Key 校验、重复 ID 覆盖、能力与 token 值、测试中/成功/鉴权失败/超时、保存失败、删除选中模型、重启和实际运行。
- 空间:空/多空间、创建名称、目录已存在/不可用、重命名、带关联任务的删除、排序与紧凑模式、会话归属、切换时后台任务不受误操作影响。
- 右栏:开/关/拖动宽度、不同标签内容、关闭当前/其他/右侧标签、文件与产物同路径去重、切会话恢复、预览过期、空/失败/大文件、浏览器和终端实际宿主生命周期。
目标是各状态的视觉与交互 1:1。对不可调用的原版云分支,明确记录服务依赖及未验收范围,不伪造成功,不把整项目降级成 mock。
## 新增原版采集与范围
全程通过 REA 公共入口,原版未执行创建任务/空间、添加/修改/删除模型、连接测试或终端命令;仅打开页面/空表单观察并取消,设置窗口已关闭,原会话已恢复。
| 场景 | Evidence | 本机产物 |
| --- | --- | --- |
| 同会话/右侧工作台 | `ev_d6e6920ff4e47f73a182fac5312c5f02393366a035445d18c8a6733a8c8a11ed` | `.tmp/rea-assessment-initial/` |
| 独立设置窗口 | `ev_2309de12a003fca2c863a223cbda5bccad36b3af73e29bc309fdaed94745cf9e` | `.tmp/rea-assessment-settings-window/` |
| 自定义模型列表 | `ev_40da6df0424193923bae64a8ccb6fca97ea67813d7de671986d4d7e154b848c1` | `.tmp/rea-assessment-models/frame-000.png` |
| 模型添加空表单 | `ev_45d3e5c9b0b0961cb58c9628598c8a777569c83062a0e8fe9c3d5f435e394632` | `.tmp/rea-assessment-model-add/frame-000.png` |
| 模型表单 JS/CSS | `ev_25f013c9fd2ad66153046eec06e94fb6128bfacc1e87e57aa90db6bc419075ec` | `.tmp/rea-assessment-model-source.json` |
| 创建本地空间空表单 | `ev_1e096ecf360249286260ceef24f1195919b8f1cbae8dd81751a2e36eb631bab2` | `.tmp/rea-assessment-create-space/frame-000.png` |
| 新建任务首页 | `ev_5c3eb3e638af074b017eb8f96ce3e90464d8e2a8ca3e6978cc202a7c36374283` | `.tmp/rea-assessment-home/frame-000.png` |
| 原会话恢复 | `ev_84d140d762fe4f59ebca649da52bcbe7c85778842941a9603fabdde21c260344` | `.tmp/rea-assessment-restored/` |
| 恢复后稳定状态 | `ev_43441ee1f76b15e3482ed305ebefa4ac82a2131fe29ea0ba0c387596d3c7129c` | `.tmp/rea-assessment-final-state/` |
模型表单已取得完整正文:重复 ID 覆盖确认、Key 去空白及字符校验、测试不保存、token 快捷值和能力区条件都已明确。实际协议请求层、删除选中模型与运行中切换等仍需长任务内动态验证。不是继续等待 CSS 或表单源码。
采集脚本仅补 `--target-id` 来区分同文件路径的主窗口和设置窗口;原版所有协议交互仍由 REA 执行。关闭设置窗口的那次 capture 因目标关闭返回失败,随后 REA 目标列表确认只剩原主窗口;不把该次失败计作成功截图。
YCode 双布局实拍见 `.tmp/assessment-ycode/`。截图条件只对齐视口/主题/会话,尚未完全控制两端 GPU、字体、布局与折叠状态,不输出整页像素差异百分比,也不复用此前单段正文的零差异来证明当前整页通过。
原会话重新进入后的稳定原版状态已确认无 skeleton;其右栏宽度变为 360px,中栏约 691.7px。首次比较使用之前的 525px 右栏状态。两次均是实际观察,不能把 525px 硬编码为原版固定宽度;长任务应查明导航、默认比例、拖动与布局恢复的状态契约。
## 分项报告
- [对话数据与投影审计](assessment-chat-projection-2026-10-15.md)
- [新建任务与自定义模型](assessment-task-models-2026-10-15.md)
- [空间与右侧工作台](assessment-space-tools-2026-10-15.md)
评估已形成可执行批次和验收门槛。完整工时依赖终端/浏览器宿主、协议接入和动态状态补证,不给未经验证的完成百分比或小时承诺。