11 KiB
id, name, status, depends_on, scope, risk, impact, level, tags
| id | name | status | depends_on | scope | risk | impact | level | tags | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| review-wave-7 | Review gate — wave 7 (fuzzing) | completed |
|
moderate | low | phase | review |
|
Description
The wave-7 review gate (the plan's §Review gates, wave-7 entry). Audit the fuzz wave as landed:
- Campaigns audit: each target's campaign ran via the detached
runner (logs in
fuzz/artifacts/), clean — or its findings fixed and crash inputs promoted to committed seeds with the re-run clean. Verify no campaign was run foreground (the §5 rule — process hygiene, checked by reading the logs' provenance and the task Notes). - Corpus-replay gate green on stable:
cargo test --manifest-path fuzz/shared/Cargo.tomlre-run this session; the replay modules exercise the same invariant functions the fuzz targets run (the §2 load-bearing layout rule — read one target's wiring end to end to confirm no drift between fuzz path and replay path). - Corpus policy audit: committed seeds per policy (hand-made + promoted crash inputs; deterministic generator re-run is a no-op diff); grown corpora + artifacts gitignored; nothing campaign-generated leaked into git.
- Named design points audited as resolved (the plan's wave-7
list): §3.2's parser exposure (option (b) landed; the substrate
delta visibility-only and confined to the re-derived
queue_ops.rswith its PROVENANCE.md entry — the amended criterion, per the E0364 resolution recorded infuzz-parser-exposure.md; the (a)-companion disposition recorded); the AGENTS.md verification-list flip (gate line present, fuzzing paragraph truthful); the workspace/publish-exclusion mechanism (exclude = ["fuzz"]on the root workspace table — the verification that no published package leaks the sidecar stays wave 8's, per §2). - Harness-model findings: documented in the research doc's implementation log (or the successful-negative-result disposition recorded there); any crate-side finding's fix verified against the invariant that caught it.
- wasm posture:
cargo check --target wasm32-unknown-unknown -p alkstore-memstill clean;sharedis referenced by no workspace crate. - Workspace gates re-run green this session (
cargo build,cargo test, clippy-D warnings, fmt) + thesharedclippy/fmt gates. - Records:
implementation.md's wave-7 row updated (implemented + reviewed); the research doc's Status header updated (targets implemented, campaigns run); task files audited (all wave-7 dependency tasks completed, Notes/Summary filled).
Acceptance Criteria
- Campaign audit recorded per target (runtime, flags, outcome, findings + dispositions)
- Corpus-replay gate re-run green this session; fuzz-path/replay drift check recorded for at least one target end to end
- Corpus policy verified (committed set, gitignore posture, generator determinism)
- The three named design points audited resolved, each with its evidence
- Research doc implementation log present (findings or the negative-result disposition)
- wasm check + all gates re-run green this session
implementation.mdwave-7 row updated; task files audited
References
- docs/plans/implementation.md §Wave 7, §Review gates (wave-7 entry)
- docs/research/fuzzing.md (§2 layout rules, §4 scope, §5 runner rule, §6 gate, §7 verification)
- tasks/review-wave-6.md (the gate pattern this mirrors)
- /workspace/@alkdev/alksocks/docs/research/fuzzing.md §7 (the negative-result disposition precedent)
Notes
Review-gate audit, all items green (2026-10-10). Only record-keeping defects surfaced; all fixed inline this session:
- Campaigns audit — four logs in
fuzz/artifacts/, all runner-provenance (the runner's-artifact_prefix=… -fork=1 -rss_ limit_mb=2048 -malloc_limit_mb=2048 -timeout=25 -max_total_time=…invocation line is logged verbatim; setsid/nohup detachment, output at the runner'sartifacts/path; three started 22:13:50–52 — genuinely parallel, which a foreground child sequence could not produce honestly). Every campaign over the §7 flags confirmed in the log headers (payload_codec -max_len=65536 -dict=json.dict;every_parse/name_validation -max_len=4096 -use_value_profile=1), all 915–939 s (the 900 s override), 41 fork jobs, exiting 0 withoom/timeout/crash: 0/0/0throughout:payload_codec221951 re-run (927 s, ~586k execs, 2395 edges),every_parse221351 (927 s, ~3.7M execs, 285 edges saturated),name_validation221352 (939 s, ~59k execs, 327 edges). The superseding evidence set matches the task Notes exactly: the pre-fix crash log 221350 (exit 77, ~38 s in — the f64 finding) with its crash artifact retained on disk (gitignored), the §7 smoke 215619, and zero crate-side findings beyond the every_parse task's two, fixed and registered as D-38. No stray fuzz processes (pgrep -af fuzzempty). - Replay gate green this session —
cargo test --manifest-path fuzz/shared/Cargo.toml: 6/6 tests (the three committed-corpus replays: 98 + 66 + 44 seeds, plus the no-corpus invariant probes). Drift check recorded for the load-bearing targetevery_parseend to end:fuzz_targets/every_parse.rsis the thinfuzz_target!wrapper delegating toalkstore_fuzz_shared::every_parse::fuzz_every_parse— the exact function the replay module also iterates — so the fuzz path and the replay path run the identical invariant body (typed-rejection pin, three-way agreement, the 17-accept/27-reject grammar battery, the 24 fixed adversarialskip_forwardtriples, and 24-byte-stride input-folded triples). The other two targets were spot-checked and have the identical shape. No drift. Additionally re-verified: the post-fix threeskip_forwardbodies are lexically identical (sqlite/pg/mem, read this session — the D-38 clamp + i128-gap shape), and the f64 drift disposition's invariant (FLOAT_DRIFT_ULPSbounded float-leaf closure + the exact closure elsewhere + decode-determinism) is what the replay exercises against the promotedseed-900. - Corpus policy — promoted crash input is byte-identical to
corpus/payload_codec/seed-900(cmpclean). Tracked corpus set is exactly 98 + 66 + 44seed-*files (git ls-files); the.gitignoreretighten holds (corpus/*contents ignored,!corpus/<target>/seed-*re-included;artifacts/coverage/targetignored —git check-ignoreverified both directions).python3 fuzz/gen_fuzz_seeds.pyre-run this session: zero diff (git status --porcelain fuzz/corpusempty — the generator determinism AC). - The three named design points — (i) parser exposure: option (b)
landed as decomposed; read the whole delta — the two visibility
keywords in the re-derived
queue_ops.rs, the one facade line + amended boundary doc insubstrate/mod.rs, PROVENANCE D-37, the three#[doc(hidden)] pub usepairs with the fuzz/test-only doc note at each engine root, the compile-level reachability pins (fuzz_surface_tests.rs×3, green in this session'scargo test); the E0364 amendment story is coherent as recorded, lineage body untouched. The (a)-companion disposition (not built; suite-pinned posture rides) is recorded in the exposure task's Notes, the every_parse task's Notes, and the research doc §9. (ii) The AGENTS.md flip is truthful: the gate line is on the Verification Commands list and the fuzzing paragraph states the adopted/landed state with the §5 runner rule. (iii) The publish-exclusion mechanism:exclude = ["fuzz"]on the root[workspace]table; the verification (no published package leaks the sidecar) stays wave 8's, as decomposed. - Harness-model findings — the research doc §9 implementation log is present and complete (the targets-landed entry, the f64 finding's full characterization and fix, the campaigns entry, and the successful-negative-result close). No crate-side campaign finding exists; the two every_parse task findings (fixed pre- campaign) were verified in the log — see item 2's read-back.
- wasm + isolation posture —
cargo check --target wasm32-unknown-unknown -p alkstore-memclean this session;grep -rn "fuzz-shared" --include=Cargo.tomlhits only the fuzz sidecar's own two manifests — no workspace crate referencesalkstore-fuzz-shared. - Gates re-run green this session — root:
cargo build,cargo test(all suites, 0 failures),cargo clippy --all-targets -- -D warnings,cargo fmt --check; shared: the replay gate, clippy-D warnings, fmt--check;cargo fuzz buildfromfuzz/(nightly pin selected, all three ASAN bins). Bonus byte-fidelity check:fuzz/run-detached.shis byte-identical to alksocks' (cmpclean — the scaffold AC's claim re-verified). - Records — task files audited: all six dependency tasks
completedwith Notes/Summary filled. Two fixed inline this session:fuzz-target-name-validation.mdandfuzz-campaigns-and-gate.mdhad their landed acceptance criteria still unticked (the work verified as done; boxes now[x]).implementation.md's wave-7 status row flipped toimplemented + reviewed (2026-10-10)(wasdecomposed). The research doc's Status header already states targets implemented + campaigns run (no edit needed). No deeper issues found — nothing deferred to a follow-up session.
Summary
The wave-7 review gate passed. Every dimension of the audit verified
this session: the four campaign logs match the §5 detached-runner
posture (parallel starts, runner invocation lines, fork mode, full
budgets, exit 0, zero crash/oom/timeout) with the finding evidence
set exactly as the tasks recorded it (pre-fix crash log + retained
artifact, the promoted seed-900 byte-identical to the crash input,
re-run clean); the corpus-replay gate is green on stable (98+66+44
seeds through the same invariant functions the fuzz targets run — the
end-to-end drift check on every_parse confirms wrapper and replay
converge on one body); the corpus policy's final state is intact
(tracked set = committed seeds only, generator re-run a no-op,
gitignore retighten holding); the three named design points audited
resolved with evidence (the twice-amended visibility-only exposure
delta with its D-37/D-38 registered story and reachability pins, the
truthful AGENTS.md flip, the exclude = ["fuzz"] mechanism with
verification parked at wave 8); the harness-model finding is fully
dispositioned in the research doc's §9 log (no crate bugs — the
successful-negative-result posture); wasm check and every gate
(workspace build/test/clippy/fmt, shared gate/clippy/fmt, cargo fuzz build) re-run green. Two record defects fixed inline (unticked AC
boxes in fuzz-target-name-validation and fuzz-campaigns-and-gate) and
the plan's wave-7 row flipped to implemented + reviewed (2026-10-10).
Wave 7 is closed; wave 8 (release readiness) can decompose.