Skip to content

0.9.0 host cannot instantiate capsules importing astrid:process@1.0.0 built with sdk 0.7.x (frozen-WIT mutation) — serve dual-version process 1.0.0 + 1.1.0 #1107

Description

@joshuajbouw

Found by fresh-install verification of the released 0.9.0 binary: astrid init --distro sage --principal claude-code installs 8/9 capsules — the sage supervisor fails with:

lifecycle dispatch failed: Unsupported entry point: Failed to instantiate WASM component for lifecycle: component imports instance `astrid:process/host@1.0.0`, but a matching implementation was not found in the linker

astrid-capsule-shell v0.2.0 fails to load with the same signature ('Unsupported entry point').

Root cause: wit #15 mutated the frozen astrid:process@1.0.0 in place (spawn-request gained file-injections). The component-model linker matches structurally per exact package version, so capsules built against the published contract (astrid-sys 0.7.1 embeds the pre-#15 shape — verified by extracting the crates.io artifact) cannot link against the 0.9.0 host. This is the #890 frozen-WIT-mutation class, recurring.

Fix: the http 1.0/1.1 dual-version pattern the codebase already implements: restore process@1.0.0 to the published shape, introduce process@1.1.0 with file-injections, stage and bind BOTH versions in bindings.rs/build.rs, host impls map both to the same internals (1.0.0 spawn = no injections). Ships as 0.9.1: shell v0.2.0 and sage v0.2.0 then work with no capsule rebuilds.

WIT-side restore tracked in the wit repo (cross-linked: astrid-runtime/wit#19).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions