feat(oci): publish each cascade stage as its own cosign-signed OCI entity (jess#167 decision 5) - #318
Merged
Merged
Conversation
…tity (jess#167 decision 5)
jess converged on the consumption contract (DD-026) and is waiting on the
per-component publish so it can `wkg oci pull` each verified stage and
fuse/lower/place per core — and measure the per-stage synth-skip inventory
(which stage blocks first on the float gate, AFD-035).
- release.yml: generalize the ghcr push from falcon-flight-only to a loop over
flight + the five composable cascade stages (iekf/position/attitude/rate/
mixer). Each is pushed WASI-free (the build step already builds the bundle
with --no-default-features) straight from the bundle dir (no re-download),
and cosign-signed by immutable digest. Still continue-on-error (a registry
hiccup must never fail the signed GitHub Release); per-component so a later
hex airframe or a new stage is a one-line SLUGS edit, not a fork.
- wasm/cm/{iekf,position,attitude,rate,falcon-mixer}/Cargo.toml: carry the full
embedded metadata contract (description rewritten for an outside reader +
keywords/documentation/categories/authors), so each component's wasm.directory
listing is real, not a bare entry — same contract flight got in the prior PR.
- docs/OCI-DISTRIBUTION.md: document the per-component publish set.
Follow-ups: register each new component on wasm.directory (existing `pulseengine`
namespace → auto-merge, not maintainer review) + make each ghcr package public.
Takes effect on the next release; can be exercised on v1.128 via workflow_dispatch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HvusAXYbHLyv3uTzfBcMbG
avrabe
enabled auto-merge (squash)
July 28, 2026 19:12
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.
Why
jess converged on the consumption contract (DD-026) and is waiting on this — the per-component publish is what lets jess
wkg oci pulleach verified stage and fuse/lower/place per core. Bonus jess flagged: per-stage OCI entities let them measure the per-stage synth-skip inventory (which cascade stage blocks first on the float gate, AFD-035), not just the whole-fused 13.What
release.yml: generalize the ghcr push fromfalcon-flight-only to a loop overflight+ the five composable stages — iekf, position, attitude, rate, mixer. Pushed WASI-free (the build step already builds the bundle with--no-default-features) straight from the bundle dir (no re-download), cosign-signed by immutable digest. Stillcontinue-on-error(a registry hiccup must never fail the signed GitHub Release). Per-component via aSLUGSlist, so a later hex airframe or a new stage is a one-line edit, not a fork.wasm/cm/{iekf,position,attitude,rate,falcon-mixer}/Cargo.toml: the full embedded metadata contract (rewritten outside-reader descriptions + keywords/documentation/categories/authors) so each wasm.directory listing is real — same contractfalcon-flightgot in feat(oci): embed full component metadata for wasm.directory rendering #313.docs/OCI-DISTRIBUTION.md: document the per-component publish set.Result (on next release / a v1.128
workflow_dispatch)each cosign-signed by digest, WASI-free, wasm.directory-indexable.
Follow-ups (not in this PR)
pulseenginenamespace → auto-merge, not maintainer review).ratestages still linkstd(WASI imports) until each gets the sameno_stdtreatment asrate(feat(falcon-rate): WASI-free component + through-wasm closed-loop proof #314); they publish fine and jess's per-stage skip report will tell us which to convert first.Refs: jess#167 (DD-026), #314 (rate WASI-free), #313 (metadata contract).
🤖 Generated with Claude Code