Skip to content

feat: expose campaign status and cancellation - #2

Open
Matthew-Selvam wants to merge 15 commits into
mainfrom
feat/campaigns
Open

Matthew-Selvam wants to merge 15 commits into
mainfrom
feat/campaigns

Conversation

@Matthew-Selvam

Copy link
Copy Markdown
Owner

Summary\n- add campaign status and cancellation API endpoints\n- add CLI and MCP campaign controls\n- prevent canceled rows from retry paths and expose canceled status in the UI\n- document the timezone comparison fix and campaign behavior\n\n## Verification\n- ........................................................................ [ 42%]

........................................................................ [ 84%]
........................... [100%] — 169 passed\n- \n- \n\nFixes campaign queue follow-up from the existing queue backend work.

'21:00+05:30' (15:30Z) sorts lexicographically AFTER '16:00+00:00', so a
schedule written in any non-UTC offset either never fired or fired early.
Parse both sides to epoch before comparing; unparseable scheduled_for is
treated as due so the worker surfaces it instead of dead-ending the row.
A /dispatch to N platforms fans out under one unit_id but the rows were
only visible individually. cancel_campaign flips every still-queued row
of a campaign to 'canceled' (publishing/published rows are never
touched): one guarded UPDATE..RETURNING on Postgres, status-checked
read-modify-write on Redis and JSONL. QueueProtocol extended.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant