Area: Account & identity (audit phase 1) · Surface: Account & identity — /notifications/preferences · Dimension: existing-feature-improve · Severity: minor
Circle, Skool and Discourse all let a member choose their digest cadence (off / daily / weekly, and in Discourse a specific day/time). Our preferences page collapses this to one on/off switch, and the weekly digest fires on a fixed 'Mondays 08:00 UTC' schedule with no per-user control. Users who want a gentler weekly summary instead of daily noise (or vice-versa) cannot express that, which drives the binary 'unsubscribe entirely' outcome competitors avoid.
Evidence
NotificationController.php:593 builds `$fields = ['digest_email' => !empty($_POST['digest_email']) ? 1 : 0]` — one boolean. The template has exactly one checkbox: notification-preferences.php:129 `name="digest_email"`. Two independent digests exist in code (bin/send-email-digest.php = daily; bin/announce-feat-60-weekly-digest.php:18 'Weekly digest … Mondays 08:00 UTC') but the user cannot choose between them — cadence is hardcoded server-side and the single toggle does not map to a frequency.
Suggested fix. Replace the single `digest_email` boolean with a `digest_frequency` enum ('off','daily','weekly') in notification_preferences, render it as a select on /notifications/preferences, and have send-email-digest.php / the weekly worker filter on the chosen cadence.
Filed by the automated tenant-app audit (phase 1) and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus