截图里同屏出现的两条:
○ ■ user-input-fold · seal/glm-5.3 0/1 agents · 3m04s · 2%/1.0M · ↓ to manage
~ seal/glm-5.3 · 24%/1.0m · $0.00 · subagents: ■ 1 running · /subagents to view
问题 1:编辑框下方的 strip 与 footer 状态互相重复
extensions/subagents/navigation.ts 的 SubagentStripWidget.render 与 extensions/shared/activity-status.ts 的 formatActivityStatus 各自独立组装,导致:
两个 glyph 叠在开头 :marker(○/❯)+ statusSquare(■)。焦点指示和状态指示挤在一起,读起来像乱码。
■ 与 dashboard 已经不一致 :子代理 UI 打磨:列表贴合内容、详情页去掉横线带、命令执行成块 #36 之后 dashboard / takeover 用 spinner + ✓/✗,strip 和 footer 状态还在用静态 ■。同一个运行中的子代理,在三个地方长得不一样。
model 重复 :strip 显示 seal/glm-5.3,footer 也显示 seal/glm-5.3。
context 重复且看起来矛盾 :strip 是子代理的 2%/1.0M,footer 是父会话的 24%/1.0m。同屏两个 context 百分比、单位大小写还不同(1.0M vs 1.0m),用户无法判断哪个是哪个。
同一件事两个提示 :strip 说 ↓ to manage,footer 说 /subagents to view。
0/1 agents 措辞别扭 :只有一个子代理时说 0/1 agents,读者要想一下这是「0 个完成 / 共 1 个」。
提议
一处信息只由一个地方负责。 strip 是可聚焦、紧贴编辑框的富展示,它赢;footer 状态退化成纯计数。
strip 开头只保留一个 glyph 列 :聚焦时 ❯(accent),未聚焦时显示状态 glyph(running 用 子代理 UI 打磨:列表贴合内容、详情页去掉横线带、命令执行成块 #36 里 transcript.ts 导出的共享 spinner,settled 用 ✓/✗)。
strip 删掉 model 与 context (footer 已有父会话 context;子代理的 context 在 dashboard/takeover 里看)。
0/1 agents → 总数为 1 时不显示计数(标题已经点名了它);多个时用 1/3 done 这类明确措辞。
footer 状态里 ■ 换成同一个共享 spinner;当 strip 可见时去掉 /subagents to view 尾巴 (strip 的 ↓ to manage 已经说了怎么进),避免同屏两个入口提示。
问题 2:dashboard overlay 紧贴背后正文
overlay 直接压在 transcript 上,盒子上边紧接上一条命令输出、hints 行紧接下一段正文,没有任何呼吸空间,看起来像是嵌进正文而不是浮在上面。
提议
给 dashboard overlay 上下留白(overlayOptions.margin,或在组件 render() 首尾各加一空行),并在盒子与 hints 行之间留一行。
takeover 视图不动 ——它本来就占满全屏、没有"挤"的问题,而且它的高度预算是精确的 rows - 1(#36 ),加 margin 会破坏该不变量。
验收
同屏不再出现两个 context 百分比、两个 model、两个"怎么打开"的提示
运行中的子代理在 strip / footer / dashboard 三处 glyph 一致(同一个共享 spinner)
strip 开头只有一个 glyph 列
只有一个子代理时不再出现 0/1 agents
dashboard overlay 与正文之间有可见留白;takeover 高度仍为 rows - 1
截图里同屏出现的两条:
问题 1:编辑框下方的 strip 与 footer 状态互相重复
extensions/subagents/navigation.ts的SubagentStripWidget.render与extensions/shared/activity-status.ts的formatActivityStatus各自独立组装,导致:marker(○/❯)+statusSquare(■)。焦点指示和状态指示挤在一起,读起来像乱码。■与 dashboard 已经不一致:子代理 UI 打磨:列表贴合内容、详情页去掉横线带、命令执行成块 #36 之后 dashboard / takeover 用 spinner +✓/✗,strip 和 footer 状态还在用静态■。同一个运行中的子代理,在三个地方长得不一样。seal/glm-5.3,footer 也显示seal/glm-5.3。2%/1.0M,footer 是父会话的24%/1.0m。同屏两个 context 百分比、单位大小写还不同(1.0Mvs1.0m),用户无法判断哪个是哪个。↓ to manage,footer 说/subagents to view。0/1 agents措辞别扭:只有一个子代理时说0/1 agents,读者要想一下这是「0 个完成 / 共 1 个」。提议
一处信息只由一个地方负责。 strip 是可聚焦、紧贴编辑框的富展示,它赢;footer 状态退化成纯计数。
❯(accent),未聚焦时显示状态 glyph(running 用 子代理 UI 打磨:列表贴合内容、详情页去掉横线带、命令执行成块 #36 里transcript.ts导出的共享 spinner,settled 用✓/✗)。0/1 agents→ 总数为 1 时不显示计数(标题已经点名了它);多个时用1/3 done这类明确措辞。■换成同一个共享 spinner;当 strip 可见时去掉/subagents to view尾巴(strip 的↓ to manage已经说了怎么进),避免同屏两个入口提示。问题 2:dashboard overlay 紧贴背后正文
overlay 直接压在 transcript 上,盒子上边紧接上一条命令输出、hints 行紧接下一段正文,没有任何呼吸空间,看起来像是嵌进正文而不是浮在上面。
提议
给 dashboard overlay 上下留白(
overlayOptions.margin,或在组件render()首尾各加一空行),并在盒子与 hints 行之间留一行。takeover 视图不动——它本来就占满全屏、没有"挤"的问题,而且它的高度预算是精确的
rows - 1(#36),加 margin 会破坏该不变量。验收
0/1 agentsrows - 1