当前气泡(来自 WORK_ACTIVITY_OVERLAY_DESIGN.md)· 宽 430px · 正文 3 行 · 既有动画保留
现状短板:① 左下角步骤条只显示最后一条 step 的短前缀(命令/读文件/编辑/失败/等确认),有效宽度受限看不到完整信息;② 主区只展示最近一轮 agent 输出(3 行截断),执行过程完全不可见;③ 执行细节(命令全文、输出、错误)在气泡内无入口。本方案在不改变宽高与动画的前提下补齐这些。
核心思路:执行时把正文 3 行预算整体置换为"执行面板"(命令 / 状态+回输出 / 最近输出),不新增行、卡片宽高不变;左下角同一位显示折叠标题。输出不永久丢失:完成后自动切回、L2 行内「回输出」随时手动切回。指示符全部静态(▶/✓/✗),不动既有动画。
核心思路:主区以输出为主。执行时正文 第 1 行替换为一行"状态条"(静态 ▶ + 折叠标题 + 时长),输出占剩余 2 行——3 行预算不变、高度不变、不遮盖输出;点击状态条展开覆盖式浮层看最新活跃 3 行(命令/输出/状态,浮层不占高度、可关闭)。无执行时恢复纯输出 3 行。可点「展开浮层」试玩。
| UI 元素 | 数据来源(真实事件) | 解析现状 |
|---|---|---|
| 折叠标题(左下角/状态条) | event_msg item_completed(item.type=Reasoning).summary_text[] 或 response_item reasoning.summary[].text(去 markdown) | 已有 reasoning_text() 可提取,但未接入 ActivityStep(当前仅显示"正在思考")→ 需接线 |
| 命令(L1) | response_item custom_tool_call.input(cmd/shell/workdir)或 item_completed CommandExecution.command[] | 已有 step.detail(command_execution_text,compact 140)→ 可放宽长度 |
| 执行状态 / 时长 | custom_tool_call.timestamp → item_completed.timestamp 本地计时;rollout 无执行中事件(硬约束) | 需新增(现有 elapsed 计时可复用) |
| 最近输出 3 行(L3) | item_completed CommandExecution.stdout/stderr;完成前可用上一步输出占位 | 已有 aggregated_output(compact 220)→ 可放宽/尾部截取 |
| 失败 / 退出码 | item_completed CommandExecution.status=failed / exit_code | 已有"命令失败"前缀 → 需带出 exit_code 与错误行 |
| 文件编辑(apply_patch) | item_completed item.type=FileChange.changes{path:{type,content/diff}} | 未解析(parser 跳过非 CommandExecution item)→ 可新增 |