Files
alktunnels/CHANGELOG.md
glm-5.3-flash c31dd5e100 chore: bump alkcall 0.7.1 -> 0.8.0; mark the review-008 asks landed
alkcall 0.8.0 lands both graduation upstream asks (review 008):
- U-2: the establisher → reply projection (ADR-049 amendment 3,
  Establishment::with_reply_field + open_channel_with_reply) — the
  bind-first 'bound' carrier
- U-1: flavor-form open-op ids in discovery (ADR-047 amendment 3) —
  the direct/forwarded ops reconstruct their marker through discovery
plus the bonus: in-tree ChannelRelay + HubLegTemplate (ADR-051) — the
hub re-produce machinery is upstream now; 'bound' flows end-to-end
per-hop truthful, realizing ADR-008 §6's sentence.

OQ-TN-12 resolves upstream (the composition helper a hub proxy needed
is alkcall's ChannelRelay); spec docs note the asks landed. No
alktunnels API or wire change in this bump — the graduation
implementation (tasks/tunnels) follows.

Verification: cargo test 71 passed (91 all-features), clippy
--all-targets -D warnings, fmt --check, wasm32-unknown-unknown check
+ clippy clean
2026-09-18 13:33:06 +00:00

3.8 KiB

Changelog

All notable changes to this crate are documented here. The format is based on Keep a Changelog, and this crate adheres to Semantic Versioning.

Unreleased

Spec work for the graduation (ADRs 007/008 — the direct op, listen metadata + the forwarded op) is committed and pinned; implementation is decomposed in tasks/tunnels/ and lands in the next release. The dependency bump below is the only behavior-affecting change so far (no wire or API change at this level yet).

Changed

  • alkcall 0.7.1 → 0.8.0 (crates.io). The two upstream asks the graduation ADRs depend on landed (alkcall review 008): the establisher → reply projection (Establishment::with_reply_field, ADR-049 amendment 3 — the bind-first bound carrier) and flavor-form open-op ids in discovery (ADR-047 amendment 3 — channels/tunnel/direct-shaped ops reconstruct their channel_open marker through discovery, so hub relay wraps them as channels, not plain forwarding stubs). Plus the bonus: ChannelRelay + HubLegTemplate (ADR-051) — the hub re-produce machinery the graduation's re-produce story assumed would be assembly-layer is now in-tree, with bound flowing end-to-end per-hop-truthful (ADR-051 §6, ADR-008 §6's sentence realized). No alktunnels API or wire change in this bump; 71/91 tests pass, wasm-clean verified.

0.1.0 - 2026-09-10

The initial release: the v1 tunnel protocol implementation over alkcall 0.7.x channels, spec-complete (Phase 1) and implementation- complete (Phase 2, review 001 findings remediated).

Added

  • Wire surface (one-way-door stable from this release): the channels/tunnel/sub open op on the alk/tunnel ALPN; params {resource, substrate} (deny_unknown_fields; ADR-001); the tunnel:open scope gate (ADR-006).
  • Data-plane codec (ADR-003): raw pass-through for stream substrates (tcp, unix); mandatory [len: u16 BE] boundary- preserving framing for udp (len = 0 a legal empty datagram, never EOF; oversize rejected at frame time; truncation fails loud — OQ-TN-13). The BAST contract: docs/architecture/bast.md.
  • Producer half (ADR-004): ResourceRegistry, tunnel_establisher (dial shape) and listen_establisher (the -R far-side accept shape) over alkcall's establishment surface (ADR-049), make_tunnel_pump_handler (the pump_bidi two-pump contract, alkcall ADR-050), and the register_tunnel_openable / register_tunnel_listen_openable registration helpers.
  • Consumer half (ADR-005): TunnelSessionopen (forward) / adopt (reverse), substrate-shaped data planes (stream_halves, take_halves, send_datagram/recv_datagram), pump ownership (pump_against), teardown ownership (close/join/Drop); open_reverse_channel for the hub-call path.
  • local feature (non-wasm): dial_tcp, bind_tcp + TcpListenerHalves accept loop, connect_udp wrapped in the FRAMED UdpHalf adapter (the codec composes at the substrate boundary — review 001 U-1), dial_unix, and the all-substrate local_dial closure. Stdio intentionally out of scope (alktty's pipe mode owns process stdio — OQ-TN-14).
  • Identity seam (alkcall 0.7.0 CF-005/CF-006): payload-token > ServingConfig.identity > transport identity precedence proven end-to-end; the per-call opener identity reaches the establisher.
  • Test suite: 71 tests default / 91 with local, including the review 001 gates (real-socket UDP framing probes, the AcceptQueue lost-wakeup regression, the identity-precedence matrix). Wasm-clean default crate verified (wasm32-unknown-unknown check + clippy).