mirror of
https://github.com/trailofbits/buttercup
synced 2026-06-21 14:11:39 +00:00
main
235 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5b52c8cfd9 |
build(deps): bump the uv group across 7 directories with 1 update (#556)
Bumps the uv group with 1 update in the /common directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /fuzzer directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /fuzzer_runner directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /orchestrator directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /patcher directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /program-model directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /seed-gen directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) Updates `langsmith` from 0.7.31 to 0.8.0 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.31...v0.8.0) --- updated-dependencies: - dependency-name: langsmith dependency-version: 0.8.0 dependency-type: indirect - dependency-name: langsmith dependency-version: 0.8.0 dependency-type: indirect - dependency-name: langsmith dependency-version: 0.8.0 dependency-type: indirect - dependency-name: langsmith dependency-version: 0.8.0 dependency-type: indirect - dependency-name: langsmith dependency-version: 0.8.0 dependency-type: indirect - dependency-name: langsmith dependency-version: 0.8.0 dependency-type: indirect - dependency-name: langsmith dependency-version: 0.8.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
adf5530b41 |
feat(llm): add newer Anthropic + OpenAI models (opus 4.6/4.7, sonnet 4.6, haiku 4.5, gpt-5.4/5.4-mini/5.5) (#544)
* feat(llm): add newer Anthropic and OpenAI models to LiteLLM Add 9 model entries across the LiteLLM proxy config, k8s values, and ButtercupLLM enum so callers can opt into newer models without code changes: openai-o4-mini, openai-gpt-5/-mini/-nano, claude-4-opus, claude-4.1-opus, claude-4.5-haiku, claude-4.6-sonnet, claude-4.7-opus. Verified end-to-end with docker compose: LiteLLM v1.57.8 boots cleanly, /v1/models lists all 27 entries, and chat completions for the new model IDs are dispatched to api.anthropic.com / api.openai.com. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(llm): narrow new model set to opus 4.6/4.7, sonnet 4.6, haiku 4.5 + gpt-5.4/5.4-mini/5.5 Replace the previously added openai-o4-mini and gpt-5/-mini/-nano entries with gpt-5.4, gpt-5.4-mini, gpt-5.5; drop claude opus 4 and 4.1 in favor of opus 4.6. Final new entries (7): claude-4.5-haiku, claude-4.6-sonnet, claude-4.6-opus, claude-4.7-opus, openai-gpt-5.4-mini, openai-gpt-5.4, openai-gpt-5.5. Re-verified with docker compose: LiteLLM v1.57.8 boots, /v1/models lists all 25 entries, and chat completions for claude-4.6-opus and openai-gpt-5.5 are dispatched to api.anthropic.com / api.openai.com. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
73bb479abe |
build(deps): bump the uv group across 7 directories with 1 update (#555)
Bumps the uv group with 1 update in the /common directory: [idna](https://github.com/kjd/idna). Bumps the uv group with 1 update in the /fuzzer directory: [idna](https://github.com/kjd/idna). Bumps the uv group with 1 update in the /fuzzer_runner directory: [idna](https://github.com/kjd/idna). Bumps the uv group with 1 update in the /orchestrator directory: [idna](https://github.com/kjd/idna). Bumps the uv group with 1 update in the /patcher directory: [idna](https://github.com/kjd/idna). Bumps the uv group with 1 update in the /program-model directory: [idna](https://github.com/kjd/idna). Bumps the uv group with 1 update in the /seed-gen directory: [idna](https://github.com/kjd/idna). Updates `idna` from 3.11 to 3.15 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md) - [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15) Updates `idna` from 3.11 to 3.15 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md) - [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15) Updates `idna` from 3.11 to 3.15 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md) - [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15) Updates `idna` from 3.11 to 3.15 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md) - [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15) Updates `idna` from 3.11 to 3.15 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md) - [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15) Updates `idna` from 3.11 to 3.15 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md) - [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15) Updates `idna` from 3.11 to 3.15 - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md) - [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15) --- updated-dependencies: - dependency-name: idna dependency-version: '3.15' dependency-type: indirect dependency-group: uv - dependency-name: idna dependency-version: '3.15' dependency-type: indirect dependency-group: uv - dependency-name: idna dependency-version: '3.15' dependency-type: indirect dependency-group: uv - dependency-name: idna dependency-version: '3.15' dependency-type: indirect dependency-group: uv - dependency-name: idna dependency-version: '3.15' dependency-type: indirect dependency-group: uv - dependency-name: idna dependency-version: '3.15' dependency-type: indirect dependency-group: uv - dependency-name: idna dependency-version: '3.15' dependency-type: indirect dependency-group: uv ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
ec7031c5ef |
fix(common): use budgeted LITELLM_API_KEY so LITELLM_MAX_BUDGET is enforced (#550)
* fix(common): use budgeted LITELLM_API_KEY for the LLM client create_llm() authenticated with BUTTERCUP_LITELLM_KEY, which litellm_config.yaml defines as general_settings.master_key. LiteLLM master keys bypass all budget/rate enforcement, so LITELLM_MAX_BUDGET had no effect — an e2e run with --budget 1 spent ~$4.77 unthrottled with every /chat/completions returning 200. The budgeted virtual key (llm-user, created with max_budget= $LITELLM_MAX_BUDGET by litellm-user-keys-setup) is already plumbed: seed-gen/patcher entrypoints export LITELLM_API_KEY from the mounted key file. create_llm() just never read it. Prefer LITELLM_API_KEY when set; fall back to BUTTERCUP_LITELLM_KEY so environments without a provisioned budgeted key are unaffected. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(compose): document LITELLM_MAX_BUDGET in env.template (complements #550) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
fb8aa17076 |
build(deps): bump the uv group across 7 directories with 1 update (#541)
Bumps the uv group with 1 update in the /common directory: [urllib3](https://github.com/urllib3/urllib3). Bumps the uv group with 1 update in the /fuzzer directory: [urllib3](https://github.com/urllib3/urllib3). Bumps the uv group with 1 update in the /fuzzer_runner directory: [urllib3](https://github.com/urllib3/urllib3). Bumps the uv group with 1 update in the /orchestrator directory: [urllib3](https://github.com/urllib3/urllib3). Bumps the uv group with 1 update in the /patcher directory: [urllib3](https://github.com/urllib3/urllib3). Bumps the uv group with 1 update in the /program-model directory: [urllib3](https://github.com/urllib3/urllib3). Bumps the uv group with 1 update in the /seed-gen directory: [urllib3](https://github.com/urllib3/urllib3). Updates `urllib3` from 2.6.3 to 2.7.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0) Updates `urllib3` from 2.6.3 to 2.7.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0) Updates `urllib3` from 2.6.3 to 2.7.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0) Updates `urllib3` from 2.6.3 to 2.7.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0) Updates `urllib3` from 2.6.3 to 2.7.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0) Updates `urllib3` from 2.6.3 to 2.7.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0) Updates `urllib3` from 2.6.3 to 2.7.0 - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: indirect dependency-group: uv - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: indirect dependency-group: uv - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: indirect dependency-group: uv - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: direct:production dependency-group: uv - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: indirect dependency-group: uv - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: indirect dependency-group: uv - dependency-name: urllib3 dependency-version: 2.7.0 dependency-type: indirect dependency-group: uv ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
ee57d23997 |
build(deps): bump the uv group across 7 directories with 2 updates (#539)
Bumps the uv group with 1 update in the /common directory: [langchain-core](https://github.com/langchain-ai/langchain). Bumps the uv group with 1 update in the /fuzzer directory: [langchain-core](https://github.com/langchain-ai/langchain). Bumps the uv group with 1 update in the /fuzzer_runner directory: [langchain-core](https://github.com/langchain-ai/langchain). Bumps the uv group with 2 updates in the /orchestrator directory: [langchain-core](https://github.com/langchain-ai/langchain) and [python-multipart](https://github.com/Kludex/python-multipart). Bumps the uv group with 1 update in the /patcher directory: [langchain-core](https://github.com/langchain-ai/langchain). Bumps the uv group with 1 update in the /program-model directory: [langchain-core](https://github.com/langchain-ai/langchain). Bumps the uv group with 1 update in the /seed-gen directory: [langchain-core](https://github.com/langchain-ai/langchain). Updates `langchain-core` from 1.2.31 to 1.3.3 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.31...langchain-core==1.3.3) Updates `langchain-core` from 1.2.31 to 1.3.3 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.31...langchain-core==1.3.3) Updates `langchain-core` from 1.2.31 to 1.3.3 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.31...langchain-core==1.3.3) Updates `langchain-core` from 1.2.31 to 1.3.3 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.31...langchain-core==1.3.3) Updates `python-multipart` from 0.0.26 to 0.0.27 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27) Updates `langchain-core` from 1.2.31 to 1.3.3 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.31...langchain-core==1.3.3) Updates `langchain-core` from 1.2.31 to 1.3.3 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.31...langchain-core==1.3.3) Updates `langchain-core` from 1.2.31 to 1.3.3 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.31...langchain-core==1.3.3) --- updated-dependencies: - dependency-name: langchain-core dependency-version: 1.3.3 dependency-type: direct:production dependency-group: uv - dependency-name: langchain-core dependency-version: 1.3.3 dependency-type: direct:production dependency-group: uv - dependency-name: langchain-core dependency-version: 1.3.3 dependency-type: direct:production dependency-group: uv - dependency-name: langchain-core dependency-version: 1.3.3 dependency-type: direct:production dependency-group: uv - dependency-name: python-multipart dependency-version: 0.0.27 dependency-type: indirect dependency-group: uv - dependency-name: langchain-core dependency-version: 1.3.3 dependency-type: direct:production dependency-group: uv - dependency-name: langchain-core dependency-version: 1.3.3 dependency-type: direct:production dependency-group: uv - dependency-name: langchain-core dependency-version: 1.3.3 dependency-type: direct:production dependency-group: uv ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
0f67b4812d |
build(deps): bump langchain-openai to 1.1.14 and pytest to 9.0.3 (#537)
Closes Dependabot alerts: - #190-195: langchain-openai SSRF via DNS rebinding (GHSA-r7w7-9xr2-qq2r) - #171-173: pytest tmpdir handling Required transitive bumps: - openlit 1.38 -> 1.41 (to allow openai>=2) - pytest-asyncio 0.25 -> 1.3 (for pytest 9 compatibility) - openai 1.109 -> 2.x (required by langchain-openai 1.1.14) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|
|
b3e58516ac |
build(deps): bump the uv group across 7 directories with 2 updates (#535)
Bumps the uv group with 1 update in the /common directory: [python-dotenv](https://github.com/theskumar/python-dotenv). Bumps the uv group with 2 updates in the /fuzzer directory: [python-dotenv](https://github.com/theskumar/python-dotenv) and [lxml](https://github.com/lxml/lxml). Bumps the uv group with 1 update in the /fuzzer_runner directory: [python-dotenv](https://github.com/theskumar/python-dotenv). Bumps the uv group with 1 update in the /orchestrator directory: [python-dotenv](https://github.com/theskumar/python-dotenv). Bumps the uv group with 1 update in the /patcher directory: [python-dotenv](https://github.com/theskumar/python-dotenv). Bumps the uv group with 1 update in the /program-model directory: [python-dotenv](https://github.com/theskumar/python-dotenv). Bumps the uv group with 1 update in the /seed-gen directory: [python-dotenv](https://github.com/theskumar/python-dotenv). Updates `python-dotenv` from 1.2.1 to 1.2.2 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2) Updates `python-dotenv` from 1.2.1 to 1.2.2 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2) Updates `lxml` from 5.3.2 to 6.1.0 - [Release notes](https://github.com/lxml/lxml/releases) - [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt) - [Commits](https://github.com/lxml/lxml/compare/lxml-5.3.2...lxml-6.1.0) Updates `python-dotenv` from 1.2.1 to 1.2.2 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2) Updates `python-dotenv` from 1.2.1 to 1.2.2 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2) Updates `python-dotenv` from 1.0.1 to 1.2.2 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2) Updates `python-dotenv` from 1.2.1 to 1.2.2 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2) Updates `python-dotenv` from 1.0.1 to 1.2.2 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: python-dotenv dependency-version: 1.2.2 dependency-type: indirect dependency-group: uv - dependency-name: python-dotenv dependency-version: 1.2.2 dependency-type: indirect dependency-group: uv - dependency-name: lxml dependency-version: 6.1.0 dependency-type: direct:production dependency-group: uv - dependency-name: python-dotenv dependency-version: 1.2.2 dependency-type: indirect dependency-group: uv - dependency-name: python-dotenv dependency-version: 1.2.2 dependency-type: indirect dependency-group: uv - dependency-name: python-dotenv dependency-version: 1.2.2 dependency-type: direct:production dependency-group: uv - dependency-name: python-dotenv dependency-version: 1.2.2 dependency-type: indirect dependency-group: uv - dependency-name: python-dotenv dependency-version: 1.2.2 dependency-type: direct:production dependency-group: uv ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
ae58bb8e8a |
build(deps): bump the uv group across 7 directories with 3 updates (#533)
Bumps the uv group with 1 update in the /common directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /fuzzer directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 2 updates in the /fuzzer_runner directory: [langchain-openai](https://github.com/langchain-ai/langchain) and [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /orchestrator directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 2 updates in the /patcher directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk) and [langchain-text-splitters](https://github.com/langchain-ai/langchain). Bumps the uv group with 1 update in the /program-model directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Bumps the uv group with 1 update in the /seed-gen directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk). Updates `langsmith` from 0.6.5 to 0.7.31 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.6.5...v0.7.31) Updates `langsmith` from 0.6.5 to 0.7.31 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.6.5...v0.7.31) Updates `langchain-openai` from 1.1.12 to 1.1.14 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-openai==1.1.12...langchain-openai==1.1.14) Updates `langsmith` from 0.6.5 to 0.7.31 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.6.5...v0.7.31) Updates `langsmith` from 0.6.5 to 0.7.31 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.6.5...v0.7.31) Updates `langsmith` from 0.6.5 to 0.7.31 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.6.5...v0.7.31) Updates `langchain-text-splitters` from 1.1.1 to 1.1.2 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-text-splitters==1.1.1...langchain-text-splitters==1.1.2) Updates `langsmith` from 0.6.5 to 0.7.31 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.6.5...v0.7.31) Updates `langsmith` from 0.6.5 to 0.7.31 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.6.5...v0.7.31) --- updated-dependencies: - dependency-name: langsmith dependency-version: 0.7.31 dependency-type: indirect dependency-group: uv - dependency-name: langsmith dependency-version: 0.7.31 dependency-type: indirect dependency-group: uv - dependency-name: langchain-openai dependency-version: 1.1.14 dependency-type: indirect dependency-group: uv - dependency-name: langsmith dependency-version: 0.7.31 dependency-type: indirect dependency-group: uv - dependency-name: langsmith dependency-version: 0.7.31 dependency-type: indirect dependency-group: uv - dependency-name: langsmith dependency-version: 0.7.31 dependency-type: indirect dependency-group: uv - dependency-name: langchain-text-splitters dependency-version: 1.1.2 dependency-type: indirect dependency-group: uv - dependency-name: langsmith dependency-version: 0.7.31 dependency-type: indirect dependency-group: uv - dependency-name: langsmith dependency-version: 0.7.31 dependency-type: indirect dependency-group: uv ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
db794fa1c7 |
build(deps): bump the uv group across 7 directories with 2 updates (#531)
Bumps the uv group with 2 updates in the /common directory: [pytest](https://github.com/pytest-dev/pytest) and [python-multipart](https://github.com/Kludex/python-multipart). Bumps the uv group with 2 updates in the /fuzzer directory: [pytest](https://github.com/pytest-dev/pytest) and [python-multipart](https://github.com/Kludex/python-multipart). Bumps the uv group with 1 update in the /fuzzer_runner directory: [pytest](https://github.com/pytest-dev/pytest). Bumps the uv group with 1 update in the /orchestrator directory: [python-multipart](https://github.com/Kludex/python-multipart). Bumps the uv group with 1 update in the /patcher directory: [python-multipart](https://github.com/Kludex/python-multipart). Bumps the uv group with 2 updates in the /program-model directory: [pytest](https://github.com/pytest-dev/pytest) and [python-multipart](https://github.com/Kludex/python-multipart). Bumps the uv group with 1 update in the /seed-gen directory: [python-multipart](https://github.com/Kludex/python-multipart). Updates `pytest` from 8.3.5 to 9.0.3 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.3) Updates `python-multipart` from 0.0.22 to 0.0.26 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26) Updates `pytest` from 8.3.5 to 9.0.3 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.3) Updates `python-multipart` from 0.0.22 to 0.0.26 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26) Updates `pytest` from 8.3.5 to 9.0.3 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.3) Updates `python-multipart` from 0.0.22 to 0.0.26 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26) Updates `python-multipart` from 0.0.22 to 0.0.26 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26) Updates `pytest` from 8.3.5 to 9.0.3 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.3) Updates `python-multipart` from 0.0.22 to 0.0.26 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26) Updates `python-multipart` from 0.0.22 to 0.0.26 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26) --- updated-dependencies: - dependency-name: pytest dependency-version: 9.0.3 dependency-type: direct:development dependency-group: uv - dependency-name: python-multipart dependency-version: 0.0.26 dependency-type: indirect dependency-group: uv - dependency-name: pytest dependency-version: 9.0.3 dependency-type: direct:development dependency-group: uv - dependency-name: python-multipart dependency-version: 0.0.26 dependency-type: indirect dependency-group: uv - dependency-name: pytest dependency-version: 9.0.3 dependency-type: direct:development dependency-group: uv - dependency-name: python-multipart dependency-version: 0.0.26 dependency-type: indirect dependency-group: uv - dependency-name: python-multipart dependency-version: 0.0.26 dependency-type: indirect dependency-group: uv - dependency-name: pytest dependency-version: 9.0.3 dependency-type: direct:development dependency-group: uv - dependency-name: python-multipart dependency-version: 0.0.26 dependency-type: indirect dependency-group: uv - dependency-name: python-multipart dependency-version: 0.0.26 dependency-type: indirect dependency-group: uv ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
ec41f764cd |
build(deps): bump langchain-core from 1.2.23 to 1.2.28 in /common (#518)
Bumps [langchain-core](https://github.com/langchain-ai/langchain) from 1.2.23 to 1.2.28. - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.23...langchain-core==1.2.28) --- updated-dependencies: - dependency-name: langchain-core dependency-version: 1.2.28 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
0276f04eb8 |
build(deps): bump cryptography from 46.0.6 to 46.0.7 in /common (#515)
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.6 to 46.0.7. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/46.0.6...46.0.7) --- updated-dependencies: - dependency-name: cryptography dependency-version: 46.0.7 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
a20170e6c6 |
build(deps): bump langchain-core and cryptography for security fixes (#502)
Upgrade langchain-core ~=1.2.22 (resolves to 1.2.23) to fix high-severity path traversal in legacy load_prompt functions (GHSA dependabot alerts). Upgrade cryptography to 46.0.6 to fix low-severity incomplete DNS name constraint enforcement. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
6d869033b6 |
build(deps): bump langchain-core from 1.2.21 to 1.2.22 in /common (#499)
Bumps [langchain-core](https://github.com/langchain-ai/langchain) from 1.2.21 to 1.2.22. - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.21...langchain-core==1.2.22) --- updated-dependencies: - dependency-name: langchain-core dependency-version: 1.2.22 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
04469d6a53 |
build(deps): bump requests from 2.32.5 to 2.33.0 across all components (#497)
Consolidates Dependabot PRs #491-#496 into a single update. Updates lock files for common, fuzzer, fuzzer_runner, orchestrator, patcher, program-model, and seed-gen. Also bumps the orchestrator pyproject.toml constraint from ~=2.32.3 to ~=2.33.0. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
385ea5ce93 |
Update langchain ecosystem and transitive dependencies (#490)
* build(deps): update langchain ecosystem and transitive dependencies Upgrade dependencies across all components: - langchain-core: 0.3.x -> 1.2.21 - langgraph: 0.6.x -> 1.0.10+ - langgraph-checkpoint: 3.x -> 4.0.1 - langchain: 0.3.x -> 1.2.x, langchain-openai: 0.3.x -> 1.1.x, langchain-community: 0.3.x -> 0.4.x (ecosystem alignment) - langfuse: 2.59.x -> 4.0.1 (compat with langchain 1.x) - openlit: 1.36.x -> 1.38.x (remove langgraph ToolNode workaround) - pydantic-settings: 2.7.x -> 2.10.x (langchain-community requirement) - openai: 1.100.x -> 1.109.x (langchain-openai requirement) - orjson: 3.11.5 -> 3.11.7 - PyJWT: 2.10.1 -> 2.12.1 - pyasn1: 0.6.2 -> 0.6.3 Code changes for langchain 1.x compatibility: - common/llm.py: update imports for langchain-core and langfuse 4.x - seed-gen/task.py: update langchain.prompts -> langchain_core.prompts - Move langfuse to common[full] optional deps to avoid protobuf conflict with clusterfuzz in fuzzer_runner Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ci): fix import sorting and ignore unfixed pygments CVE - Sort imports in seed-gen/task.py to satisfy ruff I001 - Add CVE-2026-4539 (pygments ReDoS, no fix available) to pip-audit ignore list in CI workflow Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ci): remove stale pip-audit ignores for orjson and protobuf CVE-2025-67221 (orjson) and CVE-2026-0994 (protobuf) are fixed in the versions now pinned in our lockfiles (orjson 3.11.7, protobuf 6.33.5). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: move langfuse import to top level in llm.py Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
b5aa20d0b4 |
build(deps): bump cryptography from 46.0.3 to 46.0.5 in remaining components (#471)
Bump cryptography to 46.0.5 in common, orchestrator, patcher, program-model, seed-gen, and fuzzer_runner lock files to match the fuzzer component which was already updated in #470. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
09f2980ff9 |
Add optional tmpfs storage for fuzzing corpus (#461)
* Add optional tmpfs storage for fuzzing corpus Add support for storing the node-local fuzzing corpus in tmpfs (RAM-based filesystem) for improved I/O performance during fuzzing operations. Key changes: - Add CORPUS_TMPFS_PATH environment variable to configure tmpfs location - Add cross-filesystem safe operations (copy+delete fallback for EXDEV) - Update Corpus class to use tmpfs path when enabled while maintaining correct remote path calculation for rsync synchronization - Add Helm chart configuration using /dev/shm (requires no host setup) - Update fuzzer-bot, coverage-bot, merger-bot, seed-gen deployments The feature is disabled by default. Enable by setting global.volumes.corpusTmpfs.enabled=true in values.yaml. Uses hostPath to /dev/shm/buttercup-corpus which is available on Linux systems without requiring any Kubernetes host configuration. |
||
|
|
0268403c44 |
Update protobuf to 6.33.5 to fix high severity security vulnerability (#463)
Resolves Dependabot alerts #62, #71, #81 by updating protobuf from 6.33.4 to 6.33.5 across all components. |
||
|
|
240112f2a6 | Only copy generated seeds to node-local corpus (#460) | ||
|
|
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 |
||
|
|
594748aec1 |
Use claude 4.5 (#437)
* Replace Claude 4 with Claude 4.5 Also remove Claude 3.5 and replace usage with Claude 4 * Use claude 4.5 as the Anthropic fallback model for patcher |
||
|
|
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> |
||
|
|
885912d755 |
fix: configure subprocess mock as context manager for tests
The subprocess mock was missing __enter__ and __exit__ configuration, causing tests to hang when ChallengeTask._run_cmd used `with subprocess.Popen(...) as process:` context manager syntax. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
f9d5073c6e |
ci: switch protobuf generation to grpcio-tools
Use grpcio-tools from the common venv instead of system protoc for consistent protobuf code generation across development and CI. Changes: - Update protoc.sh to use `python -m grpc_tools.protoc` - Add grpcio-tools ~=1.73.1 to common dev dependencies - Update check-protobuf CI job to run from common venv - Regenerate msg_pb2.py and msg_pb2.pyi with new tooling - Document protobuf generation requirement in CLAUDE.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
00283a31a5 |
fix: apply ruff and ty fixes to all Python source files
Apply automated fixes from ruff (import ordering, formatting) and ty (type checker) to all Python source files across all components: - Reorder imports according to isort/ruff rules - Remove unnecessary type: ignore comments - Fix minor type issues identified by ty - Add atexit.register(logging.shutdown) where needed - Consistent formatting Components affected: - common/src/ - orchestrator/src/ - fuzzer/src/ - fuzzer_runner/src/ - patcher/src/ - program-model/src/ - seed-gen/src/ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
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> |
||
|
|
9575877a3e |
Use project specified in oss-fuzz (#415)
* Use project specified in oss-fuzz This will use the contents of the oss-fuzz provided container as the projects contents instead of a user supplied git url. This will allow to run projects very similar to how oss-fuzz does it. It will enable analysis of e.g. libmodbus who was previously not possible due to the fuzzing harnesses being overwritten/shadowed by the mount of project directory. Use project_name for focusdir when in doubt |
||
|
|
f720f00eb8 |
feat: add extract_povs command to buttercup-util (#410)
Add new CLI subcommand to extract PoVs, stack traces, and patches from Redis submissions into a structured directory format for easy analysis. Features: - Extracts crash inputs (PoV files) via kubectl cp from cluster pods - Writes fuzzer and tracer stack traces to text files - Exports associated patches with metadata - Organizes output by project/task_id/vulnerability - Supports filtering by task_id and passed_only options - Skips empty patch trackers (placeholders that never received content) |
||
|
|
36fc163e90 |
Test that helper.py patching works across commits (#383)
Check out the oss-fuzz repo at differrent commits to ensure helper.py patching reliably fixes the upstream issue. |
||
|
|
36c47bdf1b |
Apply OSS-Fuzz reproduce_impl fix to all architectures (#381)
OSS-Fuzz helper.py reproduce_impl passes err_result as positional arg to docker_run(), interpreted as print_output=False, redirecting output to /dev/null, breaking test_real_reproduce_pov on x86_64 CI. Refactor _hack_oss_fuzz_aarch64_runner into unified _hack_oss_fuzz_runner that takes architecture parameter and applies: - Common fixes (reproduce_impl, debug tag, tag handling) to all arches - ARM64-specific fixes (:manifest-arm64v8 tags) conditionally Update get_rw_copy to call helper.py patching for all architectures. |
||
|
|
130d6576ce |
Fix ARM64 crash reproduction and helper.py patching (#378)
The tracer bot failed to reproduce crashes on ARM64 due to incorrect parameter passing in the reproduce_impl patch. The err_result value was being passed as a positional argument to docker_run(), which interpreted it as print_output=False, redirecting all output to /dev/null. Changes: - Fix reproduce_impl to pass architecture as keyword arg only - Refactor ARM64 patching into separate dockerfile and runner functions - Add comprehensive helper.py patching for ARM64: * Patch image_name variables to use :manifest-arm64v8 tag * Patch BASE_RUNNER_IMAGE assignment with tag stripping * Fix debug mode tag insertion (insert -debug before tag, not after) * Prevent double-tagging in _get_base_runner_image() - Default CLI architecture parameters to ARCHITECTURE constant This enables the tracer bot to see fuzzer output and successfully detect crash reproduction on ARM64 systems. Co-authored-by: Riccardo Schirone <562321+ret2libc@users.noreply.github.com> |
||
|
|
73ae1e8a6a | Use :manifest-arm64v8 tag for aarch64 deployments (#375) | ||
|
|
0d71570949 |
Add support for C++ projects (#357)
* Split C and C++ projects * Add support for C++ files in tree-sitter * Remove patch_validation step because it does not support c++ and it was anyway a leftover from the AIxCC competition. It can actually happen that a patch needs to fix a harness and checking if the patch is only in the right type of file was never that good. * Remove language-identifier binaries because not needed anymore (due to previous point). |
||
|
|
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. |
||
|
|
2be6f91545 |
Parse result logs (#326)
* Add doc on parsing logs and scripts to unpack dataset * Reorganize scripts * Reorg markdown files. |
||
|
|
c25b3956d0 |
Support Gemini (#306)
* Add gemini api key option during setup and in deployment environments * Add gemini pro as a fallback model in all components * Lint * Set rate limits for gemini models * Add fallback models in more places * Fix typo * Fix kwargs expansion * Fix instantiation of llm with callbacks * Fixed formatting after merge * Fix instantiation of default models * Lint * Fix llm creation * Fix * Lint * Lint --------- Co-authored-by: Michael D Brown <michael.brown@trailofbits.com> |
||
|
|
7bc3dfdc43 | chore: standardize ruff configuration across all components (#310) | ||
|
|
42691e50b4 |
style: apply ruff auto-fixes and formatting across entire codebase (#309)
* style: apply ruff auto-fixes and formatting across entire codebase Applied safe auto-fixes from ruff v0.12.9 with --select ALL to improve code quality: - Reorder imports (stdlib → third-party → local) - Use modern type hints (collections.abc.Generator instead of typing.Generator) - Add trailing commas for better diffs - Format multi-line function parameters for readability - Add strict=False to zip() calls for explicit behavior - Simplify redundant elif to if after return statements - Consistent code formatting with ruff format These are all mechanical, non-controversial changes that improve code consistency without altering functionality. Changes affect 180 files across all modules: common, fuzzer, orchestrator, patcher, program-model, and seed-gen. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * re-applt ruff after merge --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Michael D Brown <michael.brown@trailofbits.com> |
||
|
|
37597105ed |
Standardize Python packaging and project configuration (#285)
* fix: respect OSS_FUZZ_CONTAINER_ORG environment variable The oss_fuzz_container_org property now checks the OSS_FUZZ_CONTAINER_ORG environment variable first before falling back to parsing the helper file. This fixes the failing test_container_image_custom_org integration test that was caught in nightly CI. The test was expecting that setting OSS_FUZZ_CONTAINER_ORG=myorg would result in container images using that organization, but the code was ignoring the environment variable entirely. * fix: standardize Python packaging and project configuration - Fix critical Python version inconsistency (common was 3.10+, dependents required 3.12+) - Standardize project metadata: add descriptions, licenses, consistent author emails - Implement consistent dependency management using compatible release (~=) strategy - Modernize all components to use [project.optional-dependencies] instead of [dependency-groups] - Restore essential tool configurations (ruff lint rules, pytest settings, coverage config) - Remove redundant component Makefiles (orchestrator, program-model) - Add project URLs for better package discoverability This resolves packaging inconsistencies introduced in PR #271 while maintaining modern Python packaging standards. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: restore accidentally removed Makefiles with unique functionality - Restore orchestrator/Makefile: contains unique API management targets (update-apis, generate-competition-api) - Restore program-model/Makefile: contains specific integration test commands not in root Makefile - These Makefiles provide component-specific functionality not available elsewhere * fix: standardize program-model Dockerfile to use Python 3.12 Ensures consistency with pyproject.toml requirement of Python >=3.12,<3.13. This aligns with the other components and standardizes Python version across all Dockerfiles in the project. * refactor: improve Dockerfile consistency and layer caching - Combine consecutive apt operations to reduce layers - Add missing DEBIAN_FRONTEND=noninteractive declarations - Ensure all apt operations include cleanup with rm -rf /var/lib/apt/lists/* - Reduces image size and improves build consistency * fix: use [dependency-groups] instead of [project.optional-dependencies] Addresses reviewer feedback that [dependency-groups] is the semantically correct approach for development dependencies like test, lint, and typing tools. Per PEP 735 and packaging.python.org guidance: - [dependency-groups] for development workflow dependencies - [project.optional-dependencies] for optional user-facing features This standardizes all components to use the modern PEP 735 approach. * fix: move dependencies from [project.urls] to [project] section Fixes TOML syntax error where dependencies array was incorrectly placed under [project.urls] instead of [project], causing build failures: 'TypeError: URL of field must be a string' This resolves CI failures across all components during uv sync. * fix: temporarily disable ruff rules to resolve CI failures Temporarily disabled the following ruff rules for standardization PR: - I001: Import block is un-sorted or un-formatted - E501: Line too long - W291: Trailing whitespace - UP006: Use built-in collection types for type annotations - UP015: Unnecessary mode argument - UP035: Import from modern locations instead of deprecated typing - UP046: Use modern generic class syntax These rules were disabled in common/ and fuzzer/ components where they were causing CI failures. Rules are commented with intention to re-enable after refactoring work is complete. Also fixed ruff formatting issues in seed-gen component. * refactor: simplify dependency groups per maintainer feedback Address maintainer feedback by consolidating dependency groups: - Combined dev/test/typing/lint groups into single practical 'dev' group - Ensures mypy gets all required type stubs (no more missing dependencies) - Eliminates duplication and reduces cognitive overhead - Users now only need: uv sync --group dev Also removed pytest configuration from common/ as requested, since most settings were defaults and only existed in one component. Changes provide better developer experience with simpler, working dependency management. * fix: add missing UP045 rule to ruff ignore lists Addresses CI failure: 'UP045 Use X | None for type annotations' Added UP045 to ruff ignore lists in: - common/pyproject.toml - fuzzer/pyproject.toml - orchestrator/pyproject.toml - seed-gen/pyproject.toml This completes the temporary rule disabling for the standardization PR. UP045 enforces modern union syntax (X | None vs Optional[X]) - will re-enable after refactoring. * fix: correct argon2-cffi version constraint in orchestrator Changes argon2-cffi from ~=21.0.0 to ~=21.3.0 to resolve dependency resolution failure. Version 21.0.0 never existed on PyPI - available versions jump from 20.1.0 directly to 21.1.0. This restores the previously working constraint and resolves: 'No solution found when resolving dependencies: argon2-cffi>=21.0.0,<21.1.dev0' * chore: update mypy to latest version 1.17.1 Updates mypy from 1.15.0 to 1.17.1 across all components to ensure we're using the latest type checker features and bug fixes. ruff is already on the latest version (0.12.8). This keeps the linting tools current and prevents them from becoming outdated over time. * fix: add necessary ruff ignore rules to orchestrator Add the specific ruff rules that orchestrator needs disabled based on CI lint failures. Other components passed linting, so only orchestrator needs these additional rules. Rules added: - I001: Import block formatting - E501: Line too long - UP006: Built-in collection types - UP007: Union type annotations - UP009: UTF-8 encoding declarations - UP015: Unnecessary mode argument - UP035: Modern import locations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: add missing ruff config and project metadata - Add ruff configuration to program-model for consistency - Add project URLs to 4 components for discoverability - Add types-redis to fuzzer dev dependencies for type checking - Ensure all components have consistent ignore rules * fix: add additional ruff ignore rules for patcher and program-model - Add W293, UP012, UP031 to patcher ignore list - Add UP032 to program-model ignore list - Ensures ruff checks pass for both components * fix: resolve ruff formatting and dependency issues - Format all program-model files with ruff (28 files reformatted) - Standardize patcher dependencies to use ~= version specifiers - Update langgraph-checkpoint to ~=2.1.0 to resolve conflicts - Fix Docker PYTHON_VERSION variable usage in patcher/Dockerfile - Update patcher lock file with new dependency constraints * Update tree-sitter-language-pack and refresh uv.lock --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Michael D Brown <michael.brown@trailofbits.com> Co-authored-by: Riccardo Schirone <riccardo.schirone@trailofbits.com> |
||
|
|
65a80c28a7 | minor refactor: don't cast bool to bool (#282) | ||
|
|
a533a28d47 |
Revert "refactor: standardize packaging across all components (#266)"
This reverts commit
|
||
|
|
465d05fa9c |
Revert "Standardize packaging and dev dependencies across components (#268)"
This reverts commit
|
||
|
|
1c574962b3 |
Standardize packaging and dev dependencies across components (#268)
* fix: standardize packaging configuration across components - Fix fuzzer package name from 'fuzzing-infra' to 'fuzzer' for consistency - Add missing README field to common/pyproject.toml - Standardize seed-gen script naming to follow buttercup-* convention - Remove redundant flake8 dependency from orchestrator and patcher (ruff handles linting) - Update lock files to reflect dependency changes - Auto-format code in common and seed-gen components * refactor: standardize dev dependencies across all components - Add pytest-cov to all components for consistent test coverage reporting - Standardize types-redis version to 4.6.0 across all components - Standardize types-requests version to 2.32.0 where used - Remove unused pytest-asyncio from orchestrator and patcher (no async tests found) - Remove unused types-python-dateutil from patcher (only used in orchestrator) - Keep component-specific dependencies where justified: - orchestrator: pytest-xdist for parallel testing, API testing tools - patcher: pytest-xdist for parallel testing - common: types-PyYAML, dirty-equals for testing - seed-gen: tqdm for progress bars All components now have consistent base dev dependencies with optional extras as needed. This improves maintainability and reduces confusion. * fix: update deployment configs for renamed seed-gen command - Update docker-compose to use buttercup-seed-gen command - Update Kubernetes/Helm deployment to use buttercup-seed-gen command - These are critical fixes to ensure deployments work with the renamed command |
||
|
|
cc938e105f |
refactor: standardize packaging across all components (#266)
* refactor: standardize packaging across all components - Standardize Python version to >=3.12,<3.13 for all components - Migrate from [project.optional-dependencies] to modern [dependency-groups] (PEP 735) - Standardize ruff line-length to 120 characters across all components - Add consistent project metadata: - AGPL-3.0 license field - Repository and Issues URLs - Improved, descriptive description fields - Fix email addresses to include .com domain This improves consistency, maintainability, and follows modern Python packaging best practices with uv/pip standards. * fix: address PR review comments - Move requires-python field to standard position (after license) in seed-gen - Update all components to use latest ruff version (>=0.12.8) - Ensure consistent dependency ordering across all components * refactor: standardize dependency pinning strategy Apply consistent dependency versioning across all components: - Use ~= (compatible release) for core dependencies: - Infrastructure: redis, pydantic, fastapi, uvicorn, sqlalchemy - AI/LLM: openai, langchain-community, langgraph-checkpoint - Parsing: tree-sitter, tree-sitter-language-pack - Web: requests, urllib3, pyyaml - Utils: python-dotenv, unidiff, argon2-cffi, pymongo, six - Keep >= for stable dev tools: - pytest, mypy, ruff, flake8 (want latest versions) - types-* packages (want latest type definitions) - rich, beautifulsoup4 (stable, backwards compatible) - Keep exact pins for known issues: - protobuf (narrow range for compatibility) - openlit==1.32.12 (documented issue with 1.33) - clusterfuzz==2.6.0 (complex, version-sensitive) This provides predictable builds with automatic patch updates while preventing unexpected breaking changes from major/minor version bumps. * feat: add project metadata for discoverability Add comprehensive metadata to all components: Keywords: - common: cybersecurity, crs, utilities, protobuf, redis, telemetry - fuzzer: fuzzing, oss-fuzz, libfuzzer, vulnerability-discovery, coverage - orchestrator: orchestration, task-management, scheduler, api, fastapi - patcher: patching, vulnerability-repair, llm, ai, code-generation - program-model: static-analysis, codequery, tree-sitter, semantic-analysis - seed-gen: test-generation, input-generation, fuzzing, seed-corpus, llm Classifiers: - Development Status :: 4 - Beta (all components) - License :: OSI Approved :: GNU Affero General Public License v3 - Programming Language :: Python :: 3.12 - Topic :: Security (all components) - Component-specific topics (Testing, AI, Distributed Computing, etc.) - Operating System :: POSIX :: Linux URLs: - Added Documentation URL pointing to README for all components This improves package discoverability, provides clear metadata for tools, and gives the project a more professional appearance. * Standardize tool configurations across all components - Add pytest.ini_options configuration to all components - Add coverage configuration with consistent exclude patterns - Standardize ruff configuration with target-version and lint rules - Fix missing readme field in fuzzer/pyproject.toml - Fix python-dotenv spacing inconsistency in seed-gen - Standardize all dev dependencies to use ~= operator for consistency * Fix trailing whitespace and line length issues - Remove trailing whitespace from tree-sitter query strings - Remove trailing whitespace from test output strings - Fix line length issues in logger.info() calls by splitting format strings - Fix line length in datetime formatting by extracting variables - Split long Pydantic Field descriptions and docstrings - Leave test data strings unchanged to avoid breaking tests * Fix dependency resolution issues - Update argon2-cffi from ~=21.0.0 to ~=21.3.0 (21.0.x doesn't exist on PyPI) - Update langgraph-checkpoint from ~=2.0.25 to ~=2.1.0 to match langgraph requirements - Standardize spacing around ~= operators in all dependency specifications - All components now successfully resolve dependencies with uv * Apply ruff auto-fixes across project - Fix import sorting (I001) in fuzzer, orchestrator, and patcher - Update to PEP 585 type annotations (List->list, Dict->dict, etc.) - Update to PEP 604 union syntax (Optional[X] -> X | None) - Remove unnecessary UTF-8 encoding declarations - Remove redundant file open modes - Modernize type annotations throughout the codebase Remaining issues are primarily line length (E501) which require manual review * Fix line length issues in program-model component - Break up long Java code strings in test assertions using implicit concatenation - Split long constructor and method definitions across multiple lines - Add noqa: E501 comment for 10,977 character struct definition test data - All program-model line length issues resolved * fix: revert protobuf enum type annotations to Optional Protobuf enums (EnumTypeWrapper) don't support the | operator for type unions. The ruff UP035 rule converted Optional[ProtobufEnum] to ProtobufEnum | None, but this causes TypeError at runtime. Reverted these specific changes while keeping the modern type union syntax for regular Python types. * chore: add ruff protection for protobuf enum type annotations - Configure ruff to ignore UP045 rule in test_submissions.py - Add inline noqa comments to document why Optional is needed - Protobuf enums (EnumTypeWrapper) don't support the | operator - This prevents future automated fixes from breaking the code * fix: modernize Python syntax and fix formatting issues - Convert printf-style formatting to f-strings (UP031) - Remove trailing whitespace from blank lines (W293) - Use PEP 695 generic class syntax for Python 3.12+ (UP046) - Use PEP 695 type alias syntax with 'type' keyword (UP040) These changes modernize the codebase to use Python 3.12+ features and fix formatting inconsistencies detected by ruff. * fix: resolve undefined MsgType reference after PEP 695 conversion When converting to PEP 695 generic class syntax, the MsgType TypeVar was removed but was still referenced in overloaded method signatures. Changed the generic fallback overload to use Message directly. * fix: resolve line length violations across entire codebase Applied Black formatter and manual fixes to resolve E501 line length violations: - Fixed 178 line length issues across common, fuzzer, orchestrator, patcher, and program-model components - Used Black formatter for automatic reformatting where possible - Manually split long strings, function calls, and complex expressions - All files now comply with 120-character line limit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: revert PEP 695 type alias syntax in node_local.py The PEP 695 syntax (type X = Y) creates TypeAliasType objects that cannot be used as constructors at runtime. Since node_local.py uses NodeLocalPath and RemotePath as constructors (e.g., NodeLocalPath(path)), we must use the old TypeAlias syntax to maintain runtime functionality. Added noqa comments to prevent ruff from attempting to modernize these aliases in the future. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: configure ruff to ignore UP040 for node_local.py Added per-file configuration to prevent ruff from attempting to convert TypeAlias annotations to PEP 695 syntax in node_local.py. This protects the runtime functionality that relies on these type aliases being usable as constructors. Also removed redundant inline noqa comments since the ignore is now configured at the project level. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: correct MsgType reference in static method decorator The _ensure_group_name static method decorator was incorrectly referencing MsgType in the wrapper function signature. Since MsgType is a class-level type parameter and not accessible in static method scope, changed it to Message which is the appropriate bound type. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * docs: add explanatory comment for Message type in decorator Added a comment explaining why we must use Message instead of MsgType in the _ensure_group_name decorator's wrapper function. This prevents future confusion and protects against accidental "fixes" that would break the code. The MsgType parameter is a class-level type variable that's not in scope within the static method decorator context. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
f24e5fa971 |
Revert "refactor: standardize packaging across all components"
This reverts commit
|
||
|
|
1efa75836f |
refactor: standardize packaging across all components
- Standardize Python version to >=3.12,<3.13 for all components - Migrate from [project.optional-dependencies] to modern [dependency-groups] (PEP 735) - Standardize ruff line-length to 120 characters across all components - Add consistent project metadata: - AGPL-3.0 license field - Repository and Issues URLs - Improved, descriptive description fields - Fix email addresses to include .com domain This improves consistency, maintainability, and follows modern Python packaging best practices with uv/pip standards. |
||
|
|
c350d95221 |
Enforce mypy on fuzzer component (#229)
* Enforce mypy on fuzzer component - Add mypy type checking enforcement for fuzzer component in Makefile - Fix 39 type errors across 9 files in fuzzer component: - Add missing return type annotations (-> None, -> bool, -> int) - Fix Beautiful Soup union type issues with proper casting and None checks - Fix TemporaryDirectory path usage by using .name attribute - Add type annotations for function parameters and variables - Handle potential None values in registry and XML parsing All fuzzer component files now pass strict mypy type checking. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Brad Swain <BradSwain@users.noreply.github.com> * fix tests * Update fuzzer/src/buttercup/fuzzing_infra/builder_bot.py Co-authored-by: Riccardo Schirone <562321+ret2libc@users.noreply.github.com> * Update fuzzer/src/buttercup/fuzzing_infra/builder_bot.py Co-authored-by: Riccardo Schirone <562321+ret2libc@users.noreply.github.com> * use pathlike[str] instead of tmpdir * update test to use Path directly * fix type annotation --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Brad Swain <BradSwain@users.noreply.github.com> Co-authored-by: Riccardo Schirone <562321+ret2libc@users.noreply.github.com> |
||
|
|
5cfa9bd26e |
Add support for ARM (#207)
* Fix integration-test run * use the proper oss-fuzz-aixcc commit to run integration-test * determine OSS_FUZZ_CONTAINER_ORG at runtime * use `git diff` in the patcher to create the patch to fix a problem with patches affecting non-newline terminated files * fix parsing * fix program-model lint * Modify CRS to work on MacOS/ARM * Use LibUCL for testing * use example-libpng * fix linting * common: fix tests |
||
|
|
a08cbf1050 |
Make CRS more flexible (#202)
* Fix integration-test run * use the proper oss-fuzz-aixcc commit to run integration-test * determine OSS_FUZZ_CONTAINER_ORG at runtime * use `git diff` in the patcher to create the patch to fix a problem with patches affecting non-newline terminated files * fix parsing * fix program-model lint |