Repository navigation
fix(roots): scan uv tool environments under cache - #78
Closed
ronheichman wants to merge 2 commits into
Closed
ronheichman wants to merge 2 commits into
ronheichman wants to merge 2 commits into
Conversation
ronheichman
force-pushed
the
fix/scan-uvx-cache
branch
from
October 8, 2026 14:53
c25e96d to
fccb737
Compare
Scan uv cache environments as targeted roots before broad deep roots. Resolve the environments-v* links that uvx creates. Follow only links that name a plain directory in the same cache's archive bucket. Keep unpacked wheels and neighboring cache trees excluded.
ronheichman
force-pushed
the
fix/scan-uvx-cache
branch
from
October 9, 2026 20:32
fccb737 to
eae7a24
Compare
Go 1.25 has no fix for the crypto/tls, net/http, and net/textproto advisories that govulncheck reports, and Go 1.26.9 fixes them. Test, scan, and release with the latest Go 1.26 patch. The module still declares go 1.25.
Collaborator
Author
|
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.
What
Baseline scans and broad
deeproots now walk the uv environments in~/.cache/uv. A deep scan walks them before the broad root. These are theenvironments-v*directories and eacharchive-v*/<id>environment thatuvx,uv tool run, oruv run --withlinks fromenvironments-v*/<interpreter>/<resolution>.Bumblebee follows a link only when the link names a directory directly inside the same cache's
archive-v*. It follows no other symlink below the home. Unlinked archive entries (unpacked wheels), the other uv caches, and neighboring.cachetrees stay excluded. An explicit root insideenvironments-v*gets theuser_package_rootkind.CI and releases now use the latest Go 1.26 patch. Go 1.25 has no fix for the
crypto/tls,net/http, andnet/textprotoadvisories thatgovulncheckreports, and Go 1.26.9 fixes them.Why
The
.cacheexclude hid environments that run packages, so a listed PyPI package installed byuvxproduced nofinding. uv builds eachuvxenvironment inarchive-v0and links it fromenvironments-v2. The walker does not follow that link.Tests
uvxenvironment, and this test fails without the change..cachetreeuser_package_rootin baseline, orders uv roots before the broad deep root, and skips a symlinked~/.cache/uvand non-versioned bucket names.A baseline PyPI scan of a macOS host with cached
uvxenvironments gives these results. The host has both relative and absolute environment links.mainuvxenvironments walkeduvxenvironmentsenvironments-v*Every
mainrecord is still present on this branch.Checks
These checks pass with Go 1.26.9, and
govulncheckv1.3.0 finds no vulnerabilities.Gaps
UV_CACHE_DIR,--cache-dir, orXDG_CACHE_HOME, or for the legacy macOS cache~/Library/Caches/uv.uv tool installenvironments in~/.local/share/uv/tools, whichuvxalso reuses, but a deep scan of the home walks them.go.modand the docs still allow Go 1.25 builds, which lack the standard-library fixes.