[Feature] Add a durable Campaign queue management UI #78

Closed
opened 2026-07-21 19:46:32 +02:00 by zemion · 1 comment
Owner

Problem / User Need

Campaign has durable recipient jobs and delivery controls, but no dedicated queue surface where an authorized operator can understand and manage queued work before and during execution.

Acceptance Criteria

  • An authorized operator can view queued, claimed/running, paused, retry-eligible, outcome-unknown, failed, and completed work without exposing worker tokens, filesystem paths, provider secrets, or raw system internals.
  • The queue shows campaign/version/job identity, counts, timestamps, current state, mode, and the next permitted action.
  • Pause/resume, retry, reconciliation, and cancellation controls appear only where the backend transition is valid; unavailable controls remain visible and disabled with an explanation.
  • Row actions use the shared icon-only table-action group in the standard order; summaries and durable failures remain attached to the affected queue item.
  • Permission, tenant isolation, pagination/large-run behavior, stale updates, and leave/return behavior are tested.
  • The configured-system handbook links to the queue task only for actors with the required scope.
  • #62 owns explicit synchronous/asynchronous mode and delivery progress.
  • #6 owns the post-run operator report surface.
  • This issue owns queue discovery and queue lifecycle controls, not transport execution semantics.
## Problem / User Need Campaign has durable recipient jobs and delivery controls, but no dedicated queue surface where an authorized operator can understand and manage queued work before and during execution. ## Acceptance Criteria - An authorized operator can view queued, claimed/running, paused, retry-eligible, outcome-unknown, failed, and completed work without exposing worker tokens, filesystem paths, provider secrets, or raw system internals. - The queue shows campaign/version/job identity, counts, timestamps, current state, mode, and the next permitted action. - Pause/resume, retry, reconciliation, and cancellation controls appear only where the backend transition is valid; unavailable controls remain visible and disabled with an explanation. - Row actions use the shared icon-only table-action group in the standard order; summaries and durable failures remain attached to the affected queue item. - Permission, tenant isolation, pagination/large-run behavior, stale updates, and leave/return behavior are tested. - The configured-system handbook links to the queue task only for actors with the required scope. ## Related Work - #62 owns explicit synchronous/asynchronous mode and delivery progress. - #6 owns the post-run operator report surface. - This issue owns queue discovery and queue lifecycle controls, not transport execution semantics.
Author
Owner

Codex State: done

Summary

  • The operator queue now exposes campaign/version/job identity and preserves historical active work when a newer draft becomes current.
  • It uses fixed permission-aware actions, version-scoped retry/queue/reconcile/report paths, explicit campaign-wide lifecycle controls, server-paged job evidence, sanitized results, non-overlapping state counts, and bounded refresh with durable URL selection.

Verification

  • npm run test:operator-queue (8 model tests plus structure pass)
  • Campaign focused operator/backend acceptance: 72 tests plus 3 subtests pass
  • Linked Core WebUI production build and structural i18n audit (pass)
## Codex State: done ### Summary - The operator queue now exposes campaign/version/job identity and preserves historical active work when a newer draft becomes current. - It uses fixed permission-aware actions, version-scoped retry/queue/reconcile/report paths, explicit campaign-wide lifecycle controls, server-paged job evidence, sanitized results, non-overlapping state counts, and bounded refresh with durable URL selection. ### Verification - `npm run test:operator-queue (8 model tests plus structure pass)` - `Campaign focused operator/backend acceptance: 72 tests plus 3 subtests pass` - `Linked Core WebUI production build and structural i18n audit (pass)`
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-campaign#78
No description provided.