feat(desktop): no success checks on calls and subagents, unboxed subagent rows with their harness mark, plain trimmed reasoning

Merged
DA
8d ago
+144-48

Dean asked for three things in the shared transcript rows (Work tab, coding agent tabs, subagent tabs):

No success check marks

  • A tool call, or a subagent, that finished OK has no trailing mark now. The 16px seat stays in place but empty, so the row doesn't shift as the answer lands, and it still reads "Completed" to a screen reader (aria-label). Tool groups never had a mark.
  • Loading indicators are unchanged: the running spinner, the shimmer, and the "Working…" line. So is the red × on a failed call or subagent, along with its error line.

Subagent rows look like tool call rows

  • No border or box: 28px tall, 4px inset, the same hover fill as a tool row (--raised-strong = bg-secondary), and the focus ring unchanged. The error line under a failed subagent lines up with the job text (ml-7), as a tool row's body does.
  • The robot glyph is replaced by the harness mark of the model the subagent runs on: Claude Code's Clawd for Anthropic, Codex's cloud for OpenAI (the #2012 assets). The provider comes from the catalog entry for the model shown in the row's model pair. If the catalog doesn't list the model, the row keeps the robot, still lit while it runs.
  • Coding-agent delegations are the only subagents whose model is known. Luke's own planning workers (Work tab) send no model on the wire, so their rows, their tab icon, and the + list's subagent rows stay the robot. Putting the workers' model on the wire is a possible follow-up. Tab icons keep the robot, lit while running, because that colour is the tab's only running cue (the orchestrator agreed).

Thinking blocks

  • At render the reasoning loses the blank lines before its first line and any trailing whitespace (indentation is kept), so it no longer ends on a blank line (whitespace-pre-wrap used to draw the model's trailing newlines). The body's bottom margin is gone too.
  • No quote styling: the left rule and its pl-3 indent are gone. The text is plain and muted, indented to the row's text column (ml-7), the same as a tool call's body.

Dead styles deleted: CheckIcon in tool.tsx, the subagent row's border, padding and 8px radius, and the reasoning body's border-l-2 border-border pl-3 mb-1.

Tests

Each fails without the change:

  • agent-tab.test.ts: a finished call's seat is empty but labelled "Completed"; a running call has its spinner; a failed call or delegation draws lucide-x. A delegation on a listed Anthropic model leads with Clawd and no robot; one whose model isn't listed keeps the lit robot.
  • transcript-blocks.test.ts: TranscriptSubagent leads with Clawd, the Codex image, or the robot, depending on the catalog; an opened reasoning ends on its last word, on the Work tab and an agent's tab.
  • The missing border is CSS, not structure, so the screenshots show it rather than a test.

Screenshots

Rendered from the real components and the app's stylesheet in headless Chrome on Linux (not the Mac app; fonts differ).

Light, before / after:
light

Dark, before / after:
dark

Thinking block, before / after:
reasoning light
reasoning dark

Validation

  • ./scripts/check.sh exits 0.
  • CI could not verify the Mac UI, and ./scripts/verify.sh was not run. This was built on a Linux cloud VM; LUKE-159 is the manual Mac pass.

🤖 Generated with Claude Code