Layer 2026.09.1: meld 0.53.0, synth 0.61.0, and varve-producer in the layer - #128
Merged
Conversation
The two tools that moved since 2026.09.0. Everything else in the layer — rivet 0.35.0, spar 0.40.0, witness 0.43.0, ordeal 0.19.0, loom 1.4.1, wsc 0.11.0, kilnd 0.4.4 — is already at its latest release. Checked before proposing, not after depositing: - Both releases publish a cosign-signed SHA256SUMS.txt with its bundle, so both clear rung 1 of the ingest ladder and neither needs an unverified opt-in. - Both asset templates still describe the releases. `varve-producer assets` (the v0.32.0 binary, from the signed release) matches all four platforms for each. That check exists because a mistyped %V template once omitted a tool from a published layer while the run went green with four notices. Deposit inputs, read out of the registry by tools/next-layer-id.sh rather than typed: layer 2026.09.1, counter 2. A layer id once published is spent, so guessing it is not an option. This deposit is also the first to exercise three things added in v0.32.0: publish-check refusing a republish before any blob is written, the per-layer concurrency group, and sign-status refusing a status document with no support window — which means 2026.09.1 will be the first layer varve has ever published that states one. Every layer so far reports "no stated support window".
The assembler now rides in the layer like any other tool, so a layers repository gets a PINNED, signature-verified assembler instead of fetching one ad hoc — which is what REQ-PRODUCERGET-001 asked for, taken one step further than a documented download. The entry needs both optional fields because the producer is the one payload whose repo, binary and asset name all differ: the repo is `varve`, the binary is `varve-producer`, and the asset is not `<tool>-<version>-<triple>`. Spelling the template as `varve-producer-v%V-%T.tar.gz` reconstructs the tag from the bare version instead of repeating it, so bumping the version is one edit and the template cannot drift out of step with it. Validated with the released v0.32.0 binary before proposing, not after depositing: `varve-producer assets` matches all four platforms. The negative control matters here — the DEFAULT template for this entry would be `varve-v0.32.0-%T.tar.gz`, which selects varve's own archive, whose binary is named `varve` and would then fail the extraction step. Getting the template wrong fails loudly rather than depositing the wrong bytes. Bootstrapping is not circular. The deposit downloads the released archive exactly as it does for every other tool; the first assembler comes from the release, and after that a layers repo can pin the one varve signed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The assembler now rides in the layer
A layers repository gets a pinned, signature-verified assembler instead of fetching one ad hoc —
REQ-PRODUCERGET-001taken a step further than a documented download. After this, obtaining the assembler isvarve installplus a pin, and its bytes are covered by the realm root like every other payload.Bootstrapping is not circular: the deposit downloads the released archive exactly as it does for every other tool. The first assembler comes from the release; after that a layers repo pins the one varve signed.
The entry needs both optional fields, because the producer is the one payload whose repo, binary and asset name all differ:
v%Vreconstructs the tag from the bare version rather than repeating it, so bumping is one edit and the template cannot drift out of step.Checked before proposing, not after depositing
SHA256SUMS.txtwith its bundle, and varve's own sums carry all four producer archives.varve-producer assets— the v0.32.0 binary from the signed release, not a local build — matches all four platforms for meld, synth and the producer.varve-v0.32.0-%T.tar.gz, which selects varve's own archive — whose binary is namedvarveand would fail extraction. Getting the template wrong fails loudly rather than depositing the wrong bytes.That check exists because a mistyped
%Vtemplate once dropped a tool from a published layer while the run went green with four notices.Deposit inputs
layer 2026.09.1,counter 2— read out of the registry bytools/next-layer-id.sh, not typed. A layer id once published is spent; varve has neither revocation nor rotation.What this deposit exercises for the first time
Three things shipped in v0.32.0 that have never run in a signing job:
publish-checkrefusing a republish, running before any blob is written.sign-statusrefusing a status document with no support window — making2026.09.1the first layer varve has ever published that states one. Every layer to date reports "no stated support window", because the field shipped in v0.5.0 and nothing ever set it.Because of (3) this can now fail in a new way: if the support-window derivation is wrong,
sign-statusrefuses rather than signs. That is the correct direction to fail, and it is untested in a real run — so worth watching rather than firing and forgetting.After merge
Dispatch Deposit layer with
layer=2026.09.1,counter=2. I have not dispatched anything: the deposit signs with the realm's provisional root, and that is yours to trigger. I will watch the run and verify the published layer from the outside afterwards — including that the producer inside it runs and reportsvarve-producer 0.32.0.