chore(deps): consume alkcall 0.6.0 — OpenHandler gains the plan parameter

Mechanical pass for the alkcall 0.6.0 bump (review 007's
establishment follow-ups sweep: R-01 Establishment plan payload,
R-02 OpenHandler lifetime doc note, R-03 pump_bidi extraction):

- bump alkcall 0.5 -> 0.6 (gateway feature unchanged)
- the OpenHandler signature gained a plan parameter —
  Fn(Value, Option<ChannelPlan>, Connection, AuthContext) ->
  JoinHandle<()> — so the test's echo_open_handler closure gains
  `_plan` (the only closure-construction site in this crate)
- no ferry change: this crate constructs no Establishment and passes
  the Option<OpenEstablisher> through unchanged (OpenableAlpn fields
  and register_openable_with_establisher threading are unchanged in
  0.6.0); the establisher's Establishment.plan now reaches the pump
  handler's second parameter process-locally (ADR-049 amendment 2)
- docs updated: websocket.md (plan threading + pump_bidi pointer),
  OpenableAlpn field docs, with_ws_openable_alpns doc comment
- CHANGELOG [Unreleased] consumption-wave entry

Verification: cargo test (454 passed), cargo test --all-features
(587 passed), clippy -D warnings (default + all-features),
fmt --check, cargo doc --no-deps clean
This commit is contained in:
glm-5.3-flash committed 2026-09-07 09:24:00 +00:00
1 parent 0b60b8d0be
commit a9429dfb1d
7 files changed
+49 -8

No files matched your search

+4 -1
View File
@@ -273,7 +273,10 @@ impl HttpAdapter {
/// `channel_open` marker), the ALPN-specific
/// [`OpenHandler`](alkcall::channels::operations::OpenHandler),
/// and the optional establisher + per-registration timeout
/// (ADR-049, threaded through with `None` defaults). Each WS
/// (ADR-049, threaded through with `None` defaults). With an
/// establisher attached, its `Establishment.plan` (alkcall 0.6.0 /
/// ADR-049 amendment 2) is threaded process-locally to the pump
/// handler's second parameter. Each WS
/// session's per-session fork registers the set (plus the generic
/// channel ops, bootstrap discovery, and `op/register`), so a WS
/// client can open data channels exactly as any channels consumer
+13 -2
View File
@@ -271,13 +271,24 @@ pub struct OpenableAlpn {
/// per the upstream C-08 stub until channel adoption lands).
pub spec: OperationSpec,
/// The data-plane protocol handler spawned on the allocated
/// channel's `Connection`.
/// channel's `Connection` — `Fn(Value, Option<ChannelPlan>,
/// Connection, AuthContext) -> JoinHandle<()>`. With an
/// establisher attached, the plan (alkcall 0.6.0 /
/// ADR-049 amendment 2) is the establisher's `Establishment.plan`:
/// the establisher and the handler agree on the concrete type
/// (downcast in the ALPN crate); `None` when no establisher is
/// registered or it returned `Establishment::default()`
/// (`alkcall::channels::operations::Establishment::default`).
pub open_handler: OpenHandler,
/// The awaited establishment phase (ADR-049 §1): validate params
/// semantically, consult ownership, prepare/dial the backend —
/// before the open reply. `None` (the default) = an always-OK
/// establisher (the pre-ADR-049 shape; existing registrations
/// behave unchanged).
/// behave unchanged). A successful establisher returns
/// `Establishment::new(plan)` (to deliver a channel plan to the
/// pump handler) or `Establishment::default()` when it only
/// validates — both in
/// `alkcall::channels::operations`.
pub establisher: Option<OpenEstablisher>,
/// The per-registration bound on the establisher await
/// (ADR-049 §2). `None` = [`ESTABLISHMENT_TIMEOUT`] (10s) when the