Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 06 Jun 22:22
· 62 commits to main since this release
7124f2e

Added

  • Five new deployment statuses, surfaced end-to-end. Beyond in-progress / success / failure, the dashboard now distinguishes pending, queued, waiting, cancelled, and rejected (an 8-value status enum). The three effective statuses (success / in-progress / failure) still drive the matrix tile and swimlane card colour; the five new statuses surface as a distinct "next" badge for a deployment beyond the live one, and all eight appear in deployment history and the inspector. The contract gains MatrixSlot.next (the latest non-effective deployment, when newer than the current effective one) and MatrixSlot.prev_failed.
  • Cancelled and not-approved deployments are distinguished from plain failures. The fetcher derives cancelled from the associated workflow-run conclusion and rejected from pending-deployment reviews — signals that live beyond GitHub's deployment_status pipeline, which has no cancelled/rejected state of its own.
  • "Never deployed" neutral state. A slot whose only/latest deployment is non-effective with no effective baseline now renders a neutral tile and status chip instead of a spinner or a failure.
  • Universal correlation id across the control plane. Every control command now carries a correlation_id that ties a user-initiated action to all of its downstream events. For a reset it is born on reset-initiated and flows through reset-started, reset-completed, every component reset-ack, and the post-reset status events; the component-event stream and the demo driver's event feed surface it as a chip, and clicking a chip filters the feed to a single correlated process. Component events accept an optional X-Correlation-Id header (≤128 chars) that is persisted and echoed on the SSE frame.

Changed

  • Breaking — reset_id retired in favour of correlation_id. The control contract no longer exposes reset_id: the POST /api/control/reset 202 body returns correlation_id, the control-stream frames carry correlation_id, and the reset ack-gate now matches on the X-Correlation-Id request header instead of a payload.reset_id body field. The component_events, control_stream_events, and reset_cycle tables rename their reset_id column to correlation_id (handled by an EF migration). The demo's "reset on ingest/seed" checkboxes are removed — ingest never triggers a reset; use the dedicated Reset System control.

Fixed

  • Demo rate-limit count no longer inflates on unchanged polls. The github-emulator now honours If-None-Match (returning 304 with a content ETag) and exempts GET /rate_limit, so repeated fetcher polls of unchanged data no longer grow the dashboard's reported request count.

Security

  • .gitignore now ignores all **/.env.* files (while keeping .env.example), so environment files containing secrets cannot be committed accidentally.