core: the cross-cutting integration suite + docs sync

The batch-1 closing task: nine cross-cutting integration tests
(tests/core-integration.rs) pinning the whole protocol core end to
end over the channels harness, plus the architecture-sync docs pass.

Tests:
- One registration, all three commands: CONNECT + ASSOCIATE + BIND
  interleaved live on the one channels/socks5/sub op; a teardown
  ends only its own session (mux/demux isolation) — the POC #2/#5
  regression guard, complete.
- Concurrency: nine concurrent mixed-command sessions (raw topology)
  and six through the typed consumer sessions (consumer-side
  topology) — the mux/demux pinned in both channel-id allocation
  directions; fresh round-trips after the burst; no channel leaks.
- Teardown matrix (wire.md §Sentinels and lifecycle): CONNECT
  half-close, ASSOCIATE EOF, BIND client-gone (a parked accept so
  the quiet-wait exit is deterministic) — each followed by fresh
  sessions of every command (no connection poisoning).
- Identity/scope matrix (ADR-006 end to end): open-only (CONNECT +
  ASSOCIATE serve, BIND refused 0x02 at the command gate), bind-only
  fail-closed at the open gate for all commands (the spec drift the
  task's phrasing carried, reconciled — ADR-006's open gate requires
  socks5:open unconditionally), both-scopes (everything, granted
  explicitly); the CF-006 witness asserted per row.
- The readiness contract re-pinned under concurrent load: a
  hot-Ok(None) egress across concurrent associations does not starve
  the datagram stage's channel branch.

Docs sync: README Current State ("the protocol core is implemented"
+ the landed inventory; the decomposition residue gone); consumer.md
§Wiring reconciled to the landed session signatures; ADR-006
§Consequences states the grant asymmetry explicitly; lib.rs crate
docs describe the landed surface.

Verification: cargo test 302 green; --all-features green; clippy
--all-targets -D warnings clean; fmt --check clean; both wasm checks
clean; cargo doc --no-deps clean. Batch boundary holds: no
local/composed code, the default crate is protocol-only.
This commit is contained in:
glm-5.3-flash committed 2026-09-24 07:44:54 +00:00
1 parent c57451545d
commit 1ad8d9d489
6 files changed
+1196 -37

No files matched your search

+24 -13
View File
@@ -1,10 +1,10 @@
---
status: draft
last_updated: 2026-09-22 (the targeted fork — ADR-013; the module is
`src/rfc1928/`; the vendor posture retired. The vendor extraction
amendment ADR-011 §Amendment 2026-09-21; Phase 1 initial draft
2026-09-20 — the OQ-SK ledger promoted into ADRs 001-012 and
open-questions.md)
last_updated: 2026-09-24 (the protocol core landed + the cross-cutting
integration suite; the rfc1928 doc's targeted fork 2026-09-22; the
vendor extraction amendment ADR-011 §Amendment 2026-09-21; Phase 1
initial draft 2026-09-20 — the OQ-SK ledger promoted into ADRs
001-012 and open-questions.md)
---
# alksocks — Architecture
@@ -20,16 +20,27 @@ architecture spec docs and the ADRs.
## Current State
Phase 1 (Architecture) — initial draft. Phase 0
(`docs/research/phase-0.md`) is converged (2026-09-14) and
POC-complete (all numbered POCs passed or were dropped with the
scope decision); the OQ-SK ledger's Phase 1 inputs are collected and
promoted into ADRs 001–012. All docs are `draft` — they transition
Phase 1 (Architecture) — the **protocol core is implemented**. Phase
0 (`docs/research/phase-0.md`) is converged (2026-09-14) and
POC-complete (all numbered POCs passed or were dropped with the scope
decision); the OQ-SK ledger's Phase 1 inputs are collected and
promoted into ADRs 001–013. All docs are `draft` — they transition
to `reviewed` when their open questions resolve and the architecture
review passes. The RFC 1928 core is implemented (the targeted fork,
review passes.
The landed core (the protocol-only batch; no `local`/`composed` code
exists yet): the RFC 1928 core in `src/rfc1928/` (the targeted fork,
ADR-013 — the vendor group's six tasks landed and passed the
extraction review); the remaining layers follow the decomposition
phase.
extraction review), the ASSOCIATE datagram frame codec (`src/wire.rs`,
ADR-003), the open-op params + typed error surface (`src/params.rs` /
`src/error.rs`, ADR-001), the three seam types (`src/egress.rs`,
ADR-004), the producer half (`src/producer.rs` — the session-gate
establisher, the command-dispatch pump, the three commands, the scope
gates), and the consumer half (`src/consumer.rs` — the
connect/associate/bind session types with teardown ownership). The
batch-1 cross-cutting integration suite (`tests/core-integration.rs`)
pins the core's whole behavior end to end; the `local` and
`composed` provider groups follow (batch 2).
## Documents