Forums Feature Requests Thread

[Enhancement] Account: Email digest is a single on/off toggle — no daily vs weekly cadence choice

Patrick Bass · Jun 6 · 11 · 1 Locked
[Normal Priority] [Feature Enhancement] [Deployed to Production]
🚀 OP Jun 6, 2026 5:11pm

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

🚀 Jun 7, 2026 10:41am

Shipped and deployed to production. Commit 892ad0ba4c.

Replaced the binary email digest toggle with a four-way email_digest_frequency select (Off / Instant / Daily digest / Weekly digest). Migration backfills existing opt-in rows to 'weekly'. The send-email-digest cron respects the new per-user frequency.

Closed as: deployed.


Patrick Bass
@mobieus

Log in or register to reply to this thread.