What's Changed
This release brings notification controls, UI improvements, and several bug fixes.
✨ New Features
- 🔔 Notification settings — Configure global notification preferences (new responses, new comments) from your account settings. (#2254)
- 🔕 Per-poll notification muting — Mute notifications for individual polls using the bell icon in the poll admin view, replacing the previous watcher-based system. (#2268)
- 🎉 Success dialog after poll creation — After creating a poll, you'll see a shareable invite link with copy-to-clipboard before being taken to the poll page. (#2281)
- 👤 User avatars in participant list — Profile pictures now display alongside participants in poll views for better visual recognition. (#2284)
- 🌍 Improved time zone selector — Replaced the modal-based selector with an inline searchable combobox showing city names and UTC offsets. (#2261)
- 🚨 Improved error page — Errors now show a user-friendly page with localized messaging and quick navigation links (home, create poll, support, GitHub). (#2220)
- 📧
SMTP_TLS_SERVERNAMEenv var — Allows explicit SNI configuration for SMTP servers hosting multiple certificates. (#2298)
🐛 Bug Fixes
- 📅 Poll description missing from scheduled events — Poll descriptions are now correctly passed through when booking a poll as a calendar event. (#2202)
- 💥 Crash on deleted poll — Accessing a poll that no longer exists now shows a proper 404 page instead of crashing. (#2218)
- 🔑 Password reset redirect — Authenticated users are no longer incorrectly redirected away from the password reset screen. (#2245)
- 🗑️ Soft-deleted participants in finalize query — Removed participants are now excluded from event creation and notification flows. (#2277)
- 🗓️ Date grouping across years — Dates from different years (e.g. Apr 2026 vs Apr 2027) are now grouped correctly. (#2279)
- 🏠 Crash when user has no spaces — Fixed an edge case where the app crashed for users with no spaces. (#2286)
- 🕐 Timezone change broken for guests — Unauthenticated users can now change their timezone correctly. (#2289)
Full Changelog: v4.7.4...v4.8.0