Files
ycode/docs/接手状态-2026-10-15.md
T

110 lines
17 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.
# YCode 接手状态(2026-10-15)
> 2026-10-17 用户新增 20 项对话、侧栏和设置对齐要求,已建立后续主清单:[复刻待办清单](复刻待办清单-2026-10-17.md)。本轮仅记录 TODO,尚未开展对应的新 REA 采集和实现;编号与用户原始问题一致,记忆与进化、安装中心、定时任务、资料库、更多中的项目保留待拆解。后续逐项记录证据、实现与验收,不能仅凭构建通过勾选完成。
> 2026-10-16 工具动作标题线上复核:此前截图取自 23:12 的旧构建;23:35 启动的旧调试进程仍占用 9237,导致先前重启检查没有连到新构建。重新构建并清理旧调试进程后,以 PID 86372 在 9237 启动最新版本;重新打开原来没有 `intent` 的真实会话 `2f93304e-a8d6-40ab-96d4-9e4b45511352` 并展开,DOM 与截图均显示 `List contents of src directory`、`Read file ... (lines ...)` 等动作标题。验证截图:`.tmp/ycode-tool-intent-session-2f-expanded.png`。`npm run test:conversation` 与 `npm run build` 通过。当前这项修复仅验证到历史工具记录和静态回归;流式进行中的视觉刷新仍由既有工具事件回归覆盖,未在本轮真实模型请求中复测。
> 2026-10-16 过程消息显示对照:用户提供的 YCode“看一下当前项目”内层展开截图,与 WorkBuddy 5.8.2 的 REA 原版截图显示相同的组织方式——已完成回合中按序展示“深度思考”、普通工具项和回复正文。静态源代码证据确认 reasoning 与普通工具可共同进入过程折叠;这不是同任务的逐像素对照,尚不能标记 1:1 完成。详见[过程消息展开与思考项对齐](过程消息展开与思考项对齐-2026-10-16.md)。
> 对话启动提示文案已从 WorkBuddy 5.8.2 的现有 REA 证据恢复:10 个准备阶段、2 个云端 bootstrap 阶段和“思考中”回退;原版状态栏读取会话阶段选择文案,阶段顺序/时长尚未由运行时事件证明。无需重新采集已有源码。详见[启动提示文案恢复](对话启动提示文案-2026-10-16.md)。
> 最新流式状态栏(2026-10-16):REA 恢复的 WorkBuddy `StreamingFooter` 已接入每个 `streaming` 回复,正文开始输出后仍持续显示扫光“思考中”;源提示按 4 秒延迟、10 秒轮换并在悬停时暂停,空正文旧光标已移除。加载提示和对应 CSS 均由 REA 固定 Evidence 导出生成,费用缺少真实数据所以不显示;完成态继续显示消息冻结模型名。`test:conversation`、`test:assistant-footer`、`typecheck`、`build` 均通过。源脚本来自 WorkBuddy 5.8.2,而当前 WorkBuddy 为 5.8.3;当前版本流式画面/计算样式仍未取到,另有一份运行时 CSS 与 ASAR 摘要不一致,故还不能标为逐像素完成。见[流式回复状态栏对齐](流式回复状态栏对齐-2026-10-16.md)。
> 最新模型选择器(2026-10-16):对话区模型列表已换成 REA 恢复的 WorkBuddy 当前 cr `ModelSelector`(192 个正文定义 / 7 份源文件,`--check` 幂等,0 处未解析引用)。触发按钮 108 项计算属性与原版证据逐项比对为 0 差异;组件原生 49/49、真实应用 product flow 两阶段通过,已更新用户 YCode 并保留原会话。**推理强度子菜单本轮已接线**:新增会话级 `thinkingLevel`(`off|low|medium|high|xhigh|max`)并贯通到 OMP 内核 RPC,真实应用三连切换往返落库一致;过程中修掉一个真实缺陷——模型未设默认强度时档案里是 `defaultEffort: ''`,空串会被主进程判为非法强度而拒绝写入,现已改为逐项白名单回退并加了回归用例。上下文窗口子菜单仍未接(OMP 无运行时切换命令,需先决定自定义模型如何声明窗口集合),渠道分组/营销徽标属数据差异,打开态像素、推理面板像素与暗色全状态未验收。见[对话区模型选择器对齐](对话区模型选择器对齐-2026-10-16.md)。
> 最新加号菜单(2026-10-16):已接 REA 当前 cr AddMenu/Popover/SubMenu 与文件/模式/引用/连接器视图,专家/技能嵌入悬停侧层;保留父菜单、120ms 延迟关闭和源搜索行为。模式持久化并接实际 OMP/备用内核工具限制,引用来自真实空间根目录,技能本地导入/MCP 回调可用。修复浮层背景变量丢失及深色条件覆盖浅色 token;最终完整应用73项、用户实际窗口25项通过,已更新并保留原会话/草稿。当前 cr 专家/技能全部内容、云入口、递归引用与全状态像素尚未完成,详见[本轮实施与验收](加号菜单交互对齐-2026-10-16.md)。
> 最新专家使用逻辑(2026-10-16):召唤/选择共享已验证激活,输入框“召唤更多”按owner回原会话;保护用户草稿、替换未编辑预填、区分首页/会话移除、处理重复选择与异步竞态。原ExpertChip头像职业标签已接工具栏;Agent YAML决定技能预加载,PM/UI改为按需目录。状态50项、完整实际OMP localhost应用61项、picker42项、chip38项、四包370项通过;用户应用已更新。系统层角色/maxTurns/原CLI Agent生命周期仍未对齐,详见[本轮实施与验收](专家使用逻辑对齐-2026-10-16.md)。
> 最新原版专家迁移(2026-10-16):首席C++架构顾问、关德豪、像素君、小算四份完整功能包已通过REA恢复并安装到用户YCode,共255原文件/197文本资源,54字体/四张原头像。356项独立检查与真实用户应用四次鼠标召唤通过;用户app已更新并打开“我的专家”。新增16MiB专家包预算、扩展模板/C#/XML/Shell资源与保留BOM;依赖和原包缺失项见[四位专家迁入记录](四位专家迁入YCode-2026-10-16.md)。所有专项工具实际执行和完整1:1仍未验收。
> 最新专家实施(2026-10-16):原 expert-manager 11 份源码资源、创建/修改提示词、My Experts 卡片/删除框及专家选择器已恢复并接真实本地包注册、编辑、会话激活与逐消息身份快照。最终 UI→实际 OMP→localhost 创建/召唤/编辑/重启及首发 preflight 草稿保留 51/51,通过独立后端73项、快照事务15项、卡片34项、选择器39项;最终构建已更新用户 YCode 并恢复原会话。原生 agent/plugin 切换、头像生成、右侧专家产物自动预览及全状态像素仍待对齐。详见 [专家本地创建与激活](专家本地创建与激活-2026-10-16.md)。下方“专家包创建/激活未完成”是上一轮历史。
> 能力中心已进入生产实现(2026-10-16):侧栏三页入口、本地技能导入/启停/覆盖/卸载/资源读取、自定义 MCP JSON 管理与真实 stdio/HTTP 工具运行、技能输入引用及 OMP/备用内核接线已实现。完整应用两轮工具调用及新进程恢复通过;最终构建已更新用户 YCode,并保留原会话/模型。源几何33项、本地技能59+37项、MCP后端45项等通过,但专家包创建/激活、第三方授权、在线目录与全状态像素仍未完成。见 [实施与最终验收](能力中心与本地能力接入-2026-10-16.md)。下方“仅分析/入口占位”是上一轮历史。
> 专家/技能/连接器拆解(2026-10-16):已通过REA补原版市场、我的专家、已安装技能、添加菜单、连接器详情及MCP管理画面,核对源码/宿主接口;形成 [总拆解](专家技能连接器拆解-2026-10-16.md) 及三份子模块评估。此轮仅分析,YCode该入口仍是占位;没有安装、启用、授权或修改生产代码。原版取证结束已返回首页。
> 最新真实对话验收(2026-10-16):当前用户 `gpt-6-luna` 的完整 `/v1/responses` 已兼容连接测试、OMP 与备用 Gateway;真实远程上游两轮回复、上下文回忆及磁盘保存通过,已返回用户原会话。原“远程 API 拒绝连接”只代表旧配置,不再是当前阻碍。详见 [验收记录](Responses协议与真实对话验收-2026-10-16.md)。UI 全状态1:1仍未完成。
> 当前实施进度:[持续复刻进度(2026-10-16)](长任务进度-2026-10-16.md)。模型修改/空间创建/对话真实链路与右栏浏览器/ConPTY已接入;受控上游整应用及重启通过,右栏66项、原版只读Monaco21项原生集成通过。模型下拉、直接添加入口、头像、表格及产物footer继续按REA原体恢复。当前真实供应商两轮对话已通过;Responses集成28项、备用Gateway30项及旧Chat实际OMP22项通过。全UI 1:1尚未验收,后面的“本轮只评估”等是历史状态。
> 历史任务评估:[1:1 长任务评估(2026-10-16)](1比1长任务评估-2026-10-16.md)。其中“本轮只评估”已由上方持续实施状态取代;保留当时观察和任务拆分作参照。
> 当前最新:[对话审批与消息投影续对齐](对话审批与消息投影续对齐-2026-10-15.md)。现代中英文词典、工具卡片内审批、reasoning/工具混合分组、源过程摘要已接入;补全真实消息事件的状态回归。1:1 全状态像素验收尚未完成。
> 当前最新:[原版实测与像素对齐](原版实测与像素对齐-2026-10-15.md)。原版调试入口已经 REA 恢复;行内代码字号、工具 SVG、完成/过程折叠与耗时、Pierre Diff 已接入。四类实际字体样本匹配;按原版软件渲染环境校准后,第一正文段落 39,909 像素零差异,气泡剩 22 个圆角像素各差 1。完整 1:1 尚未通过。旧文档“原版调试不可达”和 Monaco Diff 假设已过时。
> 当前最新:[对话区四项对接](对话区四项对接-2026-10-15.md)。工具专用视图与附件预览已继续接入固定 REA 源码/样式;REA 字体、连续 PNG、原生输入和恢复通路已通过隔离 Electron 实测。原版当前调试端口不可达,尚无新增原版 glyph 或全状态像素验收结论。
> 当前最新:[对话样式与调试画面采集](对话样式实对齐-2026-10-15.md)。本地 REA 已补 PNG、计算布局与 SVG 采集;原版 CSS 已实际接入消息、输入区、问答等组件。28 项选定计算属性一致,仍未通过全状态像素验收。云端服务与子代理调度按用户最新要求暂后。
> 最新采集进展:[REA CSS 采集修复](REA-CSS采集修复-2026-10-15.md)。当前已实际取得 64 份加载中的样式正文;后续使用 `npm run rea:css:capture`,仍全部经 REA。全局 REA MCP 未修改,正文入口在本地修复副本。
> 本文保留接手时的历史基线。最新实现、证据和限制见 [源码级续对齐](源码级续对齐-2026-10-15.md)、[对话区域八类对齐](对话区域-八类对齐-2026-10-15.md)、[统一字体与间距](统一字体与间距-2026-10-15.md)、[图表、图片与文件](对话区域-图表图片文件-2026-10-15.md)。下文“纯文本”“--no-session”等描述不代表最新源码。
## 目标与现行约束
可行性重新评估见 `1比1复刻重新评估-2026-10-15.md`:接受 1:1 目标不等于已证明全量可行;客户端可逐项严格验收,云端、原生与模型逐次结果有独立条件及未知项。
用户明确要求:借助 REA,1:1 复刻 WorkBuddy;所有查看原版实现的工作使用 REA。
该要求覆盖视觉、交互和功能。历史文档中的 L4 不做、商业入口不做、用直接 CDP 绕过 REA 等条款不再作为缩减范围的依据。
跨机器字体、宿主环境差异是需要控制的验收条件,不能用来提前宣称通过或排除功能。
当前目录没有 Git 元数据;接手时不重置、不覆盖 WorkBuddy 已有成果。
## WorkBuddy 任务交接
- 会话:`4653e36f-6b2a-446f-a9c9-3f2d2d04644e`,当前标题“开始新会话”,旧标题“探讨agent循环与腾讯沙盒”。
- 10:46 的回复报告 OMP 文本和工具通路打通;这是前任自报,尚不代表原版行为一致。
- 10:53 用户要求开始处理,后续集中在取消链路。
- 11:04:33 定位 `ipc.ts` 无条件覆盖 `assistant.status = 'done'`,已将 OMP 分支改为采用返回终态。
- 最后一项工具结果在 11:08:24,11:10:56 显示“Interrupted by user”。没有最终取消验收结论。
- 接手检查发现 `runOmpTurn` 的常规结束路径未执行监听清理,且部分错误分支 reject 的是结果对象而非 Error;本轮修复并补回归验证。
## REA 原版基线
2026-10-15 11:13(北京时间)通过 REA 连接既有端口 `http://127.0.0.1:9223`,未重启、导航或点击原版。
| 项目 | 观察与范围 | Evidence |
| --- | --- | --- |
| 目标识别 | 当前端口为 WorkBuddy 5.8.2 / Electron 37.10.3 / Chrome 138.0.7204.251;目标是 `Programs/WorkBuddy/resources/app.asar/renderer/index.html` | `ev_161879543f20fc822f7fcc7bff3351b63dbd129f9b649d33958357e1fc315423` |
| 被动页面观察 | 1872 个 DOM 节点,339 个脚本记录;未选择脚本正文,有资源范围过滤,未观察历史执行过程 | `ev_07b84c62b706541456e7415ae6d886bc0b3e8e98f1fbf3456e29ba12cb46db9b` |
| 安装包身份/清单 | ASAR SHA-256 `035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918`;仅选择 `package.json`,没有解析业务 JS,完整应用行为仍未知 | 父记录 `ev_df8468f8f31100525395ec493367a16770371db119cce47ca3ce19aacfd89eb7`;摘要 `ev_7664214bd3a9f3a37c1b95cc9d1807839dd676ed3527081b395a56564e9b98fd` |
旧报告“REA 不能观察 file:// 页面”已过时;当前 `list_electron_targets` / `inspect_electron_page` 可用。
原版安装包首次静态分析因 unpacked `cli/bin/native/win32-x64/job-object.node` 的声明摘要与实物不符被拒绝。
后续用 REA `integrity_policy: record-and-continue` 保留矛盾继续分析;不能将完整性不符推断成原版功能或故障原因。
本轮完整 REA 记录已导出到 `.tmp/rea-workbuddy-takeover-2026-10-15.json`(4 条记录,约 200 MiB);保留本地供后续按证据 ID 分页读取,不要整包注入上下文。
八个 `scripts/wb-*.mjs` 历史采集入口已加统一阻断,在连接原版前终止,避免误用旧 SOP;原始脚本内容保留。
## 真实完成度
- 已有:Electron/React 桌面壳、CSS token/六档字号、会话 JSON 存储、文本流、基础工具卡、侧栏/设置外观、OMP sidecar 与旧循环回退路径。
- OMP 每会话进程使用 `--no-session`,YCode 保存消息;启动后历史恢复进 OMP 上下文尚未实现。
- 助手正文仍是纯文本;没有 Markdown 富内容渲染。
- 工具卡是简单的折叠组件;完整事件顺序、过程折叠、审批与提问未证明对齐。
- 外围部分入口仍是 mock/临时提示。现有界面与 token 数据不能作为完整视觉或功能通过的证据。
- 侧栏任务搜索能过滤真实会话;重命名虽有 IPC/preload 接口,尚未接渲染器。账号/通知/空间为固定 mock;侧栏导航除“新建任务”外均未实现,权限/语音与右栏内容也仍为占位。
- 历史 API Key 未配置等阻塞说明已过时;本轮不读取、输出或改动真实密钥。
## 后续顺序与验收
1. 收尾 OMP 回合取消、错误和监听清理,验证取消终态经过 IPC 后持久化为 `cancelled`;离线回归与真实上游验收分开记录。
2. 经 REA 逐项获取原版对话渲染、工具过程、取消/恢复、历史恢复的证据,建立同版本/同视口/同字号/同输入的对比样本。
3. 优先补 Markdown/富内容、工具过程状态机和恢复会话上下文,再扩展外围入口;每项建立原版证据及 YCode 回归。
4. 全部功能仍纳入 1:1 范围;暂未实现项进入差距清单,不自动降级目标。
## 本轮验证
| 验证 | 结果与范围 |
| --- | --- |
| `npm run build`(包含 typecheck) | 通过,主进程/preload/渲染器构建成功 |
| `npm run smoke` | 通过,原自建网关/工具循环回归;使用本地假上游 |
| `npm run test:omp` | 通过,正常结束、两条取消结束路径、错误/退出、监听清理、预先取消;真实 `ipc.ts` + 会话存储配合假 OMP,确认取消和错误终态及错误文本写入磁盘 |
| `node scripts/wb-capture.mjs` | 按预期退出码 1,提示使用 REA;在任何 CDP 连接前阻断 |
上述 OMP 回归不启动真实 OMP/真实上游,也不验证原版动态等价;真实停止按钮→OMP→磁盘的端到端复核仍待执行。
历史 `scripts/e2e-cancel.mjs` 只检查停止/发送按钮切换,不验证磁盘和内核,且选择端口中的首个页面并发送真实长提示;不能用它的成功输出代替取消持久化验收。后续真实端到端验证需使用隔离的 YCode 会话并明确选定目标。
本轮修复只涉及 `src/main/agent/omp-turn.ts`;保留前任在 `ipc.ts` 已完成的取消终态修复。
没有重启当前 YCode 窗口;构建产物已更新,正在运行的主进程需下一次正常启动才加载本轮修复。