You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Big release rolling up the per-domain WIT host ABI migration (kernel-side wasi-elimination, every host call routed through audited astrid:* interfaces), wasmtime 43 → 45 (closes RUSTSEC-2026-0149), outbound TCP for capsules, the Gemini review fixups for #752, and the security audit fixes that landed since 0.6.0 was tagged.
Major themes:
Per-domain WIT migration (feat(kernel)!: migrate to per-domain WIT host ABI #752) — replaces the bundled astrid:capsule@0.1.0 world with per-domain packages astrid:fs, astrid:ipc, astrid:net, astrid:io, astrid:kv, astrid:sys, astrid:http, astrid:approval, astrid:elicit, astrid:identity, astrid:uplink, astrid:process (all @1.0.0). Every host call routes through typed error-code variants, the wasmtime ResourceTable, audit envelopes per domain, and cancellation-token races on every blocking path. Zero wasi:* linker registration — capsules see exactly what the per-domain WIT describes and nothing more.
Atomic kv_cas through KvStore::compare_and_swap (was emulated get + set; now serialized via MemoryKvStore's RwLock or a single SurrealKvStore MVCC transaction).
O(1) quota counters on HostState (net_stream_count, subscription_count, process_count_total, process_count_by_principal) — replaces the O(N) ResourceTable walk on every accept/connect/spawn.
Big release rolling up the per-domain WIT host ABI migration (kernel-side wasi-elimination, every host call routed through audited
astrid:*interfaces), wasmtime 43 → 45 (closes RUSTSEC-2026-0149), outbound TCP for capsules, the Gemini review fixups for #752, and the security audit fixes that landed since 0.6.0 was tagged.Major themes:
astrid:capsule@0.1.0world with per-domain packagesastrid:fs,astrid:ipc,astrid:net,astrid:io,astrid:kv,astrid:sys,astrid:http,astrid:approval,astrid:elicit,astrid:identity,astrid:uplink,astrid:process(all @1.0.0). Every host call routes through typederror-codevariants, the wasmtimeResourceTable, audit envelopes per domain, and cancellation-token races on every blocking path. Zerowasi:*linker registration — capsules see exactly what the per-domain WIT describes and nothing more.net.connect-tcp+net_connectallowlist capability, SSRF airlock reused fromhttp-request, 20-methodTcpStreamresource surface.kv_casthroughKvStore::compare_and_swap(was emulatedget+set; now serialized viaMemoryKvStore's RwLock or a singleSurrealKvStoreMVCC transaction).HostState(net_stream_count,subscription_count,process_count_total,process_count_by_principal) — replaces the O(N) ResourceTable walk on every accept/connect/spawn.ProcessHandle.waitrewritten ontokio::process::Child(was std::Child + spawn_blocking, stranded the handle on timeout — Gemini feat(kernel)!: migrate to per-domain WIT host ABI #752 finding).fs-mkdirstrict semantics enforced (was silentlycreate_dir_alllike itsfs-mkdir-allsibling — Gemini feat(kernel)!: migrate to per-domain WIT host ABI #752 finding).path_open(TRUNCATE)FilePerms::WRITEbypass).Checklist:
[Unreleased]rolled into[0.7.0]with consolidated sectionscargo check --workspacepassescargo test --workspacepassescargo clippy --workspace --all-features -- -D warningscleanv0.7.0after merge