Repository navigation
Conversation
The transitive pin won the closure resolution over a consumer's direct pin, so every consumer composing cuda inherited the pre-fix nvidia check and its check-image bed failed on Arch with the removed stdout matcher: 'stdout: expected to contain gpgcheck=1 (got: )'. Measured on an Arch host in opencharly/layer-strata, whose own candy pins layer-nvidia at the merged fix and still ran the pre-fix check. layer-nvidia#11/#12 removed that matcher, moving the assertion into the command where the distro decision is made; v2026.271.1817 predates it. Assisted-by: DeepSeek Harness deepseek-v4.1-flash (syntax check only)
Review — BLOCKHead SHA: Change class: config change (a candy Blocks
Notes (non-blocking)
No comments exist on the thread, so there is no comment intake to disposition. Verdict: BLOCK ollama-cloud/deepseek-v4.1-flash — action-review. |
|
Agent: STATUS — standing this PR down: its stated premise is disproven by measurement, and I would rather withdraw it than let a one-line pin merge carrying a false reason. The measurement. The rationale here is that this repo's transitive The pre-fix matcher still runs. The transitive pin is not the cause, so this change does not do what its title and summary say. Closing it rather than merging it. What the four dead hypotheses leave. Each was killed by measurement, not argument:
Root fix for the control, not just the code: I opened this PR on a mechanism I had reasoned to but never measured against this change. The gate that should have caught it — run the consumer bed against the branch commit before opening the PR — is now what I do first, and this run is exactly that gate, applied one commit too late. Assisted-by: DeepSeek Harness deepseek-v4.1-flash (analysed on a live system — the failing consumer run is real and reproducible; no fix is claimed) |
|
Closed: premise disproven by measurement (see comment). Reopening only with a verified mechanism. |
Summary
Advances this repo's
layer-nvidiapin fromv2026.271.1817to the commit that fixesopencharly/layer-nvidia#11/#12(054aa7702ebe79e8be444764f91a03933ba45eec). One line, in thecudacandy'srequire:list — the candy is defined inline in this repo's rootcharly.yml.Why this is a fix and not a routine bump. The pin is transitive, and it wins the closure
resolution over a consumer's own direct pin. So any consumer composing
cudainherits this repo'snvidiarevision — including its pre-fix check. That check asserted signature enforcement inside astdout:matcher while the Arch skip path merely exited 0, so on Arch/CachyOS it could never hold andfailed by construction.
layer-nvidia#12moved the assertion into the command where the distrodecision is made and deleted the matcher;
v2026.271.1817predates that.Measured on an Arch host, in
opencharly/layer-strata, whose own candy pinslayer-nvidiaat themerged fix
054aa7702ebe…:That
stdout:matcher does not exist at the consumer's pinned commit. Read through the API at054aa7702ebe, the check has no matcher at all — the assertion is in the command. So the consumer'sdirect pin was not the revision that ran.
Ruled out, each by measurement rather than argument:
charly box reconcile --dry-run→ "already reconciled — every repo's pins are at one version" (it aligns on-disk pins; it does not model which of two differently-pinned references the resolver honours)podman inspect <image> | grep -c 'stdout:'→ 0; the image's baked plan carries no matcher text, so the matcher cannot come from itv2026.271.1817How tested
Change class: a candy pin advance in a repo with no bed of its own. The gate available to me
before the push is the repo-wide one:
The change-class bed for this pin is the consumer's
check-strata-pod— the only bed thatexercises the transitive pin, and the only place the failure is visible. I will run it against this
branch's commit and paste the transcript on this PR as a comment rather than claim a gate this repo
cannot produce. Until that lands, this PR's evidence is: the reproduction above, the file read at both
refs, and the zero-warning validation on the final tree.
Rulebook compliance
mechanisms were tested and killed by measurement (reconcile dry-run, baked-label count, both-ref file
read) before this one was accepted. The root finding is filed as
#14, which this PR closes.matcher relaxation.
grep -n layer-nvidia charly.yml→one line).
origin/main; no force-push; no direct push tomain.for a pin of this kind, and I would rather say that than present
validateas an R10 proof.Change classification
One pin value in
opencharly/layer-cuda'scudacandy, advancing a transitive dependency past a fixthat already merged upstream. Blast radius: every consumer composing
cudaon a DNF-less Arch-familyarm, where the pre-fix check is red by construction. No consumer change is required — composing the
new pin is what fixes them.
Also observed, and left as-is: the old value
v2026.271.1817is older than what the consumer'svendored copy showed (
v2026.289.1301), so this pin had been stale across more than one advance.Whether the family wants a pin-freshness gate is a policy question, not this change's scope — but if a
maintainer wants it filed, say so and I will open it with this evidence.
Closes #14.
Assisted-by: DeepSeek Harness deepseek-v4.1-flash (analysed on a live system — the reproduction, the four deterministic consumer runs, the both-ref file read and the zero-warning validation are all real; the consumer-side bed transcript is pasted on this PR as it completes, so this change's full R10 is not yet claimed)