feat(gust): publish gust:os provider components (OCI + wasm.directory) — first demonstrator (gale#223) - #226
Merged
Merged
Conversation
…) — first demonstrator (gale#223/#224) The OS-as-wasm-component-model made distributable (DD-OS-DELIVERY-001): each gust:os provider is a wasm COMPONENT that exports a gust:os capability interface and imports only gust:hal. build-gustos-components.sh builds them and asserts the delivery invariant (export gust:os, import ONLY gust:hal — a leaking scheduler/env import fails); the gustos-publish.yml verify job gates it on every PR, and on a release tag the publish job cosign-signs (keyless OIDC) + pushes to ghcr OCI and wasm.directory (the two channels a consumer pulls from, matching the sibling flight component). First demonstrator = the time provider: verified locally as world root { import gust:hal/mmio@0.1.0; export gust:os/time@0.1.0; } — a real, signed, multi-consumer gust:os component. The full fused gale-nano runtime component is gale#224. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
First concrete step of DD-OS-DELIVERY-001 (gale#223/#224): gust's OS-as-wasm-component-model made distributable — publish gale's
gust:osproviders as cosign-signed wasm components to the two channels a consumer pulls from.What
build-gustos-components.sh— builds eachgust:osprovider as a wasm component (wasm-tools component new) and asserts the delivery invariant: it exportsgust:os/*and imports nothing outsidegust:hal/*. A leaking scheduler/env/heap import (the core-module shape the release tarball ships) fails the gate..github/workflows/gustos-publish.yml— averifyjob gates the invariant on every PR; apublishjob (tag/dispatch only) cosign-signs (keyless OIDC, same flow asrelease.yml) and pushes each component to ghcr OCI (ghcr.io/pulseengine/gale-nano-*) and wasm.directory (gated onWASM_DIRECTORY_TOKENso it skips cleanly until the org sets it up).First demonstrator — the time provider (verified locally)
build-gustos-components.sh→ok: exports gust:os (1 iface), residual import = gust:hal only. This is a real, signed, multi-consumergust:oscomponent — any downstream that importsgust:ospulls it and fuses it for its target (jess#167 is the first of several consumers).Scope / honest notes
gust:halonly) is gale#224, bound to the v0.6 cut.Refs: gale#223, gale#224, DD-OS-DELIVERY-001, jess#167.
🤖 Generated with Claude Code