wave-7 decomposition — seven fuzzing tasks: scaffold, parser exposure (§3.2 resolved as option b), three targets, campaigns + gate wiring, review gate
This commit is contained in:
1 parent
62cddade00
commit
67d1d7e34f
8 files changed
+685
-1
No files matched your search
@@ -49,7 +49,7 @@ readiness is wave 8.
|
||||
| 4 | [Postgres engine](#wave-4--postgres-engine): schema bootstrap, pool/open, listener/forwarder, all mechanisms, tx seam, pg backlog column | wave 1 | implemented + reviewed (2026-10-08) |
|
||||
| 5 | [Contract suite](#wave-5--contract-suite): the cross-engine equivalence properties (core-contract.md §Verification backlog), version-stamped per ADR-017 | waves 3 + 4 | implemented + reviewed (2026-10-10) |
|
||||
| 6 | [Mem engine](#wave-6--mem-engine): separate `alkstore-mem` crate, full contract v1 over in-memory mechanisms (tx overlay, queue/scheduler/streams/locks/wakes), the suite's third factory column (born pinned), wasm32 compile-clean acceptance | waves 1 + 5 | implemented + reviewed (2026-10-10) |
|
||||
| [7](#wave-7--fuzzing) | [Fuzzing](#wave-7--fuzzing): the `fuzz/` sidecar workspace (cargo-fuzz targets over the payload codec, the three `@every` parsers, name validation), committed seed corpora + the corpus-replay gate, detached campaigns | wave 6 | decided (2026-10-10, `docs/research/fuzzing.md`), not yet decomposed |
|
||||
| [7](#wave-7--fuzzing) | [Fuzzing](#wave-7--fuzzing): the `fuzz/` sidecar workspace (cargo-fuzz targets over the payload codec, the three `@every` parsers, name validation), committed seed corpora + the corpus-replay gate, detached campaigns | wave 6 | decomposed (2026-10-10) |
|
||||
| [8](#wave-8--release-readiness) | [Release readiness](#wave-8--release-readiness): crate docs, deployment matrix final pass, README (written last, honestly), publish prep | wave 7 | not yet decomposed |
|
||||
|
||||
## Wave 1 — Foundations
|
||||
@@ -398,6 +398,47 @@ workspace/publish-exclusion verification. Committed crash-input seeds
|
||||
promote into the corpus
|
||||
(the alksocks seed-900/901 posture); grown corpora stay gitignored.
|
||||
|
||||
**Wave 7's task set** (the decomposition, 2026-10-10 — the doc's §4
|
||||
sequencing: scaffold → exposure → targets in parallel → campaigns +
|
||||
gate wiring → review gate):
|
||||
|
||||
- `fuzz-scaffold` — the `fuzz/` sidecar workspace per §2's layout,
|
||||
copied from alksocks (nightly pin inside `fuzz/` only, the stable
|
||||
`fuzz/shared` skeleton, `run-detached.sh` verbatim, `json.dict`,
|
||||
`gen_fuzz_seeds.py` skeleton, the `fuzz/.gitignore` corpus pattern),
|
||||
plus the root workspace's defensive `exclude = ["fuzz"]`.
|
||||
- `fuzz-parser-exposure` — §3.2's design point, resolved: **option
|
||||
(b)**, `#[doc(hidden)]` narrow re-exports of the three
|
||||
`parse_every_interval` implementations + the three `skip_forward`
|
||||
boundary functions at each engine crate root (substrate untouched —
|
||||
lineage fidelity), with (a) as the recorded in-suite companion and
|
||||
(c) rejected per the family's no-`#[cfg(fuzzing)]` experience.
|
||||
- `fuzz-target-payload-codec` — the §3.1 target (core payload
|
||||
encode/decode invariants: no-panic, the typed-failure partition,
|
||||
deep-input loudness, Value + typed round-trips) + its seeds.
|
||||
- `fuzz-target-every-parse` — the §3.2 differential target over the
|
||||
three parsers + boundary arithmetic (three-way agreement, overflow
|
||||
posture, the giant-`n` arms) + its seeds; the wave's load-bearing
|
||||
target (the wave-6 finding class lives here).
|
||||
- `fuzz-target-name-validation` — the §3.3 target (totality,
|
||||
determinism, typed rejections, reserved-prefix rule, cap-boundary
|
||||
exactness) + its seeds.
|
||||
- `fuzz-campaigns-and-gate` — detached campaigns per target (§5's
|
||||
rule, §7's flags), findings dispositioned (crate-side fixed +
|
||||
promoted to seeds; harness-model into the research doc's
|
||||
implementation log), the corpus policy's final state, the
|
||||
AGENTS.md verification-list flip (the corpus-replay gate joins the
|
||||
merge gates), `fuzz/README.md` finalized.
|
||||
- `review-wave-7` — the gate (campaigns audit, replay-gate re-run,
|
||||
corpus policy, the named design points audited resolved, the wasm
|
||||
posture, records).
|
||||
|
||||
Parallelism note: the scaffold and the exposure task are independent
|
||||
of each other; the three targets are mutually parallel once their
|
||||
dependencies land (payload-codec and name-validation need only the
|
||||
scaffold; every-parse needs scaffold + exposure); campaigns gate on
|
||||
all three targets.
|
||||
|
||||
## Wave 8 — Release readiness
|
||||
|
||||
The original wave 6, renumbered twice: wave 7 when the mem engine
|
||||
@@ -609,6 +650,12 @@ decomposes. Specific gates:
|
||||
disposition note + Notes bullet, `review-wave-5` §Notes 4's audit row)
|
||||
retired with pointers, keeping the mem engine's fire posture written
|
||||
against a closed gap before wave 6.
|
||||
- **Wave-7 decomposition** (2026-10-10) — the fuzzing decision's
|
||||
task set: scaffold → exposure (§3.2 resolved as option (b) with the
|
||||
(a) companion) → three targets in parallel → campaigns + gate
|
||||
wiring (the AGENTS.md flip) → review gate. Seven tasks; the
|
||||
every-parse differential is the load-bearing one (the wave-6
|
||||
finding class). See the Wave 7 section.
|
||||
- **Wave-4 fix-batch decomposition** (2026-10-09) — the general
|
||||
review's findings decomposed into seven `pg-fix-*` tasks + a
|
||||
`review-wave-4-fixes` gate: Finding 1 → `pg-fix-forwarder-reconnect`
|
||||
|
||||
Reference in new issue
Block a user