• v0.1.95 b76e5cff7b

    v0.1.95 Stable

    pipeline-bot released this 2026-07-08 10:36:26 +00:00 | 874 commits to main since this release

    Fixed

    • RELEASES pane shows only releases — the declared ship path (pipectl / shipd / the
      cadence CronJob) creates a PipelineRelease CR per "ship?" decision, and the pane rendered them
      all: phase=Skipped "—" rows piled up 4/day per declared-cadence project, versionless Succeeded
      intent shells lingered from ship-mashing, and a version shipped through both paths (projected
      -release- CR + declared -ship- CR) rendered twice. Two one-line SPA helpers fix it:
      isShipIntent drops Skipped and versionless+tagless terminal non-failures (Running/Pending ships
      and Failed/Error releases stay loud), and dedupReleaseRows renders each version once, keeping
      the richest row (workflow > tag > Succeeded). Filtering runs BEFORE the Forgejo-synth merge so a
      dropped junk row lets the durable tag-derived row re-appear. Covered by
      tests/dashboard-release-rows.test.js (also run by the in-cluster CI guard).
    • BUILDS pane shows only commits a build pipeline actually built — the gitops validate
      (pipeline-validate / pipeline-validate-flux) writes a builds/<short>/MANIFEST for every
      render, including the trunk re-validation that runs as deploy prep. pipeline-build-backfill
      turned those into BUILD rows, so un-openable plumbing commits (devbump / release-merge /
      land-merge) littered the pane with no logs or artifacts behind them. The validate now stamps an
      explicit kind= in the MANIFEST (build on a feature branch — the change's CI test; staging
      on the trunk — deploy prep), and the backfill's new classify_build_record keeps only real
      builds. Legacy records with no kind fall back to the render's signature artifact
      (renders.tar.gz on the trunk), so a build's genuine compile output is never misread. Phantom
      build CRs created before this fix are pruned on the backfill's next hourly run (delete guarded to
      backfilled=true — a projector-owned live build is never touched). This replaces the last
      reliance on the overloaded mode= field for the build/render distinction. Covered by
      tests/backfill-classify.test.js.

    Included changes (v0.1.94 -> v0.1.95)

    • 1ef614bacdd3 fix(dashboard): RELEASES pane shows only releases — drop ship-intents, dedup versions
    • fc3117b156ff test(backfill): run classify guard in-cluster CI; POSIX-sh portable
    • 8ae6d4d1fda6 fix(backfill): BUILDS pane shows only commits a build pipeline built
    Downloads