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.
3.6 KiB
3.6 KiB
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 |
|
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:
- 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_replypublication; 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. - Wasm-clean invariant (ADR-009 §Amendment, ADR-011 §Amendment):
cargo check --target wasm32-unknown-unknownand native--no-default-features-equivalent cleanliness; nonet-shaped feature exists;tokiostays on the wasm-clean subset in[dependencies]. - Convention compliance (AGENTS.md): no
unwrap/expect/panics outside tests;thiserrorerror surface; no comments in code except doc comments and the pinned non-obvious-correctness notes; naming; module structure (one module per file,lib.rsre-exports). - 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.
- License/provenance (ADR-011): the vendor point (v1.0.0) noted in-tree; the MIT notice present and referenced.
- 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 checkandcargo 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.mdmatches 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