Area: Account (re-run) (audit p1r) · Surface: Notification preferences (NotificationController@updatePreferences), PushController · Dimension: existing-feature-improve · Severity: minor
Intercom, Slack, and Circle all let users set quiet hours (no push/email between e.g. 10pm-8am in their timezone) and snooze notifications temporarily. With push notifications shipped (FEAT-18, PushController) but no quiet-hours, a member in a busy community gets system toasts at 3am, which is the fastest way to get them to disable notifications entirely. The platform already stores enough (the proposed timezone, push subscriptions) to gate delivery by a per-user window. This upgrades an existing, shipped feature (push) from a blunt on/off to a respectful, retention-positive one.
Evidence
NotificationController::updatePreferences only sets binary per-group channel flags (_inapp/_email/_push) and digest_email. `grep -rni 'quiet hours|do not disturb|snooze'` over src/ and templates/ returns nothing. PushController (subscribe/test/etc.) has no scheduling. There is no time-window or temporary-mute control anywhere.
Suggested fix. Add quiet_hours_start/end (and reuse user timezone) to notification_preferences; in the push/email fan-out, defer or drop deliveries that fall inside the window. Add a 'Snooze notifications for 1h/8h/until tomorrow' quick action on the bell dropdown.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus