From af1be592cf94e8593079867874e9a164d6447c25 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 16 Mar 2026 08:49:04 -0700 Subject: [PATCH] fix: disable agent notification chime by default (#23124) The completion chime on `/agents` was enabled by default for new users (or when no localStorage preference existed). This changes the default to disabled, so users must explicitly opt in via the sound toggle button. ## Changes - `getChimeEnabled()` now returns `false` when no preference is stored (was `true`) - `catch` fallback also returns `false` (was `true`) - Updated tests to reflect the new default and explicitly enable the chime in `maybePlayChime` tests --- site/src/pages/AgentsPage/AgentDetail/useAgentChime.test.ts | 6 ++++-- site/src/pages/AgentsPage/AgentDetail/useAgentChime.ts | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/site/src/pages/AgentsPage/AgentDetail/useAgentChime.test.ts b/site/src/pages/AgentsPage/AgentDetail/useAgentChime.test.ts index cbc110fb6b..154e9a86cd 100644 --- a/site/src/pages/AgentsPage/AgentDetail/useAgentChime.test.ts +++ b/site/src/pages/AgentsPage/AgentDetail/useAgentChime.test.ts @@ -44,8 +44,8 @@ describe("getChimeEnabled / setChimeEnabled", () => { localStorage.clear(); }); - it("defaults to true when nothing is stored", () => { - expect(getChimeEnabled()).toBe(true); + it("defaults to false when nothing is stored", () => { + expect(getChimeEnabled()).toBe(false); }); it("returns true when stored as 'true'", () => { @@ -80,6 +80,8 @@ describe("maybePlayChime", () => { beforeEach(() => { vi.useFakeTimers(); localStorage.clear(); + // Explicitly enable the chime — the default is now disabled. + setChimeEnabled(true); mockLocks = new MockLockManager(); Object.defineProperty(navigator, "locks", { diff --git a/site/src/pages/AgentsPage/AgentDetail/useAgentChime.ts b/site/src/pages/AgentsPage/AgentDetail/useAgentChime.ts index c6eb20d0fa..1e365b0b71 100644 --- a/site/src/pages/AgentsPage/AgentDetail/useAgentChime.ts +++ b/site/src/pages/AgentsPage/AgentDetail/useAgentChime.ts @@ -3,10 +3,10 @@ const CHIME_PREFERENCE_KEY = "agents.chime-on-completion"; export function getChimeEnabled(): boolean { try { const stored = localStorage.getItem(CHIME_PREFERENCE_KEY); - // Default to enabled when no preference has been saved. - return stored === null ? true : stored === "true"; + // Default to disabled when no preference has been saved. + return stored === null ? false : stored === "true"; } catch { - return true; + return false; } }