diff --git a/AGENTS.md b/AGENTS.md index 6d6d9d9..c7ba39f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -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 diff --git a/docs/research/phase-0.md b/docs/research/phase-0.md index d2094f9..28263db 100644 --- a/docs/research/phase-0.md +++ b/docs/research/phase-0.md @@ -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