From c7a205095aee5b2a2fdb6a906318417a2ba3284d Mon Sep 17 00:00:00 2001 From: Andreas Trawoeger Date: Fri, 30 Oct 2026 07:45:54 +0100 Subject: [PATCH] fix(build): the live proof's comment names the mechanism the drive actually runs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The live proof's header comment asserted a present-tense fact that stopped being true: that the plugin ecosystem "has not all migrated yet", with three identifiers (`spec.BuildRequest.PodmanJobs`, `rt.BuildEngine`, `spec.BoxConfig.PodmanJobs`) as the reason the drive is driven directly from the module rather than as an assembled `charly box build`. All three are gone from the contract — `PodmanJobs` was renamed to `stage_parallelism` and `BuildEngine` was retired outright, since BuildKit is not a container engine — and the assembled build is green against them, so the stated reason no longer holds. The same comment block also described the bridge as "load -> tag -> verify" and named "the tag re-application" as the duty whose loss would break every downstream verb. There has been no tag step since the charly image store landed (c79ee55): the export is annotated with io.containerd.image.name=, the annotation names the image, and the import verifies the reference resolves. Both clusters are corrected in the same file and the same comment block. The header now states the durable reason the drive is driven directly — the plugin is compiled into charly, so an assembled build couples this proof to every other pinned plugin's release, and would answer "does the whole product assemble" rather than "does THIS drive work" — and the bridge is named as it runs: annotate -> store -> load -> verify. The failure the assertion guards is named the way the sibling live test names it: the naming annotation, not a tag step. No runtime behaviour changes: the diff is comments plus one diagnostic string. Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated) --- candy/plugin-build/buildkit_live_test.go | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/candy/plugin-build/buildkit_live_test.go b/candy/plugin-build/buildkit_live_test.go index 949193e..7a94d5c 100644 --- a/candy/plugin-build/buildkit_live_test.go +++ b/candy/plugin-build/buildkit_live_test.go @@ -4,13 +4,11 @@ package build // `buildctl`, and a real image bridged into the run engine's store. // // ⚑ Why this lives in the module rather than as an assembled `charly box build`: the plugin is -// COMPILED INTO charly, so assembling charly requires every pinned plugin to compile against the -// new contract — and they have not all migrated yet (measured: `plugin-box` v0.2026272.2039 fails -// on `spec.BuildRequest.PodmanJobs`, `rt.BuildEngine`, `spec.BoxConfig.PodmanJobs`). A live proof -// that has to wait for four other repos would prove nothing about THIS change, so the drive is -// driven directly here: `driveConfig.buildImage` is the whole changed path — daemon ensure, the -// buildctl argv, the OCI export, and the bridge (load → tag → verify) — and it is invoked exactly -// as `runBoxBuild` invokes it. +// COMPILED INTO charly, so an assembled build couples this proof to every other pinned plugin's +// release — the assembled build answers "does the whole product assemble", while this proof +// answers "does THIS drive work". So the drive is driven directly here: `driveConfig.buildImage` +// is the whole changed path — daemon ensure, the buildctl argv, the OCI export, and the bridge +// (annotate → store → load → verify) — and it is invoked exactly as `runBoxBuild` invokes it. // // It SKIPS VISIBLY when the toolchain is absent (R8), and is never mocked: where the tools exist // it runs a real build. @@ -68,11 +66,12 @@ func TestBuildImage_LiveBuildsAndBridgesIntoTheRunEngine(t *testing.T) { } // ⚑ THE BRIDGE'S NAMED DUTY, asserted where it matters: the reference must RESOLVE in the RUN - // engine's store. A load returns success while landing an OCI-exported image untagged, so this - // is the assertion that fails if the tag re-application is ever dropped — the failure mode the - // plan calls out as breaking every downstream verb. + // engine's store. A load returns success while landing an image the engine cannot resolve by + // reference, so this is the assertion that fails if the export's NAMING ANNOTATION is ever + // dropped — the failure mode imagestore_live_test.go proves from the other side, where an + // archive with the annotation stripped imports DANGLING. if !kit.LocalImageExists("podman", tag) { - t.Fatalf("the built image is not resolvable as %s in the run engine's store — the tag duty failed", tag) + t.Fatalf("the built image is not resolvable as %s in the run engine's store — the naming annotation did not take", tag) } // And the READ PATH the bridge exists for: labels, read through the run engine, which shares