review: the fix-round gate closed — every review-002 finding verified, batch 2 opens
The closing checkpoint (tasks/implementation/review-fix-round-002.md): each review-002 finding verified closed against the landed tree, the full verification sweep green, conventions re-swept, and the gate condition (ADR-014 accepted, no major finding) holds. Per-finding verification (all nine checklist points): - C-1: the take-guard verified — a second await_inbound returns the spent shape Ok(None), the re-read structurally impossible (the plane owns the stream); pinned by the double-read + reply1-twice tests. D-1's one-reader decision recorded (option (a), BindReply1 cut). - C-3 closed: the builder's explicit bind_policy is the substrate-free gate; the presence reading is only the backward-compat default; the pump handler's identity-derived gate byte-identical. - D-2 closed: the full builder chain through .register(...) serves all three commands end to end (RegisterMode::ProducerBuilder + the integration test, identity witness asserted). - N-1/N-4 coherent: the cut list gone (zero references), keep-notes current, the Refused vocabulary honest at all five sites + the harness's minimal producer, wire untouched, provenance extended. - D-3 resolved (declare side): the channel:open_failed ErrorDefinition declared, schema pinned drift-free against the typed parse table. - N-8 re-run: 96.30% regions / 97.28% lines; every named line covered; the residual attributed (accept_bi log arm, fork accepted-uncovered, test panic-guards) — no new load-bearing gaps. - N-5/N-6 verified: the shared module compiles into both crates via the crate-root mount + extern-crate-self alias; open_and_negotiate single-sources the teardown-at-birth prologue. - C-2 decided: ADR-014 accepted (option 1 — teardown-governed phases), the spec lines carry the posture. - Cross-cutting sweep green: test 375 green (+ all-features, local, composed), clippy -D warnings clean, fmt clean, doc clean, both wasm checks clean, publish dry-run completes; no unwrap/expect/panic in non-test code (mechanically attributed across src/); no local/ composed code exists (the batch boundary holds). One gate-round finding, F-1 (minor), fixed in this change: the review-numbering collision — "review 002 R-1/R-2/R-4" cited the batch-1 gate review's findings (tasks/implementation/ review-protocol-core.md) under a name that now means the general review; reworded to "the gate review's R-N" at all six sites (producer.rs, consumer.rs, egress.rs, the review doc). Review 002 marked resolved; the next general review doc is 003-*. Verification: cargo test (375 green), --all-features + --features local/composed green, clippy --all-targets -D warnings clean, fmt --check clean, doc clean, both wasm checks clean, publish dry-run completes, llvm-cov 96.30% regions / 97.28% lines attributed.
This commit is contained in:
1 parent
07b8a74241
commit
431920ddef
5 files changed
+222
-20
No files matched your search
+2
-1
@@ -107,7 +107,8 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
/// The spent-session marker (review 002 R-2): [`Socks5ChannelSession
|
||||
/// The spent-session marker (the gate review's R-2,
|
||||
/// tasks/implementation/review-protocol-core.md): [`Socks5ChannelSession
|
||||
/// ::into_inner`] / [`AssociateSession::into_inner`] return it when
|
||||
/// the pipe/stream was already taken — reachable only by calling
|
||||
/// twice on a session whose inner is gone. Carries nothing: a spent
|
||||
|
||||
+4
-3
@@ -41,9 +41,10 @@
|
||||
//!
|
||||
//! The readiness-contract behavioral tests (an instant-`Ok(None)`
|
||||
//! egress must not starve the datagram stage — including the
|
||||
//! zero-yield shape, review 002 R-1) live in the producer module's
|
||||
//! test suite, next to the stage they pin. This module carries the
|
||||
//! error→reply-code mapping tables, the sync-lift factory
|
||||
//! zero-yield shape, the gate review's R-1,
|
||||
//! tasks/implementation/review-protocol-core.md) live in the producer
|
||||
//! module's test suite, next to the stage they pin. This module
|
||||
//! carries the error→reply-code mapping tables, the sync-lift factory
|
||||
//! constructor, and the compile-shape assertions.
|
||||
|
||||
use std::future::Future;
|
||||
|
||||
+4
-2
@@ -383,7 +383,8 @@ where
|
||||
// and the runtime's other tasks on a current-thread
|
||||
// scheduler (an instantly-ready branch that yields
|
||||
// nothing wins every poll — the readiness contract's POC
|
||||
// #2 finding, hardened by review 002 R-1).
|
||||
// #2 finding, hardened by the gate review's R-1
|
||||
// (tasks/implementation/review-protocol-core.md)).
|
||||
reply = egress.next_reply() => {
|
||||
match reply {
|
||||
Ok(Some(frame)) => {
|
||||
@@ -1242,7 +1243,8 @@ mod tests {
|
||||
.expect("clean");
|
||||
}
|
||||
|
||||
/// The readiness contract's zero-yield bound (review 002 R-1): an
|
||||
/// The readiness contract's zero-yield bound (the gate review's
|
||||
/// R-1, tasks/implementation/review-protocol-core.md): an
|
||||
/// egress whose `next_reply` is a pure `async { Ok(None) }` —
|
||||
/// instantly ready AND yielding no poll boundary — must still not
|
||||
/// starve the stage's channel branch. The stage's `Ok(None)`
|
||||
|
||||
Reference in new issue
Block a user