Issue 039 resolved — the operator's images are pinned, and why that is a stopgap

Nine references now name the digest their tag resolved to. What closed is the
immediate fault; the open questions stand, because a digest in a repository is
wrong the moment anybody rebuilds — which is the reason the design wants the
repository to name artifacts and the mesh to hold digests.

Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
This commit is contained in:
2026-09-11 01:06:35 +02:00
parent 47dc3bc8e5
commit c29accd1be
@@ -1,8 +1,8 @@
--- ---
status: open status: resolved
opened: 2026-09-10 opened: 2026-09-10
located-in: [] located-in: [mesh-catalog]
fixed-by: fixed-by: mesh-catalog — the operator's own images are pinned by digest
amended-design: amended-design:
--- ---
@@ -44,6 +44,24 @@ often.
incidentally is an invariant no bed tests. The harness was not merely serving images; it was incidentally is an invariant no bed tests. The harness was not merely serving images; it was
quietly supplying a property of the system under test, and nothing said so. quietly supplying a property of the system under test, and nothing said so.
## Fixed, and what the fix does not settle
Each of the nine references now names the digest its tag resolved to, read from the registry that
serves them. Every manifest in the catalogue is pinned; the host's refusal has nothing left to
catch, and the check that would have caught this — *no manifest names a tag* — now passes on
content rather than on a harness's rewriting.
**It is a stopgap and should be read as one.** A digest written into a repository is wrong the
moment anybody rebuilds, which is exactly the argument
[`12-a-module-repository`](../../03-DESIGN/01-to-be/12-a-module-repository.md) makes for two
documents — the repository naming *artifacts*, the mesh holding *digests*. Until something builds
and publishes, a digest that goes stale is still better than a tag that moves without telling
anyone: stale fails loudly at the pull, and a moved tag changes what a machine runs while every
record says nothing changed.
So the open questions below stand. What closed is the immediate fault; what remains is the reason
it was possible.
## Open questions ## Open questions
- What should a manifest name for an image the operator builds themselves? A digest changes on - What should a manifest name for an image the operator builds themselves? A digest changes on