diff --git a/src/dashboard.test.ts b/src/dashboard.test.ts index 09f1473..59ded39 100644 --- a/src/dashboard.test.ts +++ b/src/dashboard.test.ts @@ -58,10 +58,10 @@ describe("getDashboardHtml", () => { assert.ok(html.includes("claude-waiting-")); }); - it("only notifies for interactive tools, not Bash", () => { - assert.ok(html.includes("NOTIFY_TOOLS")); - assert.ok(html.includes("NOTIFY_TOOLS[s.lastEvent]")); - assert.ok(html.includes("AskUserQuestion")); + it("notifies for all waiting status transitions", () => { + assert.ok(html.includes("s.status === 'waiting'")); + assert.ok(html.includes("previousStatuses[s.sessionId] !== 'waiting'")); + assert.ok(!html.includes("NOTIFY_TOOLS")); }); it("contains Stop and Restart buttons", () => { diff --git a/src/dashboard.ts b/src/dashboard.ts index d909e83..f12b1ce 100644 --- a/src/dashboard.ts +++ b/src/dashboard.ts @@ -516,8 +516,6 @@ export function getDashboardHtml(): string { var STATUS_LABELS = { running: 'Running', waiting: 'Waiting for input', done: 'Done' }; var STATUS_ORDER = { running: 0, waiting: 1, done: 2 }; - var NOTIFY_TOOLS = { ExitPlanMode: 1, AskUserQuestion: 1, Write: 1, Edit: 1, NotebookEdit: 1 }; - function timeAgo(ts) { var diff = Math.floor((Date.now() - ts) / 1000); if (diff < 5) return 'just now'; @@ -583,7 +581,7 @@ export function getDashboardHtml(): string { } if (notificationsEnabled && 'Notification' in window && Notification.permission === 'granted') { newSessions.forEach(function(s) { - if (s.status === 'waiting' && previousStatuses[s.sessionId] !== 'waiting' && NOTIFY_TOOLS[s.lastEvent]) { + if (s.status === 'waiting' && previousStatuses[s.sessionId] !== 'waiting') { new Notification('Claude Code - Waiting for input', { body: folderName(s.cwd), tag: 'claude-waiting-' + s.sessionId