feat(v0.10.5): Notifications complètes — F551-F555
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 09:02:21 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
2026-03-10 09:09:32 +00:00
|
|
|
<title>New releases from artists you follow — Veza</title>
|
feat(v0.10.5): Notifications complètes — F551-F555
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 09:02:21 +00:00
|
|
|
</head>
|
|
|
|
|
<body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f4f4f4;">
|
|
|
|
|
<div style="max-width: 600px; margin: 20px auto; padding: 20px; background-color: #ffffff; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">
|
2026-03-10 09:09:32 +00:00
|
|
|
<h1 style="color: #4CAF50; margin-top: 0;">New releases from artists you follow</h1>
|
feat(v0.10.5): Notifications complètes — F551-F555
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 09:02:21 +00:00
|
|
|
<p>Hello {{.Username}},</p>
|
2026-03-10 09:09:32 +00:00
|
|
|
<p>Here are the new tracks from artists you follow this week:</p>
|
feat(v0.10.5): Notifications complètes — F551-F555
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 09:02:21 +00:00
|
|
|
<ul style="list-style: none; padding: 0; margin: 20px 0;">
|
2026-03-10 09:09:32 +00:00
|
|
|
{{range .Tracks}}
|
feat(v0.10.5): Notifications complètes — F551-F555
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 09:02:21 +00:00
|
|
|
<li style="padding: 12px; margin-bottom: 8px; background-color: #f9f9f9; border-radius: 4px; border-left: 4px solid #4CAF50;">
|
2026-03-10 09:09:32 +00:00
|
|
|
<strong>{{.Artist}}</strong> — {{.Title}}
|
|
|
|
|
<br><a href="{{$.BaseURL}}{{.Link}}" style="color: #4CAF50; font-size: 12px;">Listen →</a>
|
feat(v0.10.5): Notifications complètes — F551-F555
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 09:02:21 +00:00
|
|
|
</li>
|
|
|
|
|
{{end}}
|
|
|
|
|
</ul>
|
|
|
|
|
<div style="text-align: center; margin: 30px 0;">
|
2026-03-10 09:09:32 +00:00
|
|
|
<a href="{{.FeedURL}}" style="background-color: #4CAF50; color: white; padding: 12px 24px; text-decoration: none; border-radius: 4px; display: inline-block; font-weight: bold;">
|
|
|
|
|
View your feed
|
feat(v0.10.5): Notifications complètes — F551-F555
F555: Backend pagination/filter GetNotifications (type, page, limit) + frontend pagination
F551: WebSocket real-time — backend inject chat hub, send on CreateNotification; frontend useChat invalidates
F553: Quiet hours — migration 132, CreateNotification skips push/WS, UI in PushPreferencesSection
F554: Notification grouping — migration 133, group_key/actor_count for like/comment, UI format
F552: Weekly digest — migration 134, NotificationDigestWorker, email template, prefs UI
Acceptance: no gamification notif; defaults unchanged; individual toggles for marketing
2026-03-10 09:02:21 +00:00
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<hr style="border: none; border-top: 1px solid #eee; margin: 20px 0;">
|
|
|
|
|
<p style="color: #999; font-size: 11px; text-align: center;">
|
|
|
|
|
You received this because you enabled weekly digest. Manage preferences in your account settings.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|