Highlights
White label: your branding now applies everywhere
If your license includes the white label add-on, the branding you set in the Control Panel is now enforced across the whole instance. Spaces can no longer show their own colors or logo: polls, event pages and emails always use your instance colors, and polls display your logo icon and app name where a space logo used to appear. The branding controls in each space's settings are replaced with a note that branding is managed by the instance administrator. There is nothing to configure. (#3125, documentation: #3130)
See the updated White Labeling guide.
One-click unsubscribe for notification emails
Notification emails now carry List-Unsubscribe and List-Unsubscribe-Post headers, and each email includes a tokenized unsubscribe link for that poll. Mail clients that support one-click unsubscribe will show their native control, which also helps deliverability with providers that require it. (#3148)
Role permissions in the invite member dialog
Inviting a member now shows what each role can do before you send the invite. (#3116)
Upgrade notes
Important
SMTP credentials must be set together. If exactly one of SMTP_USER or SMTP_PWD is set, the server now refuses to start with a clear error instead of failing silently at send time. Set both for authenticated SMTP, or neither to connect without authentication. (#3064)
What's changed
Features
- ✨ Enforce instance branding when the white label add-on is active (#3125)
- ✨ Add List-Unsubscribe headers and tokenized per-poll unsubscribe (#3148)
- ✨ Show role permissions in the invite member dialog (#3116)
- ✨ Activity log: event vocabulary and writes from every poll mutation (#3076)
- ✨ Add cookie consent banner, shown only when analytics are configured (#3114)
Fixes
- 🐛 Require both
SMTP_USERandSMTP_PWDfor authenticated SMTP (#3064) - 🐛 Unshare single-member spaces wrongly marked shared by backfill (#3118)
- 🐛 Restore dark mode muted text hierarchy on popover surfaces (#3084)
- 🐛 Fix muted icon color on the invite member button (#3097)
- 💄 Comments: fix mobile footer overlap and polish the sheet (#3082)
- 💄 Dock the create poll action bar at the container bottom (#3081)
- 🔥 Remove comments phase-out notice and legacy badge (#3080)
Internal
- ♻️ Centralize deployment-mode behavior in capabilities and instance policy (#3147)
- ♻️ Remove deprecated Icon wrapper component (#3099)
- ♻️ Replace clsx + tailwind-merge with cn (#3150)
- 🔧 Add
DATABASE_URL_UNPOOLEDfallback for Prisma migrations (#3110) - 📝 Document space branding enforcement under the white label add-on (#3130)
- 🌐 Updated translations (#3061, #3072, #3075, #3091, #3093, #3101, #3120, #3124, #3140, #3149, #3151)
New contributors
- @pruthvi-builds made their first contribution in #3064
Full changelog: v4.13.1...v4.14.0