GloriousFlywheel Runner Dashboard Consumption Contract 2026-04-16
Snapshot date: 2026-04-16
Purpose
Define how packages.runner-dashboard is actually consumed today.
This note resolves the consumption-gate question from
gloriousflywheel-runner-dashboard-promotion-gate-2026-04-15.md.
Companion notes:
- gloriousflywheel-runner-dashboard-promotion-gate-2026-04-15.md
gloriousflywheel-nix-output-candidates-2026-04-15.mdgloriousflywheel-clean-derivation-promotion-workflow-2026-04-15.md- gloriousflywheel-runner-dashboard-publication-decision-2026-04-16.md
- gloriousflywheel-runner-dashboard-release-authority-change-gate-2026-04-16.md
Current Repo Facts
Direct inspection on 2026-04-16 shows:
flake.nixexports both:packages.runner-dashboardpackages.runner-dashboard-image
- the Nix image output is built by copying
packages.runner-dashboardinto the image root - the deployed dashboard stack does not consume a flake output directly; the
tofu module accepts a plain container image string through
var.image - active publication for the dashboard uses Docker Buildx to GHCR in:
.github/workflows/build-image.yml.github/workflows/release.yml
- no repo surface currently exposes
packages.runner-dashboardas a direct installation or download path for operators
Current Contract
1. Repo-Native Build Artifact
packages.runner-dashboard is a real repo-native derivation.
Current role:
- bounded build artifact for the SvelteKit dashboard app
- the strongest current clean-derivation candidate in the flake surface
2. Canonical Nix Image Input
Inside the Nix path, packages.runner-dashboard is the canonical image-input
surface for packages.runner-dashboard-image.
That means:
- the derivation is not just incidental build output
- it is the normalized app payload used by the flake’s Nix image assembly path
3. Not A Standalone Public Consumption Surface Today
Today, packages.runner-dashboard is not the primary public/operator
consumption contract.
Current public/operator path:
- container image deployment
- specifically GHCR-published dashboard images
This means the repo should not currently describe packages.runner-dashboard
as if operators are meant to consume it directly from a flake output.
4. Not Yet Release Authority
The Nix image path exists, but it is not the current release authority for the dashboard.
Current release authority:
- Dockerfile + Buildx + GHCR
Implication:
- the repo still has a convergence gap between the Nix image path and the active published image path
Decision
Current answer to the consumption-gate question:
packages.runner-dashboardis both a repo-native build artifact and the canonical Nix image-input surface- it is not yet a standalone public discovery surface
Consequences
For Clean-Derivation Work
- this is enough to satisfy the current consumption gate
- the current publication decision still keeps the durable public surface image-based
For Dashboard Docs
- primary docs should describe the dashboard as image-consumed today
- they may mention the derivation as the Nix build artifact behind the image path
- they should not imply that operators are expected to install the dashboard directly from the flake output
For Future Promotion
If the repo later wants packages.runner-dashboard to become a discoverable
public artifact, that should be a separate promotion step after:
- publication authority is explicit
- the Nix image path and the active release path are reconciled
That reconciliation should clear
gloriousflywheel-runner-dashboard-release-authority-change-gate-2026-04-16.md.
Recommendation
Recommended current wording:
- public/operator consumption: dashboard container image
- repo-native clean-derivation candidate:
packages.runner-dashboard - canonical Nix image input:
packages.runner-dashboard - current release authority: GHCR image workflows
Exit Condition
- the repo has an explicit current answer for how
packages.runner-dashboardis consumed - the runner-dashboard promotion gate no longer depends on an unresolved consumption question
- future FlakeHub work can be argued from a known image-versus-derivation boundary