Fix Dependabot alerts round 2: bump pillow and mcp - #24
Merged
Conversation
Re-locks pillow (12.2.0 -> 12.3.0) and mcp (1.25.0 -> 1.28.1) via targeted `uv lock --upgrade-package` to resolve newly disclosed Dependabot alerts, without touching any other package version. vllm, setuptools, and torch alerts are left open: the only vllm versions that satisfy the new fixed_in threshold (>=0.24.0) remove/ relocate the `vllm.entrypoints.openai.protocol` module that server/vllm_parsers.py imports directly (ChatCompletionRequest moved to vllm.entrypoints.openai.chat_completion.protocol), which would break the app at import time. vllm 0.24.0+ also tightens its setuptools/torch pins in a way that's incompatible with the setuptools/torch fixed_in versions. diskcache remains open as before (fixed_in: null, no upstream patch). Co-Authored-By: Claude Sonnet 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
Resolves the newly disclosed Dependabot alerts that appeared since PR #22 by re-locking two transitive packages via targeted
uv lock --upgrade-packagecalls. Onlyuv.lockchanged — nopyproject.tomlconstraint changes, no other package versions touched.What was bumped
Both are pulled in transitively (pillow via vllm/mistral-common/torchvision; mcp via vllm) and both resolved cleanly to their fully-patched versions without requiring any vllm/torch/setuptools version change — verified via
uv tree --invertand confirmed the diff only touches these two packages' lock entries.What was investigated but deliberately NOT changed
vllm (alerts #106-#111, #113, medium/high, fixed_in 0.24.0): A real fix now exists (current: 0.23.0), unlike last round. I attempted the bump (
uv lock --upgrade-package vllmresolves cleanly to 0.25.1) but before adopting it I checked how vllm is imported in this repo:server/vllm_parsers.pydoesfrom vllm.entrypoints.openai.protocol import ChatCompletionRequest, and also importsvllm.reasoning.ReasoningParserManager/vllm.tool_parsers.ToolParserManager.server/backends/vllm_backend.pyreaches intovllm.__file__'s parent directory to locate a bundled chat template file.I downloaded the vllm 0.24.0 and 0.25.1 sdists directly from PyPI and inspected them:
vllm.entrypoints.openai.protocolno longer exists as of 0.24.0 — it was split intovllm.entrypoints.openai.chat_completion.protocol,.../completion/protocol.py,.../models/protocol.py, etc., with no backward-compat shim re-exporting the old path. This meansserver/vllm_parsers.pywould raiseModuleNotFoundErrorat import time on every vllm version that satisfies the alert's fixed_in threshold (I checked 0.24.0 specifically, the minimum fixed version — already refactored there).vllm.reasoning/vllm.tool_parsers(ReasoningParserManager.get_reasoning_parser,ToolParserManager.get_tool_parser) are unaffected — same API in 0.25.1.Given this is a confirmed, code-breaking import path change and the instruction to touch only lockfile/pyproject and not break functionality, I left vllm at 0.23.0. Bumping vllm is a real fix but requires a source change to
server/vllm_parsers.py(updating the import path) plus GPU-based end-to-end testing of the parsing/tool-calling path — out of scope for a lockfile-only PR. Flagging this as the top risk item for follow-up.setuptools (alert #127, medium, fixed_in 83.0.0) and torch (alert #112, low, fixed_in 2.13.0): Both are transitively pinned tightly by vllm. Confirmed via forced resolution attempts:
uv lock --upgrade-package torch==2.13.0fails: vllm (all available versions up to 0.25.1) hard-pinstorch==2.11.0.uv lock --upgrade-package setuptools==83.0.0fails: vllm pinssetuptools>=77.0.3,<81.0.0for python>=3.12.Since torch 2.13.0 doesn't exist for any vllm release yet, and setuptools 83.0.0 conflicts with vllm's own pin, both are blocked upstream by vllm — same category as vllm itself, not independently fixable without the same breaking vllm bump discussed above.
diskcache (alert #8, medium, fixed_in: null): No upstream patch exists yet. Left unchanged, same as PR #22.
Testing
uv lock --checkpasses (lock is consistent with pyproject.toml).pillowandmcpversion/hash entries changed inuv.lock; no other package was touched as a side effect.uv sync --all-extrasfails on this machine withnvidia-cudnn-frontendhaving no macOS wheel (CUDA-only package) — confirmed this identical failure exists on an unmodified fresh clone of current main, so it's a pre-existing environment limitation, not a regression from this change.uv synchere due to the GPU-only deps above):pillow==12.3.0standalone: created an image, drew on it, saved/reloaded it — round-trips correctly.mcp==1.28.1standalone: imported every submodule this repo actually uses —mcp.client.session.ClientSession,mcp.client.streamable_http.streamable_http_client,mcp.client.stdio.stdio_client/StdioServerParameters,mcp.server.Server,mcp.server.streamable_http_manager.StreamableHTTPSessionManager(used inworkloads/mcp_support/*.py) — all import cleanly with no API changes.ruff/mypysettings exists to run (checkedpyproject.toml, searched fortest_*.py— none found).Risk to flag before merging
vllm/setuptools/torch are still open because the only real fix path (bumping vllm to 0.24.0+) breaks
server/vllm_parsers.py's import ofvllm.entrypoints.openai.protocol.ChatCompletionRequest(module removed/relocated). This is a source-code change, not a lockfile change, and needs GPU-based testing of the tool-calling/reasoning-parsing path since vllm can't be installed/imported on this (non-CUDA) machine. Recommend a follow-up PR that:server/vllm_parsers.pyto the new module path(s).This PR itself is low-risk: it only changes two transitive packages (pillow, mcp) that resolved cleanly with no other version changes, and both were spot-checked for basic functional correctness.