chore(deps): update Python security floors - #69892
bbasketballer75 wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Pull request overview
Updates Hermes Agent’s Python dependency “security floors” and lockfile to ensure installs (including extras) resolve to audited, patched versions while keeping build metadata consistent with current main.
Changes:
- Bumps multiple pinned/floored dependencies (notably
cryptography,Pillow,mcp,starlette,python-multipart,pytest,click,Pygments,pydantic-settings) and refreshesuv.lock. - Adds
msgpack==1.2.1to thefalextra and syncs select lazy-install pins (dashboard/vision/computer-use). - Constrains the build backend requirement to
setuptools>=83,<84.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
pyproject.toml |
Raises security floors, adjusts extras (including fal), and tightens build-system.requires. |
uv.lock |
Regenerated lockfile reflecting the updated dependency metadata and versions. |
tools/lazy_deps.py |
Updates lazy-install pins for dashboard, vision fallback, and computer-use MCP stack. |
tests/tools/test_computer_use.py |
Updates assertions to match the new lazy MCP/starlette pins. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -149,14 +154,14 @@ exa = ["exa-py==2.10.2"] | |||
| firecrawl = ["firecrawl-py==4.17.0"] | |||
| parallel-web = ["parallel-web==0.4.2"] | |||
| # Image generation backends | |||
| fal = ["fal-client==0.13.1"] | |||
| fal = ["fal-client==0.13.1", "msgpack==1.2.1"] | |||
There was a problem hiding this comment.
Addressed in 4c7b608. The image.fal lazy-install entry now carries msgpack==1.2.1, matching the fal extra. The selected core/dev/web/MCP/Google/Fal/Teams audit is clean, and the eager/lazy parity selection passes 25 tests.
| "click==8.3.3", | ||
| "Pygments==2.20.0", | ||
| "pydantic-settings==2.14.2", | ||
| # Keep lean installs above the patched dashboard request-stack floors. | ||
| "fastapi>=0.133.1,<1", | ||
| "starlette>=1.3.1,<2", |
There was a problem hiding this comment.
Addressed in 4c7b608. pydantic-settings is no longer a core dependency; its patched floor is limited to the dev/MCP/computer-use/Teams extras and mirrored lazy routes that actually consume it. Google httplib2/pyasn1 and Fal msgpack floors are mirrored the same way. Lock validation, audit, Ruff, and parity tests pass.
7c2f231 to
7c81b04
Compare
7c81b04 to
4c7b608
Compare
|
Closing as superseded by #68648 (open, broader scope 'raise vulnerable dependency floors'). Per @alt-glitch's earlier triage comment, this overlaps the broader dep-floor cluster. Keeping #68648 as the canonical place to converge this work. |
|
Correction to the closing note above, for the record. The note says "Closing as superseded by #68648 (open, broader scope)". #68648 has since closed without merging (by @martinramos002-bot, For accuracy: 113 of this PR's 189 distinctive added lines are already present in main's If the remaining dependency floors still matter, one consolidated PR is the workable shape rather than reviving the chain. |
Summary
mainsetuptools>=83,<84uv.lockfrom current metadata instead of replaying an older lockfileUpdated floors include cryptography 48.0.1, Pillow 12.3.0, MCP 1.28.1, Starlette 1.3.1, python-multipart 0.0.32, pytest 9.0.3, setuptools 83.0.0, Click 8.3.3, Pygments 2.20.0, httplib2 0.32.0, pyasn1 0.6.4, pydantic-settings 2.14.2, and msgpack 1.2.1.
pydantic-settingsremains limited to the dev/MCP/computer-use/Teams extras and matching lazy routes; it is not promoted into the core install. Fal and Google security floors are likewise mirrored in their lazy-install entries so an already-installed vulnerable transitive package cannot survive a feature refresh.Relationship to #68648
#68648 is the earlier security-floor proposal and has valuable metadata coverage, but its current head is still conflicting with
maininpyproject.tomlandtests/test_project_metadata.py. This branch is the current-main, clean-merge fallback and incorporates its valid bounded-setuptools and lazy-install parity concerns.Verification
pip-audit: no known vulnerabilitiesuv lock --check: passedgit diff --check: passedHermes intentionally blocks wheel/sdist publication, so
uv buildexits through the repository's explicit distribution guard; this is not a setuptools failure.