Fix fuzz infrastructure: nightly toolchain, workspace isolation, private field access, add missing CI target#288
Draft
Fix fuzz infrastructure: nightly toolchain, workspace isolation, private field access, add missing CI target#288
Conversation
…private field access, add fuzz_daemon_decode_limits to CI Co-authored-by: jverdicc <23726212+jverdicc@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Run fuzz targets for 30 seconds and capture output
Fix fuzz infrastructure: nightly toolchain, workspace isolation, private field access, add missing CI target
Mar 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fuzz targets could not be built or run due to four distinct issues: missing nightly toolchain override, fuzz crate not isolated as a standalone workspace,
fuzz_ledger_opsaccessing privateConservationLedgerfields, andfuzz_daemon_decode_limitsabsent from the CI smoke run.Changes
fuzz/rust-toolchain.toml(new)nightly; cargo-fuzz requires nightly for-Z sanitizer/ coverage flags. Scoped only tofuzz/, leaving the workspace on stable.fuzz/Cargo.toml[workspace]table. Without it, Cargo treats the fuzz crate as part of the root workspace and cargo-fuzz fails with a workspace membership error.fuzz/fuzz_targets/fuzz_ledger_ops.rs— bug fixConservationLedgerfieldsfrozen,k_bits_total,access_credit_spent, andwealthare private; the target accessed them directly, causing a compile error. Replaced with the existing public accessors:scripts/test_evidence.shfuzz_daemon_decode_limitsto the fuzz smoke block (artifact init, run, and artifact presence check). It was the only one of the 8 required targets missing.TESTING_EVIDENCE.mdfuzz/.gitignore(new)target/,artifacts/,corpus/, andCargo.lockproduced by libfuzzer runs.Related references
AGENTS.mdTESTING_EVIDENCE.mddocs/TEST_EVIDENCE.mddocs/TEST_COVERAGE_MATRIX.mdChange type
Protocol and safety impact
Testing checklist
cargo fmt --checkpassescargo clippy --workspace --all-targets -- -D warningspassescargo test --workspacepassesunsafecodeEvidence
All 8 targets ran for 30 s with zero crashes:
fuzz_aspec_verifyfuzz_ledger_opsfuzz_oracle_roundtripfuzz_etl_opsfuzz_etl_read_entryfuzz_structured_claim_validatefuzz_probe_detectorfuzz_daemon_decode_limitsPre-existing
evidenceos-daemontest failure (missing field 'postflight_etl_path') confirmed unrelated to these changes.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.