Bug hunt ledger: Pipenv #313
Replies: 9 comments
|
[agent] 2026-09-30: Pipenv bug-hunt run This is the first run, so the ledger started empty and there were no Tested: main Setup: patch.socket.dev is blocked by the sandbox proxy (403), so a local mock patch API served a real patched Cells
Issues
False positives ruled out
Probe runs
I couldn't delete the probe branch: Next
|
|
[agent] 2026-09-30: Pipenv bug-hunt run Tested: main Re-triage: #333 and #334 are still open. Main hasn't moved since they were filed, so there's no fix to check and I didn't comment. #334 has a new-info comment (below). Cells
Issues
False positives ruled out
Probe runs
I couldn't delete either probe branch: Next
|
|
[agent] 2026-10-01: maintainer note: test global ( This is a maintainer request, not a run report. Add it to the top of the backlog and keep it there until the cells below are covered. Ask: make sure we correctly scan global installs when Where Pipenv puts global installs: What to check (prove each with a real global install, not by reading source):
Add OS × Pipenv version cells for |
|
[agent] 2026-10-01: Pipenv bug-hunt run Tested: main Re-triage
I didn't file a separate issue for the false VEX. It comes from the same Cells (Linux)
Maintainer request: global (
|
|
[agent] 2026-10-01: Pipenv bug-hunt run Tested: main Re-triage
Cells (Linux)
Issues
False positives ruled out
Next
|
|
[agent] 2026-10-01 15:41Z: Pipenv bug-hunt run Tested: main Regression check of the new main
Re-triage
Cells (Linux)
Issues
False positives ruled out
Next
|
|
[agent] 2026-10-01 21:44Z: Pipenv bug-hunt run Tested: main Re-triage (closed fixes, verified on main)
Cells (Linux)
Issues
False positives ruled out
Next
|
|
[agent] 2026-10-02 03:42Z: Pipenv bug-hunt run Tested: main Re-triage
Cells (Linux)
Issues
False positives ruled out
Next
|
|
[agent] 2026-10-02 09:41Z: Pipenv bug-hunt run Tested: main Mock note: the hosted artifact URL must have the Re-triage
Cells (Linux)
Issues
False positives ruled out
Next
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
[agent] Progress ledger for the scheduled Pipenv bug-hunt routine (label pm:pipenv).
The routine runs every 6 hours. Each run adds one comment here with the socket-patch commit it tested, the OS × Pipenv-version × mode cells it covered, the issues it filed, updated or closed, and what it plans to probe next. The routine treats this thread as its only memory.
Last run: 2026-10-02 09:41Z, main
61cfb9b(unchanged; CLI 4.0.0). Filed #546: Pipenv settings in the project's.env(PIPENV_CUSTOM_VENV_NAME,WORKON_HOME) are ignored by venv discovery, so agent mode patches the system Python and VEX attestsnot_affected(Pipenv 2022–2026; not a regression).Coverage matrix
Cells marked v5 were re-run on
2463257(v5: no hosted ledger, upstream-restore rollback, service-artifact vendoring).61cfb9b(unicode/space/paren names, nested PIPENV_PYTHON chain)[docs]-only + rollback pass61cfb9b61cfb9b61cfb9b61cfb9b(#334 fixed); no-Pipenv-venv shapes patch the system Python, fail #50461cfb9b61cfb9b(#333 fixed)61cfb9b(#384 fixed)61cfb9b61cfb9b(default +[docs], verify / requirements / sync / --deploy / vex / byte-exact rollback)61cfb9b(both categories, sync / --deploy / vex / repair / rollback)61cfb9b(same as 2024.4.1)61cfb9b(same as 2024.4.1)-g(install --system --deploy, py3.10)-g --global-prefix <site-packages> --apply/rollback -gpass, lock untouched; hosted refused exit 2 pass (61cfb9b)-g(install --system)-g --mode hostedrefused exit 2 pass;-g --apply/ vex / rollback pass-g(install --system)-g --apply/ vex / rollback, SOCKET_GLOBAL,--global-prefixpass;rollback -g/remove -g/get -g --mode hosted|vendoredunwind or rewire the cwd project's Pipfile.lock (#445 / #436)-g(install --system)--global-prefixpass; hosted refused exit 2 pass;-g --apply/get -g/ vex / rollback pass-gagent scan in a venv-less project patches the global interpreter (needs a maintainer decision, see Known non-bugs)61cfb9b(unicode/space/paren names, PIPENV_PYTHON suffix)pathref,--deploy, rollback; 11 byte-exact)not_applied).env-borne Pipenv settings (agent + hosted stale warning):PIPENV_CUSTOM_VENV_NAMEin.envfails #546 on 2022.12.19 / 2023.12.1 / 2024.4.1 / 2025.1.3 / 2026.8.0 (the exported control passes);WORKON_HOMEin.envfails #546 on 2023 / 2026.--global-prefixwith spaces and unicode (site-packages path, 2026.8.0): pass.Agent rerun after a reinstall (2026.8.0,
61cfb9b):--jsonpass; human-modescan --apply/--mode agent/--syncfail, #454 incomplete (commented).PIPENV_PIPFILEspellings with--cwd: pass.Policy (socket.yml) cells, Linux 2026.8.0 hosted monorepo: every filter passes;
get <uuid>skips thepolicy_bypassedwarning (fail #453, re-checked on6e7ef74). socket.yml ×--package/--min-severity/--max-new-patchesintersections: pass (6e7ef74). Concurrent hosted scans: pass. SIGKILL mid hosted / vendored run: pass. Mirror / env-var source rollback refusal: pass (documented).Named category on 2026.8.0 (
61cfb9b):pipenv requirements --categories docs/--dev,verify,sync --categories docsandinstall --deploy --categories "packages docs"all give the patched wheel (pass). Named category ([docs]) hosted +sync --categories/install --deploy --categories/ vex / rollback: pass on 2022.12.19, 2023.12.1 and 2026.8.0; vendored: pass on 2022.12.19 and 2023.12.1 (6e7ef74). Non-registry entries (path,fileURL,git): hosted refuses withredirect_pipenv_refused, vendored withpypi_pipenv_source_already_exists, vex attests nothing: pass on 2026.8.0.-g/ agent on an unwritable prefix or a root-owned.venv, as a non-root user (2026.8.0): human mode fails loudly (pass); the--jsonenvelope drops the failure (#424); a rerun exits 0 unpatched (#454).macOS/Windows rows are from the 2026-09-30 probes on
f6b7fb9. No probe ran on v5 because branch deletion through the git proxy still fails (re-checked 2026-10-01 09:30Z);bughunt/pipenv/20260930-venv-discoveryandbughunt/pipenv/20260930-virtualenvstill need a maintainer to delete them.Backlog
.venv+ WORKON_HOME, nothing explicit) on 2018 / 2022 / 2023 / 2024 / 2025 / 2026, plus thePIPENV_PYTHON-suffix twin-venv shape..envwithPIPENV_CUSTOM_VENV_NAME,WORKON_HOME,PIPENV_VENV_IN_PROJECT=0+.venv,PIPENV_IGNORE_VIRTUALENVS+VIRTUAL_ENV, and an exportedPIPENV_DONT_LOAD_ENV=1(which must disable it).-gmode): still to do: macOS / Windows (blocked: no probe),-gon 2018 / 11, and--global-prefixgiven as a venv / interpreter root (scans 0 today; the semantics are undocumented). Full checklist in the 20261001T040000Z entry.Known non-bugs
pipfile-spec< 6 (Pipenv 0–6): hosted is refused (redirect_pipenv_skipped) and vendored is refused (pypi_pipenv_spec_unsupported). Documented.pypi_pipenv_installer_unsupported). Documented.pipenv install/sync/--deploy; the stale-install warning is the designed remedy. Documented.pipenv lock/updatedrops the redirected reference (silent unpatch until re-scan). Documented.vendor_integrity_unverified. Documented.PIPENV_PIPFILE. Documented.rollbackdrops manifest entries, so a laterapplyis a no-op. Documented.$VARinsideWORKON_HOME. That's Pipenv's bug.vendor_fetch_failedagainst pypi.org in the sandbox is rustls vs the proxy CA; use aSOCKET_PYPI_JSON_APIforwarder.VIRTUAL_ENVset with noPIPENV_IGNORE_VIRTUALENVS/PIPENV_ACTIVE: Pipenv uses the activated venv too, so socket-patch patching it is correct..venvfile pointer: a relative path is joined to the project directory and an empty file means the default placement. Matches Pipenv 2026.8.0.rollbackon a project with no manifest, ledger or hosted pin exits 1 "Manifest not found". Documented (CLI_CONTRACT, truly-empty project).indexkey. Harmless for a local wheel, and rollback restores it.rollback <path>targets select installed copies, not hosted project directories; use--cwd. Documented, and cross-PM anyway./patch/pypi/<name>/<ver>/<token>/<uuid>/<wheel>shape, andSOCKET_PATCH_SERVER_URLmust name the mock origin, or vex / rollback see no hosted reference.scan -g --mode hosted --jsonprints a plain-text usage error with exit 2 (a clap-level refusal, documented).integrity.sha512on thetarballartifact; the view needsfiles; agent mode needs/patches/blob/<afterHash>.python_crawler.rsget_site_packages_paths). So an agent-modescanwithout-g, in a Pipenv project whose venv isn't created yet (or isinstall --system), patches the global site-packages in place. That's right for Docker--system, but it contradicts the-gchecklist ("a scan without-gmust never touch it"). Filing waits on a maintainer decision."hashes": [](seen in the sandbox) comes back from hosted rollback with PyPI's full hash list: not byte-exact, but a valid and stricter registry entry. The upstream restore re-derives hashes by design._meta.sourcesURL written as${PIP_INDEX_URL}, even when the variable points at pypi.org; env vars aren't expanded. Documented and fail-closed, with thegit checkoutremedy.scan -gcounts every ecosystem plus the well-known system Python paths (/usr/lib/python3*,/usr/local/lib/python3*,~/.local). That's by design; Pipenv's WORKON_HOME venvs aren't included.--prunewarns that it has no effect with--mode hosted. Documented.path,fileURL,git) are refused in hosted (warning, exit 0) and vendored (pypi_pipenv_source_already_exists, exit 1). By design; the "no Pipfile beside the lock" wording in the hosted detail is Hosted scan never sees the Pipfile, so a live Pipfile.lock conflict is treated as abandoned and a sibling requirements.txt is redirected anyway #333.by-packagemust carryvulnerabilities[*].severity, or--package/--min-severitycells give false failures.UnicodeDecodeError). Not a real-world shape.PIPENV_PIPFILEnaming a Pipfile outside--cwdfinds no venv: documented CLI scope.[packages]and a named category (categories are constrained by the default packages), so per-category version splits can't happen.vexgivesproduct_undetectedon a bare Pipfile project (no name or version);--productis the documented remedy.virtualenv<20can't create venvs from uv's standalone CPython (missinglibpython): a sandbox tooling artifact, so use virtualenv 20.x. Pipenv 11.x also breaks on(in a project name (an unsanitized shebang): Pipenv's bug.All reactions