Files
alksocks/tasks/implementation/review-protocol-core.md
T
glm-5.3-flash a2483e4a84 tasks: decompose the protocol-core group — thirteen dependency-ordered tasks
Batch 1 of the Phase 1 decomposition: the default, wasm-clean crate
(producer + consumer + wire + seams + params/errors), per the
architecture spec set (ADRs 001-013) and the three POCs' validated
shapes. The assembly layer (local/composed providers, front doors) is
batch 2, decomposed after review-protocol-core opens.

- foundation: crate-deps (alkcall 0.8.0 first consumption), wire-codec
  (the ASSOCIATE frame + the joint bound), seam-types (the three
  ADR-004 seams), params-errors (the one-way-door surface)
- harness: duplex transport + identities + in-process seams (the
  alkcall 0.8.0 establishment surface proven before the producer)
- verticals: producer/consumer splits per command (CONNECT,
  ASSOCIATE, BIND) — each POC's scope, producer tasks test via the
  raw RFC client, consumer tasks e2e through the harness
- closing: integration suite (three-command regression, teardown
  matrix, identity matrix, docs sync) + review-protocol-core (the
  batch gate)

taskgraph: 8 generations, no cycles, risk path 2.55 (no high-risk
tasks). Also records the wire.md/bast.md len=0 residue (payload-level
F-2 is the operative invariant) as a doc-sync deliverable of the
wire-codec task.

Verification: cargo test (76 passed), fmt clean; taskgraph
validate/cycles/parallel/critical clean.
2026-09-23 07:38:27 +00:00

3.0 KiB

id, name, status, depends_on, scope, risk, impact, level
id name status depends_on scope risk impact level
review-protocol-core Review — the protocol core before any assembly-layer work pending
implementation/core-integration-suite
narrow low project review

Description

Review checkpoint before batch 2 (the assembly layer: local providers, front doors, composed providers). Everything in batch 2 consumes the seams and the session types, so a core defect — a seam contract drift, a teardown hole, a wasm regression — would propagate into every downstream task. This review is the gate between the core group and the assembly layer, and the point where batch 2 gets decomposed (its task shapes may adjust to what the core actually landed).

Review against the architecture, in this order:

  1. Seam contracts (ADR-004, producer.md §The Three Seams): the readiness contract (next_reply Pending when nothing is ready — the contract test exists and pins it), ownership-rides-the-handle (no _ bindings of owning values; handles own their payloads structurally), the accept future owning its resources end-to-end (the quiet-wait drop IS the client-gone teardown), framing-once (the egress speaks inner bytes; the wire layer frames once).
  2. Wire fidelity (wire.md, ADR-003/ADR-007): the datagram frame (joint bound, F-2 at payload level), the phase model (no mode byte; post-reply garbage refused structurally in all three commands), the sentinel surfaces (ASSOCIATE's 127.0.0.1:0, BIND's variant-3 zeros), association lifetime = channel lifetime.
  3. Access control (ADR-006): the open gate (socks5:open at the registry), the command gate (socks5:bind at BIND dispatch), two grants never implied; refusals RFC-faithful everywhere (convention 2 — never collapsed into generic errors).
  4. Teardown/lifecycle (wire.md §Sentinels, alkcall ADR-050): pump_bidi awaited inline (R-02 — no spawn-and-forget); the teardown matrix tests actually pin the semantics; no teardown-at-birth paths (the third-witness pattern held).
  5. Convention compliance (AGENTS.md): no unwrap/expect/ panics outside tests; thiserror surfaces; no comments in code except doc comments + pinned non-obvious-correctness notes; naming; module structure (one module per file, lib.rs re-exports); producer/consumer vocabulary (no server/client framing outside RFC vocabulary).
  6. Wasm-clean invariant (ADR-009): both wasm checks green; no net-shaped feature; tokio on the wasm-clean subset; the harness and tests stay out of the wasm build.
  7. POC-fidelity spot-check: for two or three of the trickiest behaviors (the readiness contract, the quiet-wait two-exit semantics, the split-datagram reader persistence), diff the crate's behavior against the POC crates' findings — the POCs are the empirical record; drift is a finding.
  8. Docs sync: the specs match what landed (the integration task's reconciliation verified; any residue is a finding).

Notes

To be filled by implementation agent

Summary

To be filled on completion