feat(call,http): expose EventEnvelope-level dispatch API for non-QUIC transports

Make Dispatcher::dispatch_requested pub and extract abort-cascade handling
into a pub handle_abort method so the WebSocket handler can feed deserialized
EventEnvelopes directly to the shared Dispatcher without a QUIC Connection.

CallConnection gains a new_overlay_only(identity) constructor (Option A) that
holds the Layer 2 overlay, PendingRequestMap, and resolved bearer Identity
without a QUIC Connection; identity() reads the stored field for the non-QUIC
case. compose_root_env uses the new identity() accessor for both paths.

The existing QUIC path (CallAdapter, CallClient, run_loop, handle_stream) is
unchanged — outgoing client methods guard on connection().is_none().
This commit is contained in:
2026-07-01 17:17:02 +00:00
parent 1900c72deb
commit ef53a03589
5 changed files with 522 additions and 28 deletions

View File

@@ -556,6 +556,7 @@ mod tests {
resources: HashMap::new(),
};
conn.connection()
.expect("quic connection present")
.set_identity(peer_identity)
.expect("identity not yet set");