Repository navigation
Update Python security dependencies and require Python 3.11 - #323
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 32 minutes. View limit details
Walkthrough
Priority: Merge Risk:
|
There was a problem hiding this comment.
Actionable comments posted: 1

Review info
-
Run configuration-
- Source mode: Auto
- Repository: demigodmode/OneSearch
- Branch: security/python-dependency-fixes
- File: .coderabbit.yaml
- Commit: a0bf3c6
- Layers: Repository YAML
- Review profile: CHILL
- Plan: Advanced
- Run ID:
7234e256-20d1-4c54-848c-d1a01903c316
Files ignored due to path filters: 1-
uv.lockis excluded by!**/*.lock,!uv.lock
Files selected for processing: 11-
CONTRIBUTING.mdagent/pyproject.tomlagent/tests/test_release_packaging.pybackend/pyproject.tomlbackend/tests/test_extractors.pybackend/tests/test_preview_assets.pycli/pyproject.tomldocs/development/backend-dev.mddocs/development/index.mdpyproject.tomlshared/pyproject.toml
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
-
| [ | ||
| ("pillow", "12.3.0", "13.0.0"), | ||
| ("pypdf", "6.21.1", "6.21.2"), | ||
| ("certifi", "2025.11.12", "2026.10.19"), |
There was a problem hiding this comment.
Test the later affected certifi release.
If the agent floor regresses to certifi>=2026.7.22, this test still passes: it excludes 2025.11.12 and includes 2026.10.19. The regressed constraint permits 2026.7.22, which is an affected release. Replace the excluded sample with 2026.7.22, or assert the required floor directly. (pypi.org)
Updates Pillow to 13.0.0 and pypdf to 6.21.2. Certifi is locked to 2026.10.23.
The backend and agent manifests require Pillow >=13.0.0, pypdf >=6.21.2 and certifi >=2026.10.19. The CLI also requires the certifi floor. Direct constraints in the agent protect standalone upgrades that keep an older backend installed.
Python 3.11 is the workspace minimum; Docker and native release builds stay on Python 3.13. Docs, classifiers and the Ruff target match the new minimum. Regression checks now require real PDF text extraction and decoded previews for alpha/palette images. Office fixtures contain embedded PNGs, and agent metadata tests reject vulnerable dependency versions.
Validation on Python 3.13 recorded 1,369 unique passes across separate serial runs: backend 889, agent 375, CLI 20 and shared contracts 85. Backend collection had 959 cases: 903 selected, including 14 skipped because Meilisearch was unavailable, and 56 concurrency/subprocess cases excluded. Agent totals combine the initial run with isolated reruns and include 5 skips. Eighteen separate cases passed with the original dependency versions as a baseline comparison; they are not included in the 1,369. Offline lock consistency passed. Syntax and undefined-name lint passed, with no added Ruff diagnostics.
Aggregate runs hit thread-creation failures under the task limit. Permission and timeout cases passed in isolation with POSIX temporary directories, but a clean aggregate run remains outstanding. Real Meilisearch integration and the excluded concurrency/subprocess cases still need validation, along with Python 3.11/3.12, Windows/ARM/frozen agents and container smoke.
The pypdf update overlaps with #322.