From b1adf5bb189219756f028142a9a8129d2db9eadf Mon Sep 17 00:00:00 2001 From: scotttong Date: Mon, 6 Jul 2026 16:43:23 -0700 Subject: [PATCH] feat(ui): align ActivityCharts status hues with canonical --status-task-* tokens (B5) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VISIBLE CHANGE, staged for contact-sheet review (DECISION-SHEET.md B5, DESIGN.md principle 5 — one status vocabulary everywhere): the per-status chart series in ActivityCharts.tsx re-point at the canonical status system instead of an independent palette — todo #3b82f6 blue -> amber (--status-task-todo #f59e0b), in_progress #8b5cf6 violet -> blue (#2563eb), in_review #a855f7 -> #7c3aed, done #10b981 -> #22c55e, blocked #ef4444 -> #dc2626, cancelled #6b7280 -> #a8aeb2. 'backlog' keeps --project-none per the B5 ruling; priority series, success-rate tints, and the unknown-status fallback are not status hues and are untouched. The three now-orphaned tokens (--hex-3b82f6/8b5cf6/a855f7) are deleted; stale status references scrubbed from surviving token comments. Visual snapshots intentionally NOT updated — diffs exported for user review. Co-Authored-By: Claude Fable 5 --- ui/src/components/ActivityCharts.tsx | 19 +++++++++++++------ ui/src/index.css | 9 +++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/ui/src/components/ActivityCharts.tsx b/ui/src/components/ActivityCharts.tsx index 1463eb0209..d207cf2864 100644 --- a/ui/src/components/ActivityCharts.tsx +++ b/ui/src/components/ActivityCharts.tsx @@ -174,13 +174,20 @@ export function PriorityChart({ issues }: { issues: { priority: string; createdA ); } +// DECISION-SHEET.md B5: chart status colors re-pointed at the canonical +// --status-task-* system (DESIGN.md principle 5 — an operator learns one +// status vocabulary; badge, row, chart, and log agree). Previously an +// independent palette (todo blue, in_progress violet, etc.). `backlog` +// deliberately keeps --project-none (pre-B5, per user ruling); the +// priority series and success-rate tints below are not status hues and +// are left alone. const statusColors: Record = { - todo: "var(--hex-3b82f6)", - in_progress: "var(--hex-8b5cf6)", - in_review: "var(--hex-a855f7)", - done: "var(--hex-10b981)", - blocked: "var(--hex-ef4444)", - cancelled: "var(--hex-6b7280)", + todo: "var(--status-task-todo)", + in_progress: "var(--status-task-in_progress)", + in_review: "var(--status-task-in_review)", + done: "var(--status-task-done)", + blocked: "var(--status-task-blocked)", + cancelled: "var(--status-task-cancelled)", backlog: "var(--project-none)", }; diff --git a/ui/src/index.css b/ui/src/index.css index 513b04a63f..277b654292 100644 --- a/ui/src/index.css +++ b/ui/src/index.css @@ -1455,14 +1455,11 @@ span.paperclip-mention-chip[data-mention-kind="external-object"] { --hex-facc15: #facc15; /* OrgChart.tsx agent status dot — 'paused' / 'idle' (shared value). */ --hex-f87171: #f87171; /* OrgChart.tsx agent status dot — 'error'. */ --hex-a3a3a3: #a3a3a3; /* OrgChart.tsx agent status dot — 'terminated' + defaultDotColor fallback. */ - --hex-ef4444: #ef4444; /* ActivityCharts.tsx — priority 'critical' + status 'blocked' (shared value); also the <0.5 success-rate bar tint. */ + --hex-ef4444: #ef4444; /* ActivityCharts.tsx — priority 'critical'; also the <0.5 success-rate bar tint. (Chart STATUS hues re-pointed at --status-task-* in DECISION-SHEET.md B5; priority/success series stay independent.) */ --hex-f97316: #f97316; /* ActivityCharts.tsx — priority 'high'. */ --hex-eab308: #eab308; /* ActivityCharts.tsx — priority 'medium'; also the 0.5-0.8 success-rate bar tint. */ - --hex-6b7280: #6b7280; /* ActivityCharts.tsx — priority 'low' + status 'cancelled' + statusColors fallback (shared value). */ - --hex-3b82f6: #3b82f6; /* ActivityCharts.tsx — status 'todo' (independent from --status-task-todo which is #f59e0b). */ - --hex-8b5cf6: #8b5cf6; /* ActivityCharts.tsx — status 'in_progress' (independent from --status-task-in_progress which is #2563eb — flagged inconsistency, TOKEN-AUDIT.md 1.2). */ - --hex-a855f7: #a855f7; /* ActivityCharts.tsx — status 'in_review'. */ - --hex-10b981: #10b981; /* ActivityCharts.tsx — status 'done'; also the >=0.8 success-rate bar tint. */ + --hex-6b7280: #6b7280; /* ActivityCharts.tsx — priority 'low' + unknown-status statusColors fallback. */ + --hex-10b981: #10b981; /* ActivityCharts.tsx — >=0.8 success-rate bar tint. */ --project-none: #64748b; /* Semantic rename of --hex-64748b (DECISION-SHEET.md A3, value unchanged). 'No project assigned' muted-slate fallback (TOKEN-AUDIT.md 1.3) across Routines/MarkdownEditor/RoutineRunVariablesDialog/RoutineList/IssueColumns/editable-sections; also ActivityCharts.tsx status 'backlog'. */ --project-seed: #6366f1; /* Semantic rename of --hex-6366f1 (DECISION-SHEET.md A3, value unchanged). Project-color-fallback indigo seed default (ProjectDetail/PipelineSettings/IssueProperties/NewIssueDialog) — new-project-color-picker-seed family per TOKEN-AUDIT.md 1.3. */ --liveness-blue: #2563eb; /* DECISION-SHEET.md A6: IssueChatThread.tsx human-message 'liveness blue' bubble (PAP-95 rev 5). Same value as --status-task-in_progress by coincidence, decoupled on purpose so a future status-hue change doesn't drag the chat bubble along. */