feat(ui): status colour tokens and status pills #48

Merged
chad merged 6 commits from feat/status-tokens into main 2026-11-06 20:31:15 -05:00
Collaborator

Second paint-job PR (after #47's harness marks): sweatshop's status-colour token contract and StatusPill, so app TSX uses semantic tokens only — no raw Tailwind palette classes.

Commit 1 — feat(ui): status colour tokens (success/warning/info)

  • styles.css: --success/--warning/--info in :root (Tailwind green-600/amber-600/blue-600 oklch, verbatim from the installed tailwindcss@4.3.3 theme) and .dark at the 400 lightness; mapped in @theme inline so text-success, bg-success/10, border-warning/40 (color-mix alpha) all work.
  • Mechanical sweep of 25 components: every text-green-*/bg-green-*→success, text/blue-*→info, yellow/amber-*→warning, prompt-diff del→destructive, including the border-*-500/40 frames the original grep missed. No behaviour change — a rename, not a redesign.

Commit 2 — feat(ui): status pills on delegation and tool cards

  • New components/status-pill.tsx (ported from sweatshop's harness-card): rounded-full, mono 10px, leading dot pulsing only when running; tones running|ok|fail|neutral on the new tokens.
  • Delegation card: trailing spinner/clock/alert/check icons → pills — running→"working", pending→"starting", waiting/queued→"waiting"/"queued", failed→"failed", done→ok "done", settled→muted "done" (its real outcome follows in chat).
  • Tool card: trailing icons → pills ("running"/"failed"/"done").
  • STATUS.md: one sentence on the tool-cards bullet.

Verification

  • pnpm typecheck, pnpm test (1290 passed, 246 pre-existing skips) pass.
  • Build CSS confirmed: .text-success{color:var(--success)}, .bg-success\/10{…color-mix…}, tokens on :root + .dark.
  • Broadened sweep grep (every palette colour, any utility prefix, outside components/ui/): zero matches.
  • All seven delegation states + three tool states rendered via a temporary scratch page, light + dark — screenshots below. "Before" is live main (with #47's marks), "after" the branch.

Screenshots

Before (live main — icons for status):

Before

After — every delegation state and tool cards (light):

After, light

After (dark — tokens shift to their 400-lightness pairs):

After, dark

Second paint-job PR (after #47's harness marks): sweatshop's status-colour token contract and StatusPill, so app TSX uses semantic tokens only — no raw Tailwind palette classes. ## Commit 1 — `feat(ui): status colour tokens (success/warning/info)` - `styles.css`: `--success`/`--warning`/`--info` in `:root` (Tailwind green-600/amber-600/blue-600 oklch, verbatim from the installed tailwindcss@4.3.3 theme) and `.dark` at the 400 lightness; mapped in `@theme inline` so `text-success`, `bg-success/10`, `border-warning/40` (color-mix alpha) all work. - Mechanical sweep of 25 components: every `text-green-*`/`bg-green-*`→`success`, `text/blue-*`→`info`, `yellow/amber-*`→`warning`, prompt-diff del→`destructive`, including the `border-*-500/40` frames the original grep missed. No behaviour change — a rename, not a redesign. ## Commit 2 — `feat(ui): status pills on delegation and tool cards` - New `components/status-pill.tsx` (ported from sweatshop's harness-card): rounded-full, mono 10px, leading dot pulsing only when running; tones `running|ok|fail|neutral` on the new tokens. - Delegation card: trailing spinner/clock/alert/check icons → pills — running→"working", pending→"starting", waiting/queued→"waiting"/"queued", failed→"failed", done→ok "done", settled→muted "done" (its real outcome follows in chat). - Tool card: trailing icons → pills ("running"/"failed"/"done"). - STATUS.md: one sentence on the tool-cards bullet. ## Verification - `pnpm typecheck`, `pnpm test` (1290 passed, 246 pre-existing skips) pass. - Build CSS confirmed: `.text-success{color:var(--success)}`, `.bg-success\/10{…color-mix…}`, tokens on `:root` + `.dark`. - Broadened sweep grep (every palette colour, any utility prefix, outside `components/ui/`): **zero** matches. - All seven delegation states + three tool states rendered via a temporary scratch page, light + dark — screenshots below. "Before" is live main (with #47's marks), "after" the branch. ## Screenshots Before (live main — icons for status): ![Before](./before-pills.png) After — every delegation state and tool cards (light): ![After, light](./after-pills-light.png) After (dark — tokens shift to their 400-lightness pairs): ![After, dark](./after-pills-dark.png)
feat(ui): status pills on delegation and tool cards
All checks were successful
build / build-and-test (pull_request) Successful in 2m40s
build / build-sandbox-image (pull_request) Successful in 1s
build / deploy (pull_request) Has been skipped
a31a41b6c0
fix(ui): drop the status pill's leading dot
All checks were successful
build / build-and-test (pull_request) Successful in 2m41s
build / build-sandbox-image (pull_request) Successful in 1s
build / deploy (pull_request) Has been skipped
c3b95d9934
Workers are the delegation calls in a thread's saved transcript, paired
with their results; liveness from the snapshot's agent operations. Fetched
only when a row is expanded. start_thread children no longer nest as flat
rows; a worker row links to its delegation card by hash.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
fix(sidebar): keep worker marks in their own colour, status as its own glyph
All checks were successful
build / build-and-test (pull_request) Successful in 2m40s
build / build-sandbox-image (pull_request) Successful in 1s
build / deploy (pull_request) Has been skipped
bee0c0eb88
Merge pull request 'feat(sidebar): expandable worker tree under each thread' (#49) from feat/sidebar-worker-tree into feat/status-tokens
All checks were successful
build / build-and-test (pull_request) Successful in 1m16s
build / build-sandbox-image (pull_request) Successful in 1s
build / deploy (pull_request) Has been skipped
856100ef9e
Reviewed-on: #49
chad merged commit 2058ca8262 into main 2026-11-06 20:31:15 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chad/tansweat!48
No description provided.