Block a user
[Feature] Implement campaign ownership transfer as a two-step process
Codex State: needs-info
Summary
- The current PUT owner endpoint changes ownership immediately; it should be replaced, not extended, by the generic workflow tracked in govoplan-core#276. -…
[Feature] Add optimistic concurrency for campaign saves
Codex State: ready
Summary
- Use the platform OCC contract in govoplan-core#277: monotonic aggregate revisions and strong If-Match preconditions first, then conservative three-way…
[Feature] Add file property filters including files without campaign links
Codex State: done
Summary
- Added server-side campaign usage and audit-relevance property filters with exact totals and cursor fingerprints.
- The Files UI retrieves every filtered cursor…
[Feature] Make report page the operator source of truth after a run
Codex State: done
Summary
- Campaign Reports is the post-run operator surface with exact server totals, filters, pagination, outcome shortcuts, exports, job detail, retries, and…
[Task] Inject SMTP temporary failure, SMTP permanent failure, connection drop, IMAP append failure, and worker restart/interruption
Codex State: done
Summary
- The maintained Campaign acceptance runner covers connection loss, explicit temporary response, permanent authentication rejection, partial recipient refusal,…
[Task] Display attachment/ZIP evidence and frozen file versions clearly
Codex State: done
Summary
- Job detail now displays frozen attachment-rule and ZIP output evidence, exact managed file/asset/source revisions, SHA-256 checksums, byte sizes, and the…
[Feature] Make report page the operator source of truth after a run
[Feature] Add file property filters including files without campaign links
[Task] Inject SMTP temporary failure, SMTP permanent failure, connection drop, IMAP append failure, and worker restart/interruption
[Task] Display attachment/ZIP evidence and frozen file versions clearly
[Feature] Search recipient data across hidden address fields
[Feature] Search recipient data across hidden address fields
Codex State: done
Summary
- Recipient filtering searches From, Reply-To, every To, CC, and BCC value across the complete client result before pagination.
- Rows whose primary To value did…
[Task] Display send attempts, IMAP attempts, retry/reconciliation history, and unknown/partial outcomes clearly
Codex State: done
Summary
- Job detail displays SMTP, Postbox, and IMAP attempt histories; unknown and partial outcomes are first-class report statuses.
- Retry and operator reconciliation…
[Task] Display send attempts, IMAP attempts, retry/reconciliation history, and unknown/partial outcomes clearly
[Task] Add pagination and windowing for large address and calendar views
[Task] Add pagination and windowing for large address and calendar views
Codex State: done
Summary
- Addresses now exposes exact totals and offset windows; its WebUI uses 50-row pages with list-aware server filtering.
- Calendar continuous mode starts with ten…
[Feature] Establish platform optimistic concurrency and conflict-reconciliation contract
[Feature] Establish generic ownership transfer and recovery-authority workflow