Module deferrals

Module deferrals 

Source
Expand description

GET /v1/deferrals - currently-blocked (rollout, host) pairs as observed by the latest gate decisions in event_log.

Each row in event_log with kind = 'gate_decision' represents one plan_next pass blocking a host’s dispatch (Phase 5b’s PlanAction::DeferDispatch). We dedupe to one entry per (host, rollout) pair keeping the most recent decision; that gives operators “what’s holding things up right now” without the historical stream — full history stays available via the raw event_log query.

Constants§

SCAN_LIMIT 🔒
Max rows scanned from event_log. v0.2 scale (~256 hosts × ~few gate decisions per dispatch attempt) keeps practical totals well under this even mid-rollout. If you raise this, also bump it in the CLI.

Functions§

list 🔒
project_deferrals 🔒
Pure projection from event_log to the deferrals response shape. Split out from the route handler so unit tests can assert against serde_json::Value directly without exercising the axum response pipeline.