Skip to content
Commit Detail

Commit 9793e96

Author
Kenton Varda <kenton@cloudflare.com> 2026-05-03 22:01:51 -0500
Parents
9fab584
Tree
55dfbac
Tweak `jsRpcSession()` to avoid need for `ServerTopLevelMembrane`.

Instead of having the `jsRpcSession()` "hang" until the session is done, we return a capability representing the session which can be dropped to effect cancellation.

This avoids the need for the rather-awkward `ServerTopLevelMembrane` on the receiving side.

Eliminating this membrane not just reduces complexity, but also fixes a problem where `ExternalPusher` methods had to be invoked strictly in advance of `call()`. I have features planned that will need to be able to call these methods later.

Unfortunately this will require a multi-step dance -- clients need to be updated first, then an autogate can update the server, then we can delete old code.

Files changed