Skip to content

feat(app): unify activity status colors — blue running, amber attention - #379

Closed
aarontrowbridge wants to merge 1 commit into
local/amicodefrom
amico/issue-378-activity-colors
Closed

aarontrowbridge wants to merge 1 commit into
local/amicodefrom
amico/issue-378-activity-colors

Conversation

@aarontrowbridge

Copy link
Copy Markdown
Member

Closes #378

What

Every activity/status surface now draws from one semantic token layer (--activity-* in design-polish.css, aliasing the theme's --v2-state-*), with canonical associations:

Role Light Dark Means
running v2 border-info #3250df v2 fg-info #7698fd in progress — shared reduced-motion-aware pulse
attention #d97706 #fbbf24 waiting on you: permission, question, auth, expired, drift, stalled
success v2 border-success v2 fg-success done-unread, healthy, finished
error v2 border-danger v2 fg-danger failed
idle v2 icon-muted v2 icon-muted done-seen, aborted, stopped

Yellow never encodes a state. Amico presence (harmonic dot, lane, wave, mark) is untouched.

Notable behavior changes

  • Sessions waiting on permission/question get a new amber attention tab state (precedence error > attention > running > unread > idle) instead of green "done"; the sidebar now uses the same derivation.
  • Sidebar working spinners use the running color, not the agent identity tint (which included diff red/green).
  • Run window + run view agree: solving blue, stalled amber, aborted grey. Status words stay neutral ink beside a colored dot (amber text fails 4.5:1 on light).
  • Status popover: needs-auth is amber (was the yellow accent fill); pending checks pulse blue; MCP pending now has a color.
  • Shared ActivityDot (role=img + aria-label) replaces color-only dots in connections, MCP/LSP, server, vault rows.
  • Removed undefined-token/hex fallbacks (developer tools, banners, review preview, lineage ledger), dead TONE_DOT and .amc-livedot/.amc-entity-dot, and two duplicate pulse keyframes. Widget frame accent default #FFF676 → #FFE614.
  • Vocabulary documented in packages/app/CONTEXT.md.

Verification (run by the director in the worktree)

  • app bun test --conditions=solid --preload ./happydom.ts ./src: 1195 pass / 0 fail (session-tab-status 9/9, 4 red before)
  • ui bun test src: 509 pass / 0 fail (new activity.test.ts 16)
  • session-ui bun test --conditions=browser src: 422 pass / 0 fail
  • opencode amicode-widget-frame.test.ts: 5 pass
  • bun typecheck clean in app, ui, session-ui, opencode
  • Computed dot contrast ≥ 3:1 in both themes (tightest: light amber on layer-01 ≈ 3.05)

Not yet done: eyeball check of both themes in the running app — please look at the tab strip, sidebar, status popover, and run view before merging.

One activity vocabulary (--activity-{idle,running,attention,success,error}
plus -soft fills) aliasing the v2 state tokens replaces the raw-hex
--status-* tokens. Session tab status gains an attention state
(error > attention > running > unread > idle) shared by the tab strip,
sessions dropdown, home and sidebar. Run, connection, MCP, LSP, server,
vault and devtools dots map onto the same roles, carry accessible
labels, and share one reduced-motion-aware pulse. Yellow no longer
encodes any state.

Refs #378
@aarontrowbridge
aarontrowbridge marked this pull request as ready for review October 25, 2026 14:30
@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 32660d24-16d0-4235-a183-18bfd793e9da
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

aarontrowbridge added a commit to harmoniqs/amicode that referenced this pull request Oct 25, 2026
…on (port of harmoniqs/opencode#379, #378)

Ported from the fork branch amico/issue-378-activity-colors (df38ec003c) into
the app-bundle overlay. The fork-side edits to run-view/device-view/
calibration-view are dropped: amicode removed those surfaces (#1818, pinned by
research-surfaces-absence.test). status-popover-body keeps the engine toggle's
engine-state dot and uses ActivityDot for real MCP servers.

app/ui typecheck clean; app unit suite matches the lane baseline (24
pre-existing failures, zero new); activity + tab-status + widget-frame tests
green.
@aarontrowbridge

Copy link
Copy Markdown
Member Author

Ported into amicode's app-bundle overlay on the 0.3.9 live-test lane (harmoniqs/amicode#1871, commit f2114a16) and deployed to the fleet. The run-view/device-view/calibration-view hunks were dropped because amicode removed those surfaces (#1818). The red typecheck and preview checks here are runner-environment failures (tree-sitter-powershell install script; Playwright doesn't support ubuntu26.04), not the change. The fork is archived for engine development, so this PR can close once #1871 merges.

@aarontrowbridge

Copy link
Copy Markdown
Member Author

Ported into amicode and shipped in v0.3.9 (harmoniqs/amicode#1871).

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.

feat(app): unify activity status colors — blue running, amber attention

1 participant