[Feature] Show worker and queue readiness, activity, and stale state in Ops #3

Closed
opened 2026-07-31 01:22:04 +02:00 by zemion · 2 comments
Owner

Moved from Core #27. Ops owns operator-facing runtime status; Core and worker backends expose provider-neutral health data.

Outcome

Let an operator distinguish disabled, unconfigured, starting, healthy, idle, busy, degraded, stale, and unreachable worker/queue states.

Acceptance criteria

  • The read-only Ops surface shows configured backend, enabled state, active workers, last heartbeat/age, queue depth, active/reserved work, failures, and stale thresholds when each metric is available.
  • Unknown or unsupported metrics are shown as unavailable, never inferred as healthy.
  • Development and production profiles apply explicit severity and guidance without treating intentionally disabled workers as failures.
  • Queue and worker providers are optional and registered through Core contracts; Ops does not import Celery, Redis, or module job implementations.
  • Status polling is bounded, pauses when hidden, avoids duplicate requests, and has focused partial-module and stale-heartbeat tests.
  • Mutating worker/update controls remain in separate, explicitly authorized Ops work.
> Moved from [Core #27](https://git.add-ideas.de/GovOPlaN/govoplan-core/issues/27). Ops owns operator-facing runtime status; Core and worker backends expose provider-neutral health data. ## Outcome Let an operator distinguish disabled, unconfigured, starting, healthy, idle, busy, degraded, stale, and unreachable worker/queue states. ## Acceptance criteria - The read-only Ops surface shows configured backend, enabled state, active workers, last heartbeat/age, queue depth, active/reserved work, failures, and stale thresholds when each metric is available. - Unknown or unsupported metrics are shown as unavailable, never inferred as healthy. - Development and production profiles apply explicit severity and guidance without treating intentionally disabled workers as failures. - Queue and worker providers are optional and registered through Core contracts; Ops does not import Celery, Redis, or module job implementations. - Status polling is bounded, pauses when hidden, avoids duplicate requests, and has focused partial-module and stale-heartbeat tests. - Mutating worker/update controls remain in separate, explicitly authorized Ops work.
Author
Owner

Moved here from Core #27; the source issue is closed to keep Ops as the canonical operator-facing owner.

<!-- codex-routing-2026-07-31:core-27 --> Moved here from [Core #27](https://git.add-ideas.de/GovOPlaN/govoplan-core/issues/27); the source issue is closed to keep Ops as the canonical operator-facing owner.
Author
Owner

Implemented and verified.

  • Added a Core-owned, provider-neutral runtime-work status contract and the default Celery/Redis adapter (govoplan-core 4cf2bfe).
  • Added tenant-safe provider registration/validation and explicit disabled, unconfigured, starting, healthy, idle, busy, degraded, stale, and unreachable states.
  • Ops now reports configured backend, enablement, workers, heartbeat/age, stale threshold, queue depth, active/reserved work, and failures without interpreting unknown values as healthy (govoplan-ops 6ecb94c).
  • Local development/test disabled state remains informational; disabled runtime work is critical outside local environments.
  • Added bounded single-flight 15-second polling which pauses while the page is hidden and refreshes on visibility return; mutating controls remain separate.
  • Added static operator/admin documentation and coverage for partial data, stale/unreachable providers, caching, redaction, and environment-specific severity.

Verification: focused Core/Ops tests and Ruff; Ops production WebUI build and runtime-status TypeScript test; global manifest and contract checks; full tools/checks/check-focused.sh, including all 57 WebUI module permutations, full-product bundle budgets, and 7 Playwright conformance scenarios.

Implemented and verified. - Added a Core-owned, provider-neutral runtime-work status contract and the default Celery/Redis adapter (`govoplan-core` 4cf2bfe). - Added tenant-safe provider registration/validation and explicit disabled, unconfigured, starting, healthy, idle, busy, degraded, stale, and unreachable states. - Ops now reports configured backend, enablement, workers, heartbeat/age, stale threshold, queue depth, active/reserved work, and failures without interpreting unknown values as healthy (`govoplan-ops` 6ecb94c). - Local development/test disabled state remains informational; disabled runtime work is critical outside local environments. - Added bounded single-flight 15-second polling which pauses while the page is hidden and refreshes on visibility return; mutating controls remain separate. - Added static operator/admin documentation and coverage for partial data, stale/unreachable providers, caching, redaction, and environment-specific severity. Verification: focused Core/Ops tests and Ruff; Ops production WebUI build and runtime-status TypeScript test; global manifest and contract checks; full `tools/checks/check-focused.sh`, including all 57 WebUI module permutations, full-product bundle budgets, and 7 Playwright conformance scenarios.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-ops#3