Tracks the build target behind DD-OS-DELIVERY-001 (gale#223): gale's consumable cut for the per-core fusion contract (jess#167 / jess DD-026) is a cosign-signed OCI wasm component, and the real work is producing the component itself — not the OCI push (that's a bounded release.yml add on top of the already cosign-signed .wasm/SLSA output).
Problem (grounded on v0.5.0 assets)
Neither released msgq shape is meld fuse-able standalone:
gale-wasm-msgq-v0.5.0-cortex-m4f.o — dissolved decision core (gale_k_msgq_put_decide), nm -u = 0 undefined, but only the decision fragment.
gale-wasm-msgq-v0.5.0.wasm — core module importing a 9-symbol env scheduler seam (k_spin_lock/unlock, z_ready_thread, z_reschedule, z_unpend_first_thread, gale_w_msgq_pend/thread_swap_data/memcpy, arch_thread_return_value_set), confirmed via wasm-tools print.
Target
A self-contained wasm component — the fused gale-nano runtime subset (Verus-proven executor + the gust:os capability providers + msgq/mutex/sem) — that:
- exports
gust:os (the capability world flight components import: log/channel/io/spawn/taskdisp/time/timer);
- resolves the scheduler seam internally —
z_ready_thread/z_reschedule/gale_w_msgq_pend/… satisfied by the composed executor, never exposed;
- leaves exactly
gust:hal (mmio) as the only residual import after the app↔providers composition dissolves.
Acceptance (the delivery invariant, DD-OS-DELIVERY-001)
Scope / timing
Bound to the v0.6 delivery cut; both sides float-gated (no urgency). The F100-failsafe half of DD-026 is already the gale-verified VER-OS-HM-001 FSM (v0.5.0) — this is purely the all-cores substrate delivery shape. Refs: gale#223, DD-OS-DELIVERY-001, jess#167, jess DD-026, gale#65.
Tracks the build target behind DD-OS-DELIVERY-001 (gale#223): gale's consumable cut for the per-core fusion contract (jess#167 / jess DD-026) is a cosign-signed OCI wasm component, and the real work is producing the component itself — not the OCI push (that's a bounded
release.ymladd on top of the already cosign-signed.wasm/SLSA output).Problem (grounded on v0.5.0 assets)
Neither released msgq shape is
meld fuse-able standalone:gale-wasm-msgq-v0.5.0-cortex-m4f.o— dissolved decision core (gale_k_msgq_put_decide),nm -u= 0 undefined, but only the decision fragment.gale-wasm-msgq-v0.5.0.wasm— core module importing a 9-symbolenvscheduler seam (k_spin_lock/unlock,z_ready_thread,z_reschedule,z_unpend_first_thread,gale_w_msgq_pend/thread_swap_data/memcpy,arch_thread_return_value_set), confirmed viawasm-tools print.Target
A self-contained wasm component — the fused gale-nano runtime subset (Verus-proven executor + the
gust:oscapability providers +msgq/mutex/sem) — that:gust:os(the capability world flight components import: log/channel/io/spawn/taskdisp/time/timer);z_ready_thread/z_reschedule/gale_w_msgq_pend/… satisfied by the composed executor, never exposed;gust:hal(mmio) as the only residual import after the app↔providers composition dissolves.Acceptance (the delivery invariant, DD-OS-DELIVERY-001)
wasm-toolsconfirms the artifact is a component (not a core module) that exportsgust:os.wac plug(a flight app importinggust:os) +meld fuse --memory shared+ loom + synth, the dissolved object's only undefined symbols are thegust:halmmio seam — no scheduler/heap symbols leak.release.ymlpublishes it cosign-signed to OCI (ghcr) alongside the existing signed assets.verifieslink once the component + its gate exist.Scope / timing
Bound to the v0.6 delivery cut; both sides float-gated (no urgency). The F100-failsafe half of DD-026 is already the gale-verified VER-OS-HM-001 FSM (v0.5.0) — this is purely the all-cores substrate delivery shape. Refs: gale#223, DD-OS-DELIVERY-001, jess#167, jess DD-026, gale#65.