5.8 KiB
WorkBuddy 子任务显示位置核对
日期:2026-10-18。本轮只调查与记录,未修改 YCode 产品代码、未重启 WorkBuddy、未发送测试消息。
最新位置订正:按用户要求,成员入口现已从回复底部移到输入框上方,详见 迁移与验证。下方保留最初调查及后续补查的原始范围。
后续实施:用户随后要求对齐,现已接入回合底部成员入口及右侧任务详情,恢复原版CSS和SVG;实现、验证和剩余限制见 子任务展示对齐。下方“YCode差异”保留为本次修复前的调查基线。
后续订正:用户指出输入框上方还有任务区域,经同一份5.8.2 REA导出确认,那里还有团队成员栏和后台任务列表。此前“两条路径”只覆盖回复内的入口,不能作为全部入口清单。位置、数据来源与两套宿主路径的区别见 输入框上方任务区域核对。YCode尚未实现该区域。
结论
原版回复内已确认以下两条展示路径,不能把它们都替换为逐张展示的子 agent 卡片;输入框上方的入口另见上述订正。
| 对象 | 主对话中的入口 | 查看详情 |
|---|---|---|
| 当前回合参与协作的子 agent / 团队成员 | 回复底部的头像组和「{count} 位团队成员」;生成中和结束后均有对应插槽 | 点击入口展开成员列表,再点击某位成员,打开详情面板中的成员任务对话 |
普通 task / Task 工具调用 |
消息事件中的可折叠 Task 工具块 | 行内展开委派 prompt、工具调用情况、简报和最终结果;适用时显示审批按钮 |
子 agent 事件带有 isSubAgent、parentSessionId、memberEvent、parentToolCallId 等信息时,会被划分为 member-internal,并优先交给 ChildAgentProjection;不能把这些事件直接作为主回复正文逐项输出。
协作入口与详情
RequestCollaborationSlot按 requestId 读取当前回合的成员。- 收起时显示最多4个20px头像和「N 位团队成员」,4是头像预览数,不能当作并发上限。
- 点击后展开列表,显示成员头像、职业/名称、任务序号及运行/完成/失败/中断等状态;带重试信息时另显示重试次数。
- 列表先排主理人,再按状态、manifestOrder和稳定身份排序。
- 选择成员调用 selectTeamMember,激活 DetailPanelSurface,并执行 detail.open({view: 'member', projectionId})。
- 成员详情由
ConversationMemberDetailPanel渲染:头像、职业/名称、「的任务一」等标题和关闭按钮;正文使用对话渲染器展示成员消息、工具及思考。下发任务说明有独立的展开入口,运行时可持续更新,支持向上加载更早请求。 - 入口在
ConversationStreamingFooter和完成后的conversation-finished-footer中均被挂载,因此不是结束后才可查看。
证据与范围
主要依据为既有 WorkBuddy 5.8.2 REA 导出 .tmp/rea-runtime-scripts.json,Evidence ID:
ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb。
本轮只读取、校验和定位 REA 已采集的脚本,没有直接读取安装目录脚本、连接 CDP/WebSocket 或在原版执行 evaluate。
contexts-BMeWSUHk.js,SHA-256:5f35b7489b107e21ef452c8ee88a95265756f6fc444841eef869228bbc44768b。以下位置为 JavaScript 字符偏移:
| 范围/入口 | 字符位置 | 证实内容 |
|---|---|---|
| classifyConversationFrame | 975186附近 | 成员内部事件分类 |
| ChildAgentProjection 分流 | 1193716附近 | 子事件优先投影,不直接流入主对话 |
| ConversationMemberDetailPanel | 5913738起 | 成员任务详情及独立对话渲染 |
| RequestCollaborationSlot及成员列表 | 6187325–6193670附近 | 头像、人数、列表、状态及打开成员详情的回调 |
| 中文文案 | 4944252附近 | 「N 位团队成员」「的任务」「下发任务详情」 |
| 完成态底部挂载 | 6892143附近 | variant=finished |
| 生成态底部挂载 | 6978100–6978708附近 | variant=streaming |
| ConversationDetailSurface Portal | 7222068附近 | 通过独立详情面板宿主显示成员内容 |
src-DbE1_mgM.js,SHA-256:6c6ce63c93854783270e855572797d75e536e3b8d4548410e31fe9d147e1feb4。1102960附近的 convertTask 和1103490附近的 TaskView证实另一条普通Task工具展示路径。
本轮通过 REA 当前安装包目录证据再次核对了该 core 脚本摘要,仍与既有导出一致。对应 Evidence:ev_29ec36f6e11c3f4b10bfe6e3f96934b819852ae32614ce346c4fd9ea760fc0c2。不能由此推断当前安装包所有其他脚本也与5.8.2相同。
同时通过 REA 对任务预览、后台终端输出及 agent-chat-pane 等独立模块进行了限定范围分析,父 Evidence:ev_91a39ae854fd27bece1298ce9e8fce226c1e8653da3de6acfbf3fdc12353844b;该有限分析不替代上述主对话源码链路,也不证明动态模块已执行。
当前限制与 YCode 差异
- REA 连接已知原版调试端口9223返回 endpoint_unreachable,尚未取得本轮原版真实运行截图和点击演示。因此以上是已采集原版源码中的展示路径,不能称为本轮像素或动态交互验收。
- YCode 最新 mock 对应
SubagentCard的自有行内实现:逐张卡片、独立耗时和停止按钮、展开的事件列表。已接通本地调度,但缺少原版的回合底部成员入口和成员任务详情面板;该 mock 不能作为原版1:1展示。 - 后续对齐应保留现有调度数据,将其适配到成员列表、当前回合归属、选中成员和详情对话;普通 task 工具继续沿独立工具块路径处理。具体实现尚未在本轮开展。