Skip to content

TUI: formalize the status-bar color grammar + surface repo/worktree state #5437

Description

@Hmbown

Origin

External design review of the full-screen TUI (2026-08-16). The reviewer's
conclusion after seeing the whole interface: the colors are not "too many" —
they are a color vocabulary, and it works. Verdict on the current palette:
keep it (maintainer agrees — operate purple, Full Access orange, etc. stay).

What the review asks for

  1. Formalize the color grammar and refuse to violate it as the UI expands.
    The language the interface already speaks:

    Color Meaning
    GREEN outcome / success / model output
    ORANGE cognition / consequential action / elevated capability
    CYAN currently active / orchestration
    PURPLE user-selected mode / policy
    BLUE identity / navigation
    GRAY passive metadata / historical state
    RED actual failure / destructive warning ONLY

    Reserve true red so it stays powerful when it appears (tool denied,
    destructive confirmation, crashed agent, context failure). Concretely: a
    docs/design/ note naming the grammar + a single palette/style module the
    widgets share, so new UI can't introduce an eighth semantic or spend red on
    something non-failing.

  2. Repository state is the missing piece of the runtime header. The top bar
    reads provider · model · mode · effort · permissions · fs scope · ctx · version — for a coding agent, repo · branch* (branch + dirtiness) tells
    you where the agent is operating and is arguably more valuable than the
    provider company. Suggested placement: left of the model segment or as the
    first telemetry segment. (Worktree name matters here too — see the fleet
    lanes.)

  3. Optional polish, low priority: group effort with mode (operate:max)
    for scannability. Not retracted by the reviewer but minor; the full-screen
    read made the current operate · max acceptable.

Acceptance

  • Color grammar documented in docs/design/ and enforced by a shared
    palette module (no widget invents its own semantic color).
  • Repo/worktree segment renders in the status bar (branch + dirty marker),
    updates on branch switch and worktree operations.
  • No regression to bar density at narrow widths (it must degrade, not wrap).
  • Screenshot evidence at wide + narrow widths in the PR.

Not in scope: changing existing color assignments (explicitly keep), adding
new orange semantics (explicitly refuse).

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions