Skip to content

Upgrade capnp to 0.23; make Session and Membrane generic#1

Merged
lthibault merged 1 commit intomasterfrom
feat/capnp-023
Feb 12, 2026
Merged

Upgrade capnp to 0.23; make Session and Membrane generic#1
lthibault merged 1 commit intomasterfrom
feat/capnp-023

Conversation

@lthibault
Copy link
Contributor

Summary

  • Bumps capnp/capnp-rpc/capnpc from 0.19 to 0.23.x to align with wetware/rs
  • Makes Session(Extension) and Membrane(SessionExt) generic so platforms can inject capabilities into the session via the extension field
  • Exports EpochGuard, fill_epoch_builder, StatusPollerServer for reuse by downstream crates
  • Adds SessionExtensionBuilder trait — callback for filling the extension during graft()
  • NoExtension + membrane_client() preserve backward compat for stem-only use

Motivation

wetware/rs needs to provide epoch-scoped Host and Executor capabilities to WASM guests through the Membrane. Making Session generic lets rs specialize it with its own WetwareSession struct without modifying stem's schema.

Test plan

  • All 16 existing tests pass (unit + integration including anvil-based tests)
  • membrane_poll example builds
  • Backward compatibility preserved — membrane_client() returns Client<any_pointer::Owned>

- Bump capnp/capnp-rpc/capnpc from 0.19 to 0.23.x
- Session(Extension) and Membrane(SessionExt) are now generic,
  allowing platforms (e.g. wetware/rs) to inject capabilities
  into the session via the extension field
- Export EpochGuard, fill_epoch_builder, StatusPollerServer
- Add SessionExtensionBuilder trait for extension injection
- NoExtension preserves backward-compat for stem-only use
- Update Server trait signatures for capnp 0.23 (Rc<Self>)
@lthibault lthibault merged commit 8d8d076 into master Feb 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant