Trek_CN/server/src
Maurice d7a71c0572 feat(notifications): reminders for todos with upcoming due dates
Todos already support a due_date field but nothing notifies the user
when a deadline is approaching — you'd only remember if you happened
to look at the Lists tab. This wires a reminder into the existing
notification pipeline so due-date todos behave like trip-start
reminders.

Details:
- New `todo_due` event type alongside trip_reminder; all four channels
  (in-app, email, webhook, ntfy) supported and toggleable per user in
  Settings > Notifications.
- New daily scheduler task (9 AM local TZ) queries unchecked todos
  whose due_date is within the next 3 days. Each todo gets at most
  one reminder per 24 hours, tracked via a new todo_items.reminded_at
  column (migration 116).
- If the todo has an assigned user, only that user is reminded; if
  not, every member of the trip gets the notification.
- Strings added in all 15 UI languages and for all notification
  carriers.
- Gated by app_settings.notify_todo_due (default on) so admins can
  disable it globally.
2026-04-20 17:31:25 +02:00
..
db feat(notifications): reminders for todos with upcoming due dates 2026-04-20 17:31:25 +02:00
demo v2.6.2 — TREK Rebrand, OSM Enrichment, File Management, Hotel Bookings & Bug Fixes 2026-03-28 16:38:08 +01:00
mcp fix(mcp): fix z.record() Zod v4 API compat in transport tool schemas 2026-04-20 07:57:40 +02:00
middleware feat(auth): add email-based password reset with MFA + session invalidation 2026-04-20 14:06:42 +02:00
routes feat(auth): add email-based password reset with MFA + session invalidation 2026-04-20 14:06:42 +02:00
services feat(notifications): reminders for todos with upcoming due dates 2026-04-20 17:31:25 +02:00
systemNotices feat(system-notices): apply version gates to v3 upgrade notices 2026-04-17 20:04:54 +02:00
utils feat: enhance Synology Photos integration with OTP, SSL skip, and better UX 2026-04-11 18:25:42 +02:00
addons.ts feat(notices): add system notice infrastructure 2026-04-16 14:36:33 +02:00
app.ts fix(mcp): add RFC 9728 PRM, RFC 8707 audience binding, and collab sub-feature gating 2026-04-20 07:34:38 +02:00
config.ts fix(login): address review feedback on language dropdown PR 2026-04-15 03:04:25 +02:00
index.ts feat(notifications): reminders for todos with upcoming due dates 2026-04-20 17:31:25 +02:00
scheduler.ts feat(notifications): reminders for todos with upcoming due dates 2026-04-20 17:31:25 +02:00
types.ts feat: add multi-day transport reservations with dedicated modal and route segmentation 2026-04-18 06:10:33 +02:00
websocket.ts Add comprehensive backend test suite (#339) 2026-04-03 13:17:53 +02:00