Commit Graph

10 Commits

Author SHA1 Message Date
Ronald Eytchison 3c3ae36a11 Fix fuzzer-runner missing transitive dependency and add tests (#459)
* Use openlit <1.36.6

Openlit >=1.36.6 has a bug with langgraph instrumentation.

Also add a test to seed-gen for when openlit is enabled

* Link to issue

* Fix CoverageBot.run_task and add test cases

* Add setuptools as an explicit dependency

This is because a transitive dependency via clusterfuzz depends on it

* Appease ruff
2026-01-27 23:13:53 +01:00
Ronald Eytchison a31b670a2e Fix: Use Openlit <1.36.6 to avoid bug with langgraph instrumentation (#457)
* Use openlit <1.36.6

Openlit >=1.36.6 has a bug with langgraph instrumentation.

Also add a test to seed-gen for when openlit is enabled

* Link to issue
2026-01-27 16:28:41 -05:00
Henrik Brodin 42fb0c126d build(deps): pin protobuf to 3.20.3 in fuzzer_runner for OSS-Fuzz compatibility (#456)
Add uv constraint-dependencies to prevent protobuf from being updated
beyond 3.20.3, which is required for compatibility with OSS-Fuzz
infrastructure.

This prevents dependabot from creating PRs like #453 that would break
the fuzzer runner.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 22:25:04 +01:00
Henrik Brodin b94a23eedb build(deps): update openlit and pydantic to unblock mcp upgrade (#455)
Update dependency constraints to allow mcp 1.26.0:
- common: openlit ==1.35.0 -> ~=1.36.0
- orchestrator: pydantic ~=2.10.5 -> ~=2.11.0

The mcp upgrade was blocked because:
1. openlit 1.35.0 constrained openai-agents to older versions
2. pydantic <2.11.0 blocked mcp 1.23.0+ (requires pydantic>=2.11.0)

Resulting upgrades:
- mcp: 1.12.4 -> 1.26.0
- openlit: 1.35.0 -> 1.36.7
- pydantic: 2.10.6 -> 2.11.10
- openai-agents: 0.2.8 -> 0.3.3

Closes #450

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 14:15:53 +01:00
Henrik Brodin ddb25601a9 build(deps): add fuzzer_runner dependency updates (#451)
Updates pyasn1 0.6.1 → 0.6.2 and urllib3 2.5.0 → 2.6.3 in fuzzer_runner.

These updates are from Dependabot PRs #448 and #449.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 13:31:22 +01:00
Riccardo Schirone 47f38b8863 fix: apply ruff import sorting fixes to all source files
Run `ruff check --fix` across all components to fix I001 import sorting
violations in src/ and test/ directories.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 15:17:12 +01:00
Dan Guido 0206c0f6e1 chore: update Python dependencies and pyproject.toml configs
Update dependencies across all components:
- Update ruff to v0.12.0
- Add ty (Astral type checker) as dev dependency
- Standardize pyproject.toml configurations
- Regenerate uv.lock files

Components updated:
- common
- orchestrator
- fuzzer
- fuzzer_runner
- patcher
- program-model
- seed-gen

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:44:48 +01:00
Dan Guido 95875b4ec5 fix: apply shellcheck and shfmt fixes to all shell scripts
Apply automated fixes from shellcheck and shfmt to all shell scripts:
- Quote variables to prevent word splitting and globbing
- Use $(...) instead of backticks for command substitution
- Add proper shebang and set -euo pipefail where missing
- Fix array handling and iteration patterns
- Consistent indentation (4 spaces)
- Remove unnecessary curly braces and simplify expressions

Files fixed:
- deployment/*.sh
- scripts/*.sh
- orchestrator/scripts/*.sh
- fuzzer_runner/runner.sh
- protoc.sh

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:13:16 +01:00
Henrik Brodin 1d83c2daf4 Improve fuzzer logging (#416)
To help when integrating new harnesses with buttercup, this provides
more detailed logging about harness execution and exit.
2026-01-21 13:03:00 +01:00
Riccardo Schirone 143a59c236 fuzzer_runner: split fuzzer's dependencies (#320)
Before this commit, the fuzzer dependend on clusterfuzz, which uses
protobuf 3.20. Since fuzzer-bot depended on common subpackage as well
and also common (and the other packages) require protobuf, we had to use
protobuf 3.20 everywhere. This old dependency however means that a lot
of packages can't be used in their "newer" versions, because they depend
on newer protobuf versions.

This commit splits the fuzzer into a separate fuzzer-runner that is
executed in a separate process inside a separate venv. fuzzer-runner
executes the clusterfuzz-heavy operations (e.g. fuzzing) and isolates the
clusterfuzz dependency, so that the rest of the system can use newer
protobuf version.

* split `fuzzer-bot` in `fuzzer-runner` and `fuzzer-bot`
* have a "full" optional dependency group in `common`, including `openlit`
  and `protobuf`, so that `fuzzer-runner` can use the lite version of `common`
  without bringing those heavy deps
* move `FuzzConfiguration`/`BuildConfiguration` in a separate common file
  that doesn't require to load all protobuf files. Again, in this way
  other components can just depend on the `common` "lite" version and not
  require protobuf stuff
* add `fuzzer-runner` as a separate venv inside the `fuzzer-bot` container
* add `RunnerProxy` class in fuzzer package to provide an interface to
  interact with the fuzzer-runner binary.
2025-09-10 09:52:08 +02:00