zeroclaw/.github/workflows
Alex Gorevski 217a700bfa
ci: add fuzz testing workflow and harnesses (#629)
Problem: Security-critical parsing surfaces (config loading, tool
parameter deserialization) have no fuzz testing coverage. Malformed
inputs to these surfaces could cause panics, memory issues, or
unexpected behavior in production.

Solution: Add a weekly cargo-fuzz CI workflow with two initial
harnesses:
- fuzz_config_parse: fuzzes TOML config deserialization
- fuzz_tool_params: fuzzes JSON tool parameter parsing

The workflow runs each target for 300 seconds (configurable via
workflow_dispatch input), uses nightly Rust toolchain (required by
libfuzzer), and uploads crash artifacts for triage with 30-day
retention. Step summaries report pass/fail status per target.

Files added:
- .github/workflows/fuzz.yml (scheduled + manual dispatch)
- fuzz/Cargo.toml (fuzz crate manifest)
- fuzz/fuzz_targets/fuzz_config_parse.rs
- fuzz/fuzz_targets/fuzz_tool_params.rs

Testing: Validated YAML syntax and Cargo.toml structure. Fuzz
harnesses use standard libfuzzer-sys patterns. Actual fuzzing
will execute on first scheduled or manual CI run.

Ref: zeroclaw-labs/zeroclaw#618 (item 4 — Fuzz Testing)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-17 15:12:08 -05:00
..
auto-response.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
ci.yml refactor(ci): extract large inline scripts to scripts/ci/ (#587) 2026-02-17 14:17:00 -05:00
codeql.yml Standardize security workflow and enhance CodeQL analysis (#479) 2026-02-17 00:10:46 -05:00
docker.yml fix(ci): pin Blacksmith GitHub Actions to commit SHAs (#511) 2026-02-17 07:50:07 -05:00
e2e.yml feat(ci): add integration/E2E test stage with mock provider (#636) 2026-02-17 15:11:05 -05:00
feature-matrix.yml ci: add feature matrix testing workflow (#634) 2026-02-17 15:10:02 -05:00
fuzz.yml ci: add fuzz testing workflow and harnesses (#629) 2026-02-17 15:12:08 -05:00
label-policy-sanity.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
labeler.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
pr-hygiene.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
pr-intake-sanity.yml ci(pr-intake): make template/format checks advisory (#595) 2026-02-17 14:02:47 -05:00
release.yml ci(release): add hard binary size gate (#631) 2026-02-17 15:09:14 -05:00
rust-reusable.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
security.yml ci(security): pin rustsec audit action and supersede #588 (#592) 2026-02-17 13:39:47 -05:00
stale.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
update-notice.yml ci(workflows): consolidate policy and rust workflow setup (#564) 2026-02-17 11:35:20 -05:00
workflow-sanity.yml ci(workflows): split label policy checks from workflow sanity (#559) 2026-02-17 11:26:54 -05:00