The family standing rule (anything worth fuzzing gets fuzzed) landed on the core's ingress surfaces, per the plan's wave-5 charter and the alkblobs precedent (core/w5-fuzz-harness): - the fuzz/ sidecar: workspace-excluded cargo-fuzz runner, nightly pinned inside fuzz/ only; the invariant batteries live in the stable fuzz/shared crate (consumes alkgit's public API + two doc(hidden) exposures), so the committed corpus replays without a session - five targets: request_line (the ADR-016 grammar parser + wire reader as a differential pair against a framing oracle), pktline_framing (duplex read_request/read_push_request + stateless read_post, both services, budget arms at small bounds, machinery-misuse defenses asserted), command_parse (parse_fetch_args + parse_push_request), repo_id (validate_repo_id vs an independent oracle), open_params (the exact channels/git/sub establisher + the plan: None fallback's production param parse, cross-checked per input) - the committed corpus: 153 deterministic seeds via gen_fuzz_seeds.py; grown corpora/artifacts gitignored - the corpus gate joins AGENTS.md §Verification Commands - channels.rs: make_git_establisher + OpenParams exposed doc(hidden) for the open-op-params target (additive, pre-freeze; publish disposition flagged for release-readiness) - campaigns: all five clean — 0 crash/oom/timeout across ~4.3M execs; the R-5 io read-error arm fuzz-reached at 148 executions; the plan: None fallback body + accept_bi arm recorded honestly as not fuzz-reachable (behind the alkcall Connection transport) Verification: cargo test (workspace + --all-features + -p alkgit), both clippies (-D warnings), fmt, doc --no-deps clean; corpus gate 13/13; taskgraph validate ✓; five detached 90 s campaigns clean.
5 lines
48 B
Plaintext
5 lines
48 B
Plaintext
/target
|
|
Cargo.lock
|
|
!fuzz/Cargo.lock
|
|
.worktrees/
|