Files
alksocks/tasks/implementation/review-vendor-extraction.md
T
glm-5.3-flash 2cc010cf2b tasks: decompose the vendor group — six dependency-ordered tasks
The inline vendor (vendor.md, ADR-011 §Amendment) is the root of the
crate's dependency graph; this decomposes it before any downstream
group (params/wire/producer/consumer/doors).

- vendor-crate-scaffolding: Cargo.toml (wasm-clean tokio subset, no
  alkcall yet), lib.rs, vendor/ skeleton, bundled MIT notice
- vendor-wire-vocabulary: consts, codecs, errors, macros — with the
  extraction-boundary pins (error-variant pruning, pub command
  codecs, macro de-exporting)
- vendor-server-typestate: Socks5ServerProtocol + the new_reply
  publication (carried change #2); BIND's driving is producer-group
  work, the vendor carries only the surface
- vendor-client-session: Socks5Stream::use_stream path + the
  AsyncRead/AsyncWrite impls; Config pruned (connect_timeout cut);
  tests against a raw-byte mock server so it runs parallel with the
  typestate task
- vendor-differential-tests: RFC edge-case suite over duplex streams,
  pinning upstream behavior per vendor.md's differential posture
- review-vendor-extraction: the gate before downstream groups —
  file-by-file diff vs /workspace/fast-socks5 must contain only
  cut/carried-change/adjustment hunks

Graph validated: all dependency ids resolve, no cycles; topological
order scaffolding → wire → (typestate ∥ client) → tests → review.
2026-09-21 11:39:12 +00:00

3.6 KiB
Raw Blame History

id, name, status, depends_on, scope, risk, impact, level
id name status depends_on scope risk impact level
review-vendor-extraction Review — the vendor extraction before dependent layers pending
implementation/vendor-differential-tests
narrow low project review

Description

Review checkpoint before any layer builds on the vendor. Everything else in the crate (params, wire, producer, consumer, doors, backends) consumes the vendored typestate/codecs, so extraction errors — a behavior drift vs upstream, a missed cut, a wasm regression — would propagate into every downstream task. This review is the gate between the vendor group and the rest of the decomposition.

Review against the architecture, in this order:

  1. Extraction completeness vs the cut table (vendor.md): every "What is Extracted" row is present; every "What is NOT Extracted" row is absent. Diff src/vendor/ against /workspace/fast-socks5/src/ file-by-file — the diff must contain exactly: the extraction cut (deletions per the cut table), the two carried changes (new_reply publication; the BIND surface being present-and-public), the extraction-time adjustments (anyhow/log removal, error-variant pruning, macro de-exporting, the no-unwrap translations), and the provenance/license notes. Any diff hunk outside those categories is a finding.
  2. Wasm-clean invariant (ADR-009 §Amendment, ADR-011 §Amendment): cargo check --target wasm32-unknown-unknown and native --no-default-features-equivalent cleanliness; no net-shaped feature exists; tokio stays on the wasm-clean subset in [dependencies].
  3. Convention compliance (AGENTS.md): no unwrap/expect/panics outside tests; thiserror error surface; no comments in code except doc comments and the pinned non-obvious-correctness notes; naming; module structure (one module per file, lib.rs re-exports).
  4. RFC fidelity spot-check: run the differential test suite; for two or three of the trickiest pinned expectations (e.g. the reply-form byte counts, the method-negotiation preference order), independently verify the pinned bytes against the reference checkout and RFC 1928.
  5. License/provenance (ADR-011): the vendor point (v1.0.0) noted in-tree; the MIT notice present and referenced.
  6. Docs sync: vendor.md's extraction table and cut table match what landed (if the implementer discovered a boundary correction — e.g. a transitive dependency the cut table missed — the doc was updated in the same change, not silently diverged).

Acceptance Criteria

  • The file-by-file diff vs upstream contains only cut-table/carried-change/adjustment/provenance changes — no unexplained divergence
  • Both wasm checks pass (cargo check and cargo clippy --target wasm32-unknown-unknown -- -D warnings)
  • Full verification suite green: cargo test, cargo clippy --all-targets -- -D warnings, cargo fmt --check
  • No convention violations (unwrap/panics/error surface/naming)
  • License + provenance notes verified present
  • vendor.md matches the implemented tree (or the mismatch is filed as a blocker before proceeding)
  • Findings recorded; critical findings block the downstream task groups until resolved

References

  • docs/architecture/vendor.md (the spec under review)
  • docs/architecture/decisions/011-inline-vendor.md
  • docs/architecture/decisions/009-feature-gates.md
  • AGENTS.md (conventions 1–17; the verification commands)
  • /workspace/fast-socks5 (the reference checkout for the diff)

Notes

To be filled by implementation agent

Summary

To be filled on completion