Skip to content

Give "ready" a distinct online color (sky blue) - #154

Merged
TraderSamwise merged 2 commits into
masterfrom
chore/tui-next-9
Jun 16, 2026
Merged

Give "ready" a distinct online color (sky blue)#154
TraderSamwise merged 2 commits into
masterfrom
chore/tui-next-9

Conversation

@TraderSamwise

@TraderSamwise TraderSamwise commented Jun 16, 2026

Copy link
Copy Markdown
Owner

What

ready and offline agents both rendered dim gray in the dashboard — only the dot glyph ( vs ) distinguished an online-but-idle agent from a stopped one. This makes online vs not-online obvious.

Changes (Tier 2 / resting states only)

  • New ready tone in theme.ts: sky blue (xterm-256 75 / tmux colour75).
  • STATE_TONE.ready: mutedready. Propagates to the ready dot, status-cell text, exposé READY pill, worktree summary count, and card border rank.
  • Exposé border tint for ready: teal-green → blue (75/67) to match.
  • idle now freshness hint: yellow → ready-blue (label unchanged). Yellow is now reserved for the needs-you pills.
  • done / idle / offline and all Tier 1 pills are untouched.

Why blue

Green is already used by done + idle; cyan means actively working; yellow means needs-you. Blue is the only open hue and carries the right "online / standby" connotation.

Tests

Regression test in theme.test.ts locks statusTone("ready") !== statusTone("offline") so they can't collapse to one gray again. Full suite: 1339 passing.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style
    • Updated the visual styling for the “ready” status across the dashboard, including stronger status tone rendering and pill/fallback text hint tones.
    • Adjusted the underlying color/escape mappings used to represent the “ready” state.
  • Tests
    • Extended theme tests to validate the “ready” tone’s exact ANSI/tmux styling and ensure correct width/styling consistency for the new status token.

The ready and offline states both rendered dim gray (STATE_TONE shared
"muted"), so online-but-idle agents were indistinguishable from stopped
ones — only the dot glyph (● vs ○) differed.

Add a dedicated sky-blue `ready` tone (xterm-256 75 / tmux colour75) and
point STATE_TONE.ready at it, so the ready dot, status text, exposé pill,
exposé border, worktree summary count, and card border tone all read as a
clearly online state. The "idle now" freshness hint moves from the
needs-you yellow to the same ready-blue. offline stays dim gray.

Regression test locks ready != offline so they can't collapse to one gray.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app Ready Ready Preview, Comment Jun 16, 2026 4:44am

@TraderSamwise

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 08387bdd-b78f-47ab-94a2-cfe868afd2fb

📥 Commits

Reviewing files that changed from the base of the PR and between e993ef5 and 8f528af.

📒 Files selected for processing (1)
  • src/tui/render/theme.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/tui/render/theme.test.ts

📝 Walkthrough

Walkthrough

Introduces a dedicated "ready" token to the Tone union type and wires it into the ANSI SGR map, tmux color map, and STATE_TONE mapping. Updates STATE_BORDER 256-color values in tmux expose, applies the new tone across four dashboard renderer call sites (sessionStateRank, semanticCountParts, sessionStatusCell, agentRow), and adds tests for the new tone.

Changes

Ready Tone Integration

Layer / File(s) Summary
Tone type, ANSI/tmux color maps, and theme tests
src/tui/render/theme.ts, src/tui/render/theme.test.ts
Tone union gains "ready". TONE_SGR, TMUX_COLOR, and STATE_TONE are extended with matching entries. Tests verify statusTone("ready") uses the distinct online color, not the offline dim-gray escape, and "ready" is added to the width-stability tone iteration.
tmux STATE_BORDER ready color update
src/tmux/expose.ts
STATE_BORDER.ready on/off 256-color SGR values are replaced with new values aligned to the ready tone palette.
Dashboard renderers applying ready tone
src/tui/screens/dashboard-renderers.ts
sessionStateRank, semanticCountParts, sessionStatusCell, and the agentRow "idle now" trailing hint all switch from muted/attn to the ready tone.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • TraderSamwise/aimux#135: Modifies theme.ts tone/SGR mappings and dashboard-renderers.ts tone logic that this PR directly extends with the "ready" token.
  • TraderSamwise/aimux#153: Adds STATE_BORDER entries for ready/offline in expose.ts—the same map whose ready values this PR retunes.
  • TraderSamwise/aimux#128: Updates the "idle now" hint logic in dashboard-renderers.ts whose tone this PR changes from attn to ready.

Poem

🐇 A new tone was missing, so "ready" I named,
In ANSI and tmux, its colors were claimed.
The dashboard now glows with a hue all its own,
No more muted gray where the ready has shone.
Hop hop, little status — your color's a go! 🎨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: introducing a distinct sky blue color for the 'ready' state, which is the primary focus across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/tui-next-9

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/tui/render/theme.test.ts (1)

175-188: ⚡ Quick win

Add "ready" to the StatusKind width verification test.

The statusDot width test iterates all StatusKind values but is missing "ready". To ensure complete coverage of the new status kind, add it to the iteration.

✅ Proposed fix
     for (const kind of [
       "working",
+      "ready",
       "idle",
       "offline",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/tui/render/theme.test.ts` around lines 175 - 188, The test for statusDot
width verification in the test function is missing the "ready" StatusKind value
from the iteration array. Add "ready" to the array of StatusKind values (the
const array with "working", "idle", "offline", "needs", "error", "done",
"blocked", "service", and "serviceOff") to ensure complete coverage of all
status kinds when verifying the width with visibleWidth(statusDot(kind)).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/tui/render/theme.ts`:
- Line 20: TypeScript source files in multiple locations have been modified
(src/tui/render/theme.ts at L20 for Tone type extension,
src/tui/render/theme.test.ts at L15 for test changes, src/tmux/expose.ts at L145
for STATE_BORDER update, and src/tui/screens/dashboard-renderers.ts at L182 for
renderer tone changes) but the compiled distribution in the dist/ directory has
not been updated. Run yarn build from the project root to recompile all
TypeScript sources and ensure the dist/ directory reflects the changes made to
the src/ files so that runtime behavior matches the updated code.

---

Nitpick comments:
In `@src/tui/render/theme.test.ts`:
- Around line 175-188: The test for statusDot width verification in the test
function is missing the "ready" StatusKind value from the iteration array. Add
"ready" to the array of StatusKind values (the const array with "working",
"idle", "offline", "needs", "error", "done", "blocked", "service", and
"serviceOff") to ensure complete coverage of all status kinds when verifying the
width with visibleWidth(statusDot(kind)).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 61f465c0-3ae0-4e22-a3aa-ab12814d3e3c

📥 Commits

Reviewing files that changed from the base of the PR and between 1b7a88d and e993ef5.

📒 Files selected for processing (4)
  • src/tmux/expose.ts
  • src/tui/render/theme.test.ts
  • src/tui/render/theme.ts
  • src/tui/screens/dashboard-renderers.ts

Comment thread src/tui/render/theme.ts
Addresses CodeRabbit: the statusDot width-coverage loop was missing the
new "ready" kind.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TraderSamwise
TraderSamwise merged commit 0681a78 into master Jun 16, 2026
3 checks passed
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.

1 participant