diff --git a/src/workspaces/officerdev/src/apps/ChatHistory/ChatDetailPanel.tsx b/src/workspaces/officerdev/src/apps/ChatHistory/ChatDetailPanel.tsx
index 33e369ec..ba8b5ea7 100644
--- a/src/workspaces/officerdev/src/apps/ChatHistory/ChatDetailPanel.tsx
+++ b/src/workspaces/officerdev/src/apps/ChatHistory/ChatDetailPanel.tsx
@@ -135,7 +135,7 @@ function DetailBar({
) : isGenerating ? (
) : (
-
+
)}
{!isConnected ? 'Disconnected' : isGenerating ? 'Working...' : ''}
{isConnected && onDisconnect && (
diff --git a/src/workspaces/officerdev/src/apps/ChatHistory/NotifyMenu.tsx b/src/workspaces/officerdev/src/apps/ChatHistory/NotifyMenu.tsx
index 2026696e..3017c2ed 100644
--- a/src/workspaces/officerdev/src/apps/ChatHistory/NotifyMenu.tsx
+++ b/src/workspaces/officerdev/src/apps/ChatHistory/NotifyMenu.tsx
@@ -13,16 +13,16 @@ const OPTIONS: { value: NotifyPreference; label: string }[] = [
/**
* The bell says what it will do without being opened.
*
- * Green is `green-500` on purpose rather than `text-success` — it has to be the SAME green as the
- * connection dot two elements away, and a semantic token that drifted from it would leave two greens in
- * one header meaning two different things.
+ * `text-success`, and the connection dot two elements away is `bg-success` — the same token, so they
+ * cannot drift into two greens in one header meaning two different things. Both were the raw `green-500`
+ * until 2026-08-19; the token is `#16a34a` where the palette value was `#22c55e`.
*
* Amber for `input_needed` because it is the conditional setting: it will speak, but only sometimes.
* Muted for `none`, which is also the only state that draws a struck-through bell — colour alone is not
* a state anyone should have to learn.
*/
const BELL_TONE: Record = {
- every_turn: 'text-green-500',
+ every_turn: 'text-success',
input_needed: 'text-warning',
none: 'text-muted-foreground',
};