Skip to content

feat(work): show agent executing vs idle on Workbench terminal tabs - #132

Merged
danielss-dev merged 1 commit into
mainfrom
developements/workbench-agent-terminal-status-4f5b
Sep 21, 2026
Merged

danielss-dev merged 1 commit into
mainfrom
developements/workbench-agent-terminal-status-4f5b

Conversation

@danielss-dev

@danielss-dev danielss-dev commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Linear

DAN-75 — Workbench terminal status should show agent running vs turn finished.

Indicator colors

Meaning When Color Token
Done Clean exit (exited code 0), or a live non-agent shell (running) green var(--add)
Waiting for input Recognized agent CLI, turn finished, PTY still running blue var(--info) (fixed hue, not the user accent)
Working Recognized agent mid-turn, or terminal starting yellow / orange var(--warn) (pulse on agent busy only)
Failed error, or non-zero exit red var(--del)

Dormant / not started stays gray (var(--text-dim)). Starting stays --warn rather than introducing a fifth color (same as working).

Agent waiting is not green. Pulse is on working amber only.

aria-label: Agent working / Agent waiting for input / Terminal done / Terminal failed.

Tab strip and open-tabs menu share terminalIndicatorClass().

What

When a live PTY is hosting Claude Code or Codex CLI, OSC titles already on the PTY stream overlay working vs waiting. Unknown CLIs and plain shells stay lifecycle-only. A false working signal is treated as worse than remaining on the lifecycle color.

Design (reuse, not new IPC)

Claude Code and Codex CLI already write OSC 0/2 titles (braille spinner while a turn runs; / idle marker for Claude; project-only remainder for Codex). Strand parses them in consumeTerminalAgentOutput. OSC 9;4 is honored only after the session is recognized. TERM_PROGRAM=Strand is unchanged.

Verification

  • pnpm --filter ./ui exec tsc --noEmit — pass
  • pnpm --filter ./ui test — 556 tests pass

Live Claude Code / Codex CLI E2E is not available on this Linux agent VM.

Smoke on Mac (Daniels)

  1. Plain shell: gray → green while alive; clean exit → green (done); non-zero / error → red; starting still amber.
  2. claude / codex: mid-turn → amber (may pulse); back at prompt → blue.
  3. Tab strip and overflow menu match. Screen reader labels: working / waiting for input.
Open in Web Open in Cursor 

Workbench terminal dots stay lifecycle-only for ordinary shells. For
Claude Code and Codex CLI, parse OSC titles already on the PTY stream
so a running tab pulses while a turn executes and returns to steady
green when the agent is idle.

Co-authored-by: Daniels <danielss-dev@users.noreply.github.com>
@danielss-dev
danielss-dev marked this pull request as ready for review September 21, 2026 11:06
@danielss-dev
danielss-dev merged commit 530900c into main Sep 21, 2026
4 checks passed
@danielss-dev
danielss-dev deleted the developements/workbench-agent-terminal-status-4f5b branch September 21, 2026 11:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants