Skip to content

Layer 2026.09.1: meld 0.53.0, synth 0.61.0, and varve-producer in the layer - #128

Merged
avrabe merged 2 commits into
mainfrom
layer/2026.09.1
Sep 5, 2026
Merged

Layer 2026.09.1: meld 0.53.0, synth 0.61.0, and varve-producer in the layer#128
avrabe merged 2 commits into
mainfrom
layer/2026.09.1

Conversation

@avrabe

@avrabe avrabe commented Sep 5, 2026

Copy link
Copy Markdown
Contributor
tool 2026.09.0 2026.09.1
meld 0.52.0 0.53.0
synth 0.60.0 0.61.0
varve-producer 0.32.0 (new)
rivet, spar, witness, ordeal, loom, wsc, kilnd unchanged, all current

The assembler now rides in the layer

A layers repository gets a pinned, signature-verified assembler instead of fetching one ad hoc — REQ-PRODUCERGET-001 taken a step further than a documented download. After this, obtaining the assembler is varve install plus 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:

pulseengine/varve:v0.32.0:varve-producer:varve-producer-v%V-%T.tar.gz

v%V reconstructs 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

  • All three tools clear rung 1 of the ingest ladder — each release publishes a cosign-signed SHA256SUMS.txt with its bundle, and varve's own sums carry all four producer archives.
  • Every asset template still describes its release. 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.
  • The negative control matters for the producer entry. Its default template would be varve-v0.32.0-%T.tar.gz, which selects varve's own archive — whose binary is named varve and would fail extraction. Getting the template wrong fails loudly rather than depositing the wrong bytes.

That check exists because a mistyped %V template 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 by tools/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:

  1. publish-check refusing a republish, running before any blob is written.
  2. The per-layer concurrency group, so two dispatches cannot both push.
  3. sign-status refusing a status document with no support window — making 2026.09.1 the 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-status refuses 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 reports varve-producer 0.32.0.

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.
@avrabe avrabe changed the title Layer 2026.09.1: meld 0.53.0, synth 0.61.0 Layer 2026.09.1: meld 0.53.0, synth 0.61.0, and varve-producer in the layer Sep 5, 2026
@avrabe
avrabe merged commit 90d37c2 into main Sep 5, 2026
23 checks passed
@avrabe
avrabe deleted the layer/2026.09.1 branch September 5, 2026 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant