feat(scheduled): recurring scheduled messages (LC-485) #465
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/LC-485-recurring-scheduled"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Recurring scheduled messages (LC-485) - schedule a message to repeat daily / every weekday / weekly. Drives standups, reminders, digests. Built on the existing one-shot scheduled-message pipeline (LC-62).
How
scheduled_messages.repeat(migration 0070):none(default) /daily/weekly/weekdays.scheduled::recurrence: computes the next occurrence in the stored UTC format, advancing past now so a dispatcher downtime backlog catches up to the next future slot instead of re-firing the past;weekdaysskips Sat/Sun. Unit-tested.CreateForm->insert_scheduled_with_repeat, server-validated) and a "Repeats ..." badge on the/scheduledpending list. i18n en + es.Retention / rate-limit
Delivered recurring messages are ordinary
messagesrows, so retention sweeps them automatically. Per the existing one-shot design, the deliver path does not re-check the per-minute rate limit (rate-limit is enforced at schedule time only); recurring occurrences inherit that posture.Tests
Dispatcher: a delivered recurring row enqueues exactly one future-dated next occurrence (same repeat kind), the next tick is a no-op, and a one-shot leaves nothing pending. Routes: the repeat field stores, defaults to none, invalid values 400. Plus recurrence unit tests.
just check,just test,just test-saasall green.Verify
just verifybuilds the release binary clean; boot fails only on the missing SSO env (environmental, as in prior PRs).