feat(ui): brand marks for worker delegation cards #47

Merged
chad merged 1 commit from feat/harness-marks into main 2026-11-06 18:46:09 -05:00
Collaborator

Port sweatshop's harness brand marks into tansweat, so each worker delegation card shows the worker's own logo instead of the generic hammer icon.

What

  • New components/harness-marks.tsx — ClaudeMark (simple-icons "claude", CC0) and CodexMark (hand-drawn nested-hexagon knot), both drawn in currentColor so the caller owns the colour. WorkerMark({tool, tint?}) switches on the delegation tool name from lib/agents.ts: Claude Code → Claude mark tinted with its brand orange (text-brand-claude, tint={false} for plain currentColor), Codex → the hexagon outline, Coder → BotIcon, child thread → MessagesSquareIcon, unknown → null. Marks and doc-comment style ported from sweatshop's harness-logo.tsx.
  • styles.css — --brand-claude: #d97757 added once to :root (brand colour, not a theme token; same in light and dark, .dark inherits) and mapped into the @theme inline block.
  • delegation-part.tsx — summary row's HammerIcon → WorkerMark tool={call.name}. Claude keeps its tint; everything else inherits the row's text colour.

One decision to flag: the old hammer icon was text-primary. The new marks inherit the row colour instead (Claude excepted), which reads quieter and keeps brand colours meaningful — happy to restore text-primary on the call site if the brighter look was intentional.

Verification

  • pnpm typecheck and pnpm test (1290 passed, 246 skipped — skips pre-existing) pass.
  • pnpm build output CSS confirmed to contain .text-brand-claude{color:var(--brand-claude)} with the var on :root.
  • SVG paths verified byte-identical to sweatshop's component.
  • Rendered all four marks (light + dark) in the real DelegationPart via a temporary scratch page on the branch — Claude keeps its brand orange in dark mode.

Screenshots

Before (live main, settled Codex card):

Before

After (all four worker marks, light):

After, light

After (dark — Claude mark keeps its brand orange):

After, dark

Port sweatshop's harness brand marks into tansweat, so each worker delegation card shows the worker's own logo instead of the generic hammer icon. ## What - **New `components/harness-marks.tsx`** — `ClaudeMark` (simple-icons "claude", CC0) and `CodexMark` (hand-drawn nested-hexagon knot), both drawn in `currentColor` so the caller owns the colour. `WorkerMark({tool, tint?})` switches on the delegation tool name from `lib/agents.ts`: Claude Code → Claude mark tinted with its brand orange (`text-brand-claude`, `tint={false}` for plain currentColor), Codex → the hexagon outline, Coder → `BotIcon`, child thread → `MessagesSquareIcon`, unknown → null. Marks and doc-comment style ported from sweatshop's `harness-logo.tsx`. - **`styles.css`** — `--brand-claude: #d97757` added once to `:root` (brand colour, not a theme token; same in light and dark, `.dark` inherits) and mapped into the `@theme inline` block. - **`delegation-part.tsx`** — summary row's `HammerIcon` → `WorkerMark tool={call.name}`. Claude keeps its tint; everything else inherits the row's text colour. One decision to flag: the old hammer icon was `text-primary`. The new marks inherit the row colour instead (Claude excepted), which reads quieter and keeps brand colours meaningful — happy to restore `text-primary` on the call site if the brighter look was intentional. ## Verification - `pnpm typecheck` and `pnpm test` (1290 passed, 246 skipped — skips pre-existing) pass. - `pnpm build` output CSS confirmed to contain `.text-brand-claude{color:var(--brand-claude)}` with the var on `:root`. - SVG paths verified byte-identical to sweatshop's component. - Rendered all four marks (light + dark) in the real `DelegationPart` via a temporary scratch page on the branch — Claude keeps its brand orange in dark mode. ## Screenshots Before (live main, settled Codex card): ![Before](./before-codex.png) After (all four worker marks, light): ![After, light](./after-marks-light.png) After (dark — Claude mark keeps its brand orange): ![After, dark](./after-marks-dark.png)
feat(ui): brand marks for worker delegation cards
All checks were successful
build / build-and-test (pull_request) Successful in 2m43s
build / build-sandbox-image (pull_request) Successful in 1s
build / deploy (pull_request) Has been skipped
481d3e2b26
chad merged commit ad87104ddf into main 2026-11-06 18:46:09 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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!47
No description provided.