Repository navigation
fix(security): guard AI SDKs and move to patched Pillow - #2456
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found. |
🔍 PR Validation |
|
Please add a See governance: #898 |
There was a problem hiding this comment.
🔵 Needs a closer look
The unresolved Pillow security/Python 3.10 compatibility blocker tracked in #2459 requires a maintainer decision and passing security gates before approval.
No open issues 🎉
What changed in this PR
This PR guards EventRelay against an unplanned Anthropic SDK 2.x migration and updates the transitive certifi dependency to address GHSA-6q48-6c7w-9gw2.
Changes:
- Cap Anthropic at
<2while preserving the locked0.120.2artifact. - Assert the unified client’s exact Anthropic request shape, including omission of removed sampling fields.
- Update certifi to
2026.10.19with replacement artifact metadata and hashes.
| File | Description |
|---|---|
uv.lock |
Updates certifi artifacts and mirrors the Anthropic constraint. |
tests/unit/test_unified_ai_sdk.py |
Adds exact request-argument and sampling-field assertions. |
pyproject.toml |
Caps the Anthropic dependency below SDK 2.x. |
Review effort: Balanced
|
Independent Watch check of head |
Decision: TEST — dependency and runtime security boundary
Final scope
This PR closes the three linked dependency risks as one coherent, reviewable change:
anthropic>=0.105.0,<2while retaining the current locked0.120.2, and verify the current request shape does not send removed sampling parameters.2026.7.22to2026.10.19for GHSA-6q48-6c7w-9gw2.>=3.10to>=3.11,<3.13and update Pillow12.3.0to13.0.0.The root runtime floor now matches the existing production Docker image (
python:3.11-slim) and the tested CI matrix (3.11/3.12). The standalonesdk/pythonpackage remains independently supported on Python >=3.9 because it does not depend on Pillow.Primary evidence
MIT-CMU): https://pypi.org/project/pillow/13.0.0/Unlicense): https://pypi.org/project/yt-dlp/2026.10.21/Implementation
uv.lockwith the repository toolchain after setting the tested root runtime range.MIT-CMU(Pillow) andUnlicense(yt-dlp) to Dependency Review after the gate reported zero vulnerabilities but rejected those licenses; packages remain fully reviewed.Security dependency evidence
Verification
VERIFIED locally
uv lock --checkapi.openai.com; hosted CI is the acceptance evidence.git diff --check, dependency-tree inspection, and locked certifi/Pillow/Anthropic version checks passed.Offline fixtures do not prove production provider acceptance, latency, or cost. No provider credentials were used, no production deployment was initiated, and no live Gemini/Anthropic claim is made.
Rollback
Revert the commits in this PR. No schema, production, billing, or secret mutation is involved.
Closes #2459
Related completed dependency work: #2457 (Anthropic compatibility) and #2458 (certifi). These will be reconciled against the verified merge receipt.