From e8cc1f1cebd494440d5ff33316dcb6336e73ad58 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Mon, 8 Jun 2026 13:44:34 +0200 Subject: [PATCH] =?UTF-8?q?turn=20indicator=20=E2=86=92=20Claude=20coral-o?= =?UTF-8?q?range=20brand=20accent=20(T-273)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The in-flight "Pondering…" turn indicator used muted grey; switch it to the existing claudeAccent (#d97757, Anthropic's brand coral) — the indicator is main-thread Claude running, which the accent is reserved for. Co-Authored-By: Claude Opus 4.8 (1M context) --- .pql/changelog/ticket_history/2026-06.sql | 1 + .pql/changelog/tickets/2026-06.sql | 1 + CHANGELOG.md | 2 ++ lib/builtin/claude/src/running_indicator.dart | 7 ++++--- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.pql/changelog/ticket_history/2026-06.sql b/.pql/changelog/ticket_history/2026-06.sql index ea09e709..2b94c67f 100644 --- a/.pql/changelog/ticket_history/2026-06.sql +++ b/.pql/changelog/ticket_history/2026-06.sql @@ -831,3 +831,4 @@ Bisected (each a 45s-timeout repro, all on this box): - The full openFolder tap flow hangs even when project validation is stubbed to a synchronous, pure-Dart `.git` walk (no subprocess) AND `runAsync` is removed — so the wedge is not solely the git subprocess; something in the booted-app + extensions + open-folder command path holds a native port that teardown waits on forever. Quarantined with `skip:` so the suite/gate stays green. Real fix: find the leaked native async resource (likely a Process/Isolate/FakeDaemonClient port reachable from the open-folder command or app boot under the test harness) and ensure it''s drained/cancelled before teardown — or drive the "no git repo" assertion without booting the resource. Then remove the skip.', NULL, '2026-06-08 11:29:33', '2026-06-08 11:29:33', '2026-06-08 11:29:33', NULL, '3a03d00854f80ca2f8320875fe37e558', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-273', 'status', 'ready', 'done', NULL, '2026-06-08 11:44:27', '2026-06-08 11:44:27', '2026-06-08 11:44:27', NULL, 'd4dc7a1144ebf85630815e55f59ff99b', 1) ON CONFLICT(hash) DO NOTHING; diff --git a/.pql/changelog/tickets/2026-06.sql b/.pql/changelog/tickets/2026-06.sql index 1f2ff708..bbda5969 100644 --- a/.pql/changelog/tickets/2026-06.sql +++ b/.pql/changelog/tickets/2026-06.sql @@ -2037,3 +2037,4 @@ Bisected (each a 45s-timeout repro, all on this box): - The full openFolder tap flow hangs even when project validation is stubbed to a synchronous, pure-Dart `.git` walk (no subprocess) AND `runAsync` is removed — so the wedge is not solely the git subprocess; something in the booted-app + extensions + open-folder command path holds a native port that teardown waits on forever. Quarantined with `skip:` so the suite/gate stays green. Real fix: find the leaked native async resource (likely a Process/Isolate/FakeDaemonClient port reachable from the open-folder command or app boot under the test harness) and ensure it''s drained/cancelled before teardown — or drive the "no git repo" assertion without booting the resource. Then remove the skip.', 'backlog', 'high', NULL, NULL, NULL, '2026-06-08 11:29:22', '2026-06-08 11:29:33', NULL, 'e06d0c0f0c06621f763068de5343cd10', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash); +INSERT INTO tickets (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-273', 'task', 'T-276', 'turn indicator font color → Claude accent orange', 'Change the animated running/turn indicator''s text color to the Claude accent orange (the brand accent), instead of its current color. Lives in lib/builtin/claude/src/running_indicator.dart (the rotating-verb turn indicator, T-255). Use the appropriate accent token from SurfaceTokens (ui-design skill: confirm which token maps to Claude accent orange) — no hardcoded hex. Update/adjust any golden or widget test that asserts the indicator color.', 'done', 'low', NULL, NULL, NULL, '2026-06-07 17:39:10', '2026-06-08 11:44:27', NULL, 'a9eafaf6e7956b2ab0d1dc384bacd8cd', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash); diff --git a/CHANGELOG.md b/CHANGELOG.md index a8c7d405..ca0ceaa4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -144,6 +144,8 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit. ### Changed +- The in-flight **turn indicator** ("Pondering…") now renders in Claude's + coral-orange brand accent instead of muted grey. (T-273) - A **sub-agent's prose and thinking** are now attributed to the **`agent`** (a muted stripe), not the main-thread coral **`claude`** — so a sub-agent's output is no longer presented as if the main Claude said it. Main-thread items diff --git a/lib/builtin/claude/src/running_indicator.dart b/lib/builtin/claude/src/running_indicator.dart index 0c133a65..69a14cbc 100644 --- a/lib/builtin/claude/src/running_indicator.dart +++ b/lib/builtin/claude/src/running_indicator.dart @@ -1,4 +1,4 @@ -/// In-flight turn indicator (T-255): a muted, animated label shown next to the +/// In-flight turn indicator (T-255): a Claude-accent-coloured, animated label shown next to the /// Stop button while a Claude turn runs. Animated ellipsis (`Pondering` → /// `Pondering.` → `..` → `...`) plus a verb that rotates every few seconds. /// @@ -10,6 +10,7 @@ /// pumps; reduced-motion shows a static verb and the a11y label stays stable. library; +import 'package:clide/builtin/claude/src/conversation_view.dart' show claudeAccent; import 'package:clide/widgets/widgets.dart'; import 'package:flutter/widgets.dart'; @@ -89,14 +90,14 @@ class _RunningIndicatorState extends State with SingleTickerPr label: 'Claude is running', child: ExcludeSemantics( child: reduced - ? ClideText('${_verbs.first}…', muted: true, fontSize: clideFontMeta) + ? ClideText('${_verbs.first}…', color: claudeAccent, fontSize: clideFontMeta) : AnimatedBuilder( animation: _c, builder: (ctx, _) { final elapsed = _c.value * _periodSeconds; final dots = '.' * (elapsed.floor() % 4); final word = _verbs[(elapsed ~/ _secondsPerWord) % _verbs.length]; - return ClideText('$word$dots', muted: true, fontSize: clideFontMeta); + return ClideText('$word$dots', color: claudeAccent, fontSize: clideFontMeta); }, ), ),