Skip to content

Dashboard: bring notification UX to parity with Lite (snoozable popup) #994

@erikdarlingdata

Description

@erikdarlingdata

Dashboard's NotificationService uses Windows native ShowBalloonTip for every alert — a tile you can only X out of, no inline action. Lite has a custom dark-themed SnoozeBalloon with Snooze 15m / 1h / 4h / Dismiss buttons that create temporary mute rules.

Dashboard already has the persistence layer (MuteRuleService, MuteRule, AlertMuteContext, ManageMuteRulesWindow) — it just doesn't surface mute rule creation from the popup itself.

Plan

  1. Port SnoozeBalloon control from Lite to Dashboard (preserve the close-callback fix from Fix Lite SnoozeBalloon dismiss/snooze buttons being no-ops #993)
  2. Theme integration (Dashboard uses Helpers.ThemeManager for light/dark)
  3. Add ShowSnoozableNotification to NotificationService
  4. Switch the 7 actionable alert sites in MainWindow.xaml.cs (Blocking, Deadlock, HighCpu, PoisonWait, LongRunningQuery, TempDbSpace, LongRunningJob)
  5. Wire MuteRuleService through NotificationService construction
  6. Keep non-actionable notifications (Server Restored / Server Offline / Connection Restored) as plain native toasts

Out of scope

  • Per-tick alert coalescing
  • Per-server cooldown (vs per-metric)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions