[Task] Scheduling and recurring campaigns after real send lifecycle is proven #43

Closed
opened 2026-07-06 11:26:25 +02:00 by zemion · 1 comment
Owner

Imported from the consolidated GovOPlaN product backlog.

  • Source: /mnt/DATA/Nextcloud/ADD ideas UG/Products/govoplan/backlog.md
  • Line: 210
  • Section: Milestones > Milestone 12 - Later Integrations And Mail Capabilities
  • Source status: DEFERRED.

Imported backlog item:

- [ ] Scheduling and recurring campaigns after real send lifecycle is proven.
<!-- codex-backlog-fingerprint:d327a644ba89cc3c423d8a85 --> Imported from the consolidated GovOPlaN product backlog. - Source: `/mnt/DATA/Nextcloud/ADD ideas UG/Products/govoplan/backlog.md` - Line: `210` - Section: `Milestones > Milestone 12 - Later Integrations And Mail Capabilities` - Source status: `DEFERRED.` Imported backlog item: ```markdown - [ ] Scheduling and recurring campaigns after real send lifecycle is proven. ```
zemion added this to the Milestone 12 - Later Integrations And Mail Capabilities milestone 2026-07-06 13:19:29 +02:00
Author
Owner

Implemented in govoplan-campaign@c2efd6b as the production-safe scheduling baseline.

Campaign now supports durable once, daily, weekly, and monthly schedules with explicit timezone and validity bounds. A schedule seals its source campaign/version, copy choices, source configuration digest, policies, Mail-profile references, and shares; occurrence allocation is idempotent and recorded in a durable ledger. The runner handles due/coalesced occurrences, optimistic concurrency, pause/resume, pause-on-failure, next-run calculation, Celery dispatch, lifecycle/archive/delete constraints, audit evidence, and operator-facing schedule state.

A due occurrence prepares a fresh governed draft and never silently performs an external send. That distinction is intentional: automatic delivery needs a stronger at-most-once/recovery contract after transport acceptance. The bounded follow-up is recorded as #93 rather than hidden in this issue.

Schedule, lifecycle, migration, documentation, UI, and full Campaign tests pass; release migration topology and the consolidated product matrix are green.

Implemented in `govoplan-campaign@c2efd6b` as the production-safe scheduling baseline. Campaign now supports durable once, daily, weekly, and monthly schedules with explicit timezone and validity bounds. A schedule seals its source campaign/version, copy choices, source configuration digest, policies, Mail-profile references, and shares; occurrence allocation is idempotent and recorded in a durable ledger. The runner handles due/coalesced occurrences, optimistic concurrency, pause/resume, pause-on-failure, next-run calculation, Celery dispatch, lifecycle/archive/delete constraints, audit evidence, and operator-facing schedule state. A due occurrence prepares a fresh governed draft and never silently performs an external send. That distinction is intentional: automatic delivery needs a stronger at-most-once/recovery contract after transport acceptance. The bounded follow-up is recorded as #93 rather than hidden in this issue. Schedule, lifecycle, migration, documentation, UI, and full Campaign tests pass; release migration topology and the consolidated product matrix are green.
zemion removed the codex/needs-human
status
triage
labels 2026-08-07 15:09:44 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-campaign#43