Repository navigation
Resolve open Dependabot security alerts (Pillow 13, drop Python 3.10) - #428
Merged
Merged
Conversation
Upgrade every package with an open critical/high (and lower) alert: - Pillow 12.2.0 -> 13.0.0 (~40 decoder memory-safety/DoS advisories, 5 critical). Pillow 13 dropped Python 3.10, so requires-python is now >=3.11 and CI tests/lints on 3.11 instead of 3.10. - starlette 1.2.1 -> 1.10.0 (floor >=1.3.1: urlencoded form limits), fastapi 0.136.3 -> 0.162.0 - urllib3 2.8.0, certifi 2026.10.23, cryptography 50.0.2, anyio 4.14.2, fsspec 2026.9.0, filelock 4.2.4, werkzeug 3.1.9, torch 2.14.1 - setuptools 66.1.1 -> 84.2.1. The `setuptools<67` runtime pin is gone; clip-anytorch's `from pkg_resources import packaging` is satisfied by a temporary stand-in in the new encoders.import_openai_clip(), since setuptools 81+ no longer ships pkg_resources. The Dockerfiles and the legacy Linux/mac installer pre-download CLIP weights through it. - docs toolchain: mkdocs 1.6.1, mkdocs-material 9.8.0, pymdown-extensions 12.3. The mkdocs<1.6 live-reload workaround is no longer needed. - npm audit fix for the dev-only Jest/ESLint tree (js-yaml, brace-expansion, minimatch, flatted, ws, form-data, browserslist, ...). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…over 3.10 checks Fixes from adversarial review: an unlocked sys.modules check could return a half-imported clip module to a second thread (indexing and search build encoders concurrently). Also moves the Windows installer off a bare 'import clip' and raises the deprecated installers' floor to 3.11. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orch' Only a missing clip module means the package isn't installed. An ImportError from inside clip's imports was relabeled too, which hid the real cause of the intermittent macOS 3.11 CI failures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ging macOS 3.11 CI failed with "cannot import name 'packaging' from 'pkg_resources' (unknown location)". Upgrading the runner's bundled setuptools 65 leaves an empty pkg_resources/ directory, which imports as a namespace package, so the helper saw pkg_resources already in sys.modules and skipped the stand-in. Replace any pkg_resources without packaging for the duration of the clip import, then restore it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This clears all 82 open Dependabot alerts (pip and npm), including every critical and high one.
Image.open(). Pillow 13 requires Python ≥3.11, so Python 3.10 support is dropped. 3.10 reached end of life this month; the launcher and Docker already use 3.11 or later. CI now tests 3.11 and 3.14 and lints on 3.11, and the docs, READMEs and the deprecated installers' version checks say 3.11.>=1.3.1for the urlencoded form limits fix) and fastapi 0.162.setuptools<67runtime pin is removed.clip-anytorchstill doesfrom pkg_resources import packaging, and setuptools 81+ no longer shipspkg_resources. The newencoders.import_openai_clip()puts in a temporary stand-in whileclipimports, under a lock because indexing and search can build encoders at the same time.mkdocs<1.6live-reload workaround is lifted; I checked thatmkdocs serverebuilds and reloads when a file changes.npm audit fixfor the dev-only Jest/ESLint tree;npm auditnow reports 0 vulnerabilities.Test plan
pytest tests: 1345 passed (the reviewer also ran it with-W error::DeprecationWarning: 1347 passed)npm test: 1019 passed; ruff, eslint and prettier are cleanuv.lock: all passRange→ 206, text searchimport_openai_clip(); the reviewer's two-thread race repro passes after the lock was added🤖 Generated with Claude Code