Skip to content

[codex] add configurable notification system for item state changes and agent errors#89

Draft
DorianZheng wants to merge 1 commit into
mainfrom
notification/notification-system-alerts
Draft

[codex] add configurable notification system for item state changes and agent errors#89
DorianZheng wants to merge 1 commit into
mainfrom
notification/notification-system-alerts

Conversation

@DorianZheng

Copy link
Copy Markdown
Collaborator

What changed

  • added a main-process notification module with configurable triggers, delivery channels, do-not-disturb handling, per-item/per-agent throttling, and a rolling history log
  • wired item review and acceptance transitions plus agent task failures into the notification manager, and exposed notification settings/history over Electron IPC and preload
  • added a new Notifications settings panel with trigger toggles, channel controls, Telegram chat ID input, quiet hours, and expandable history
  • added focused tests for the notification manager, preload bridge, settings section registry, and notifications panel

Why

Dune did not have a configurable desktop notification system for important workflow and agent events, so item lane changes and runtime failures could be missed.

User impact

Users can now control which workflow and agent events generate alerts, keep notifications quiet during configured hours, and review the last 50 delivered notifications from Settings.

Notes

  • Telegram delivery is implemented as a graceful no-op until TelegramBridge exposes a generic outbound host notification API.
  • The budget_warning trigger is present in settings and the notification manager, but there is not yet an existing budget-warning signal in the codebase to emit it.

Validation

  • pnpm typecheck
  • pnpm exec vitest run src/electron/preload.test.ts src/electron/main/notifications/notification-manager.test.ts src/renderer/features/settings/config/settings-sections.test.ts src/renderer/features/settings/notifications/NotificationsSettingsPanel.test.tsx
  • pnpm exec eslint src/electron/main/notifications/*.ts src/renderer/features/settings/notifications/NotificationsSettingsPanel.tsx src/renderer/features/settings/notifications/NotificationsSettingsPanel.test.tsx src/electron/preload.ts src/electron/preload.test.ts src/shared/electron/ipc-channels.ts src/shared/electron/desktop-bridge.ts src/renderer/features/settings/config/settings-sections.ts src/renderer/features/settings/config/settings-sections.test.ts src/renderer/features/settings/types.ts src/renderer/app/testing/setup.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant