docs: qualify the 256-channel figure — default policy knob, not a wire limit

channel_id is u32 on the wire (~4B ids, monotonic counter, ADR-040);
256 is the default per-connection max_channels (memory bound, 256x1MiB
reassembly buffers) and the default per-identity DoS cap (ADR-041) —
both configurable without a wire change. AGENTS.md convention 10 and
the OQ-SK-03 composed-egress note now carry the qualifier.
This commit is contained in:
2026-09-13 16:54:02 +00:00
parent 4730672f10
commit 921aaf3a9a
2 changed files with 8 additions and 3 deletions
+4 -1
View File
@@ -161,7 +161,10 @@ implementation agents.
(assembly layer), never the protocol crate.
10. **Backpressure and limits are inherited, not redefined** — bounded
per-channel buffers, the 256-channel per-connection cap, monotonic
per-channel buffers, the 256-channel default caps (per-connection
memory bound, ADR-040; per-identity DoS defense, ADR-041 — policy
knobs, configurable without a wire change; the `u32` wire space
itself is ~4 billion), monotonic
channel IDs, and the zero-length-sentinel EOF convention are
alkcall channels invariants (see alkcall ADR-040/041/034). The
crate consumes them via `ChannelCore`/`ChannelClient`; do not build
+4 -2
View File
@@ -529,8 +529,10 @@ what gets each datagram to `addr`?
handles* — because alktunnels' udp substrate is **connected**
(`connect_udp(target)`: one tunnel, one fixed target) while
ASSOCIATE names a different destination per datagram. Cost: one
open per destination (bounded by the 256-channel cap; fine for
DNS + browsing; the per-destination latency is a POC #2
open per destination (the per-connection/per-identity channel
defaults are 256 — ADR-040/041 policy knobs, configurable without a
wire change; the `u32` wire space is ~4 billion — so fine for DNS +
browsing, and the per-destination open latency is a POC #2
measurement). Benefit: **per-target ACL for free** — the ACL
governing the udp-tunnel resource governs egress per destination
(dissolving most of OQ-SK-05 for the composed path), and hub