Story: Service lifecycle controller

Table of Contents

This page documents a story in Sprint 16. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

ores.controller component for managing service definitions + instances + lifecycle events; service dashboard polish; normalise all services to NATS-based hosting with unified heartbeat; menu restructure.

Status

Field Value
State DONE
Parent sprint Sprint 16
Now Completed 2026-04-08.
Waiting on None.
Next None.
Last touched 2026-04-08

Continued from: Compute grid observability (sprint 15). Sprint 15 added the RAG service dashboard. This sprint adds the controller component that manages service definitions + instances + lifecycle events.

Acceptance

  • All tasks complete; PR-by-PR breakdown in git log.

Tasks

Task State Start End Description
Add service lifecycle controller and dashboard enhancements DONE 2026-05-20 2026-04-08 ores.controller component for managing service definitions + instances + lifecycle events; process supervisor with dependency-ordered service launch; cert management; HTTP/Wt/wrapper definitions; service dashboard UX overhaul with badge status + Stop/Restart controls; graceful shutdown of child processes.
Fix startup races, terminal bleed, analytics service setup DONE 2026-05-20 2026-04-08 ores.analytics.service launch; multi-phase process shutdown sequence (SIGTERM / SIGQUIT / SIGKILL); enhanced log monitoring in process supervisor; exponential backoff for service authentication; TLS certificate validation for NATS connections.
Normalise all services to NATS-based hosting with unified heartbeat DONE 2026-05-20 2026-04-08 IAM + HTTP + Wt + compute wrapper migrated to ores.service unified infrastructure; signing_service_runner + wt_service_runner; on_shutdown callbacks; standard NATS telemetry heartbeats; service dashboard sole-source-of-truth from heartbeats; IAM roles + service accounts for http / wt / compute.
Service dashboard, shutdown fixes and DB timezone DONE 2026-05-20 2026-04-08 Standardised exit codes; last 20 lines of logs captured on failure; PID files for supervised services; TimeZone=UTC on raw libpq connections; double-disconnect crash fix; Last Error column in dashboard; PluginRegistry lifecycle fix.
Service lifecycle, menu restructure, GCC 15 fix, Qt plugin split DONE 2026-05-20 2026-04-08 Service diagnostics improvements; analytics plugin added; menu restructure (Identity / Pricing / Scheduler / Data Transfer top-level menus); GCC 15 incomplete-type errors fixed; xsd::vector copy assignment fix; service detail panel; report definitions list fills wizard page.

Decisions

Final v0 sprint
capture everything landed under v0 honestly; this is the closing chapter of v0.

Out of scope

  • Anything explicitly carried forward to v1.

See also

None.

Emacs 29.1 (Org mode 9.6.6)