GloriousFlywheel Runner Dashboard Consumption Contract 2026-04-16

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:

Current Repo Facts

Direct inspection on 2026-04-16 shows:

  • flake.nix exports both:
    • packages.runner-dashboard
    • packages.runner-dashboard-image
  • the Nix image output is built by copying packages.runner-dashboard into 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-dashboard as 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-dashboard is 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-dashboard is 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

GloriousFlywheel