docs(744): close the probe blockquote, and drop an overclaim it had just caveated
Build ErsatzTV Image / CI toolchain image resolves (pull_request) Successful in 8s
Build ErsatzTV Image / Delimiter ban (release path) (pull_request) Successful in 18s
PR Gates / CI image pin matches docker/ci (pull_request) Successful in 11s
PR Gates / Docs update reminder (pull_request) Successful in 17s
PR Gates / decisions lifecycle (pull_request) Successful in 19s
PR Gates / Fix proofs (Proves trailers) (pull_request) Successful in 13s
Review verdict / Set review-verdict status (pull_request_target) Successful in 20s
PR Gates / Script lint and tests (ruff + pytest) (pull_request) Successful in 6m15s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 8m45s
review-verdict/h10 Review-verdict: MERGEABLE @ 3dd5109 (base: main)
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 6m11s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Skipped
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (pull_request) Successful in 5m57s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 6s
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 6s

Self-review of the probe commit, on its own head. Two defects in it:

- The blockquote swallowed the start of the sentence that follows it, so
  'The cheapest way to avoid it entirely is' rendered inside the quote while its
  continuation rendered outside. Closed the quote and made the sentence stand alone.
- The decision record asserted the probe published the tag 'without moving :latest'.
  That is the exact overclaim the ci-cd.md probe note had just been careful to
  caveat: the rebuild was content-identical, so the observation is that :latest did
  not CHANGE, which cannot distinguish 'not pushed' from 'pushed the same digest'.
  The record now says :latest resolved to its pre-dispatch digest and points at the
  stated limit instead of restating a stronger claim than the evidence supports.

refs #744

Decisions-Edit: yes
This commit is contained in:
2026-08-27 22:22:29 +02:00
parent a4d9d8f788
commit 3dd5109279
2 changed files with 8 additions and 5 deletions
+5 -3
View File
@@ -1817,9 +1817,11 @@ loop ersatztv#445 paid twice when `main` moved mid-review.
> limit of that last check: `docker/ci` was unchanged, so the rebuild was content-identical and the
> new `:<sha>` carries the same digest as `:latest`. It therefore shows `:latest` did not CHANGE, and
> cannot by itself distinguish "not pushed" from "pushed the same digest" — the `refs/heads/main`
> guard in the workflow is what makes that decision. The cheapest way to avoid it entirely is
still to **land a toolchain-image change on its own, before** the work that consumes it, so the
consuming branch never carries the `docker/ci` commit through a rebase.
> guard in the workflow is what makes that decision.
The cheapest way to avoid the rebase loop entirely is still to **land a toolchain-image change on its
own, before** the work that consumes it, so the consuming branch never carries the `docker/ci` commit
through a rebase.
> **`docker/ci/**` has no cheap-edit path, comments included.** Editing any byte there re-points
> `ci-image-pin`'s `expected` at the editing commit, so the five `container:` pins go stale and a
@@ -33,8 +33,9 @@ mechanics: '`docs/ci-cd.md` -> "CI toolchain image" -> "Publishing from a branch
`ci-image.yml` on that branch (it tags `git rev-parse --short HEAD`, so the two must coincide), then
commit the pin bump on top. A rebase rewrites the sha, so all three are redone; that was already true.
Probed rather than reasoned: dispatching on `fix/744-ci-image-branch-filter` at `43b1e45` succeeded
(run 2340), the job bound to that branch and sha, and it published `ersatztv-ci:43b1e45` without
moving `:latest` (2026-08-27, `docs/ci-cd.md`).
(run 2340), the job bound to that branch and sha, and it published `ersatztv-ci:43b1e45`; `:latest`
still resolved to its pre-dispatch digest, a check whose stated limit lives with the probe
(2026-08-27, `docs/ci-cd.md`).
- **Dropping the self-path is a DECIDED TRADEOFF, and calling it forced would be wrong.** `ci-image-pin`
derives `expected` from the last commit touching the image sources; while `.gitea/workflows/ci-image.yml`
was one of them, editing that file re-pointed `expected` at the editing commit. Retaining it stays