GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Decide which lockfile governs installs in one table by mikolalysenko · Pull Request #1044 · SocketDev/socket-patch

Conversation

@mikolalysenko

@mikolalysenko Mikola Lysenko (mikolalysenko) commented Oct 7, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Collaborator

Problem

Architecture audit §3.A, B31: which lockfile drives a project's installs was decided in at least eight places, each a hand copy. The copies had already drifted:

  • the vendored npm router (vendor/npm_flavor.rs) and its hand-copied in-memory twin (lock_inventory/view.rs), which had lost the pnpm-PnP carve-out and the vendor_multiple_lockfiles warnings;
  • the inventory's migration-leftover fallback (inventory_live_sibling_lock_in), which described itself as "a literal transcription of the router's order";
  • hosted vlt's SIBLING_LOCKS list (redirect/vlt.rs), the hosted vlt preflight inputs (hosted/vlt.rs), and the hosted npm rewriter's "another lock owns it" hand list (redirect/mod.rs);
  • the hosted governing-root check's own lock lists (hosted/governing_root.rs): OWN_LOCKS + NPM_LOCKS + VLT_LOCK for "the project is its own lock root", and WORKSPACE_ROOT_LOCKS for npm/yarn/Bun workspace roots;
  • the PyPI order in the vendored router (detect_pypi_flavor), the hosted pdm_drives gate, and the agent-mode PDM crawler (pdm_drives_project).

The concrete user harm is #612. Vendored PyPI wires one lock. A requirements.txt exported beside the winning tool lock (pipenv requirements, uv export) was never counted as a losing install source, so:

  • vendoring left it unpatched with no warning;
  • a hosted→vendored takeover restored its hosted pin to upstream without a word.

Change

  1. One table: formats/governing_locks.rs. It is pure and presence-only, so it passes the formats purity guard. It holds:

    • the npm-family precedence (NPM_PRECEDENCE: vlt > bun > pnpm > yarn > npm, as NpmLockFamily with each family's files);
    • the PyPI tool-lock precedence (PYPI_TOOL_LOCKS: uv > poetry > pdm > Pipfile);
    • small queries over both: npm_governing_family, npm_locks_outside, pypi_governing_tool_lock, pypi_tool_lock_governs, pypi_tool_lock_shadowed, pypi_locks_outside.

    Content refinements still belong to the router that reads the bytes: pnpm v9 vs legacy, yarn classic vs berry, the vlt version sniff, and pylock-contains-target.

  2. npm family.

    • The vendored router is now written once, over ProjectView, as detect_npm_lock_flavor_in. The disk entry point is a thin wrapper around it, and the in-memory copy in view.rs is deleted.
    • The pnpm-PnP layout check is now pnpm_pnp_layout_in(view), which uses the new ProjectView::is_dir. The disk pnpm_pnp_layout wraps it.
    • inventory_live_sibling_lock_in, vlt::sibling_locks, the hosted vlt inputs and rewrite_npm_lock's sibling check all ask the table.
    • hosted/governing_root.rs derives its own-lock-root list from npm_lock_files() (plus pnpm's pre-v3 shrinkwrap.yaml, which the table does not carry) and its workspace-root list from the Npm, Yarn and Bun families' files().
  3. PyPI. detect_pypi_flavor, pdm_drives and the PDM crawler's pdm_drives_project all ask the table.

  4. Vendored mode in a Pipenv project wires only Pipfile.lock and silently leaves a sibling requirements.txt unpatched, and the hosted → vendored takeover reverts that file's hosted pin to plain PyPI #612 fix (behavior change, failing-first test). A root requirements.txt that names the package being vendored, sitting beside the governing tool lock, is now listed among the losers of the documented pypi_multiple_lockfiles warning: "wiring Pipfile.lock — installs driven by requirements.txt will still install the UNPATCHED registry bytes". The takeover path runs the same router after its restore, so a hosted→vendored takeover that unpatches requirements.txt now says so too; a CLI test (mode_migration_pypi::pipenv_hosted_to_vendored_names_the_unpatched_requirements) pins that path end to end. vendor --check is not changed by this PR. CLI_CONTRACT.md's row for the code now mentions it.

Duplicate copies deleted

Decision Before After
npm-family router (decision table) 2 (disk + in-memory) 1
npm-family precedence / family lists 8 (LOCKFILE_FAMILIES, in-memory router, inventory transcription, SIBLING_LOCKS, hosted vlt inputs, rewrite_npm_lock list, governing-root OWN_LOCKS, governing-root WORKSPACE_ROOT_LOCKS) 1 table (governing-root keeps one extra name, pnpm's pre-v3 shrinkwrap.yaml)
pnpm-PnP layout predicate 2 (disk fn + the in-memory router's "never detected") 1
PyPI tool-lock precedence 3 (detect_pypi_flavor, pdm_drives, pdm_drives_project) 1 table

Behavior changes (where copies disagreed or output order moved)

  • Vendored mode in a Pipenv project wires only Pipfile.lock and silently leaves a sibling requirements.txt unpatched, and the hosted → vendored takeover reverts that file's hosted pin to plain PyPI #612: the new pypi_multiple_lockfiles warning described above.
  • In-memory npm router. It now uses the same table as disk, which changes three things:
    • It emits vendor_multiple_lockfiles warnings. Its only caller, the inventory, discards them.
    • It applies the pnpm-PnP carve-out when a memory project carries an installed pnpm store. Both outcomes are refusals the inventory propagates.
    • Its Rush and missing-lock refusal details now match the disk wording.
  • Warning order follows precedence order: vendor_multiple_lockfiles per file, and the file list in hosted redirect_vlt_sibling_lockfiles. The wording is unchanged. In redirect_workspace_lockfile_elsewhere, a workspace root holding both npm locks now lists npm-shrinkwrap.json before package-lock.json (npm's own preference); nothing else in that message moves.
  • Snapshot views now read the sniffed lock through the snapshot cache instead of an uncached disk read. Within one run the bytes are the same.

Testing

All runs on macOS, after a rebase onto origin/main 6fe81ad, using heavy-job.sh with CARGO_INCREMENTAL=0 and -j4.

  • Failing first (unit). cargo test -p socket-patch-core --lib -- requirements_beside_the_governing_lock failed before the Vendored mode in a Pipenv project wires only Pipfile.lock and silently leaves a sibling requirements.txt unpatched, and the hosted → vendored takeover reverts that file's hosted pin to plain PyPI #612 change (Pipfile.lock: [], 0 warnings) and passes after it.
  • Failing first (CLI takeover). cargo test -p socket-patch-cli --test mode_migration_pypi pipenv_hosted_to_vendored_names_the_unpatched_requirements passes, and fails at the warning assertion with the Vendored mode in a Pipenv project wires only Pipfile.lock and silently leaves a sibling requirements.txt unpatched, and the hosted → vendored takeover reverts that file's hosted pin to plain PyPI #612 requirements probe disabled (checked by a temporary local mutation, reverted).
  • Core lib. cargo test -p socket-patch-core --lib: 5582 passed, 0 failed. This includes formats::governing_locks, the formats purity guard, hosted::governing_root, the npm-flavor tests, the in-memory flavor test (now covering the pnpm-PnP carve-out for both store markers, and yarn.lock overriding it), and the inventory, vlt, pdm and pypi suites.
  • Core integration. cargo test -p socket-patch-core --test redirect_golden --test hosted_inventory: all pass.
  • CLI. cargo test -p socket-patch-cli --test mode_migration_pypi (32/32) --test in_process_vendor_pypi_takeover (6/6) --test in_process_redirect (117/117) --test in_process_redirect_pipenv (9/9) --test in_process_redirect_pnpm (19/19, covers the workspace-root refusals); earlier rounds also ran mode_migration_vlt, in_process_vendor, e2e_vendor_pypi_build, e2e_vendored_production: all pass.
  • mode_migration_npm. 18 of 19 pass. berry_vendored_then_hosted_takeover_leaves_pure_hosted fails identically from a build without this change, so the failure is not from this PR. It only runs where corepack can fetch yarn berry: hosted berry pins through resolutions, but the test expects a pristine package.json.
  • Clippy. cargo clippy -p socket-patch-core -p socket-patch-cli --all-targets -- -D warnings reports nothing on the lines this PR touches. Main's existing hits (python_crawler, jvm_jar, maven_repo, nuget_feed and others) remain.
  • Format. rustfmt --check is clean on every touched file.
  • Left to CI. The Linux and docker suites.

Deferred (policy, not decided here)

  • vlt beside another lock. With vlt-lock.json and pnpm-lock.yaml present and no node_modules/.vlt-lock.json sentinel, vendored wires vlt, while hosted's vlt_drives lets neither lock decide alone. Both rules now read the same family table, but choosing one rule is a maintainer decision.
  • Hosted Pipenv veto. pipenv::rewrite still uses its own liveness rule (a Pipfile beside it) rather than the tool-lock precedence. A leftover Pipfile.lock beside uv.lock can still veto. Aligning it with pypi_tool_lock_governs would change hosted refusals.
  • pdm_drives and pylock. pdm_drives still ignores standalone pylock, which vendored ranks above poetry when it pins the target. Adding it would make hosted rewrite fewer files.
  • Takeover restore scope. A hosted→vendored takeover still restores every hosted file, including the losers (Vendored mode in a Pipenv project wires only Pipfile.lock and silently leaves a sibling requirements.txt unpatched, and the hosted → vendored takeover reverts that file's hosted pin to plain PyPI #612's "never leave a file less patched"). Keeping a hosted pin in an unwired file means one purl is in two modes at once. That needs a decision on mixed-mode ledgers (related to C34). This PR makes the outcome loud instead of silent.
  • Install-state detection. crawlers/pkg_managers::detect_npm_pkg_manager (agent mode) answers a different question, which package manager installed node_modules, so it keeps its own order. It shares only the PnP predicate.
  • Bun presence probes (E17, Lock inventory ignores a bun.lockb that Bun installs from when bun.lock is a dangling symlink #735) are left to the bun session (Fix open bun issues (#992, #861, #784, #764, #735, #635, #599, #578, #497, #443, #371) #1009). The table keeps today's exists semantics.
  • requirements.txt includes and non-pin lines. The Vendored mode in a Pipenv project wires only Pipfile.lock and silently leaves a sibling requirements.txt unpatched, and the hosted → vendored takeover reverts that file's hosted pin to plain PyPI #612 warning reads only the root requirements.txt, and only its named-requirement lines: -r/--requirement includes, -e editable installs, and bare path or URL lines are not probed, so the target installed through one of those stays silent.

Related: #612 (partly addressed: the silent case is now loud; the takeover restore scope is deferred, so this does not close it).

🤖 Generated with Claude Code


Note

Medium Risk
Changes how npm/PyPI install drivers are chosen across vendor, hosted, and agent paths, with new user-visible warnings when requirements.txt competes with a wired tool lock.

Overview
Introduces a single governing-lock precedence table (formats/governing_locks.rs) for npm-family and PyPI tool locks, and replaces scattered hand-copied precedence lists in vendored routing, hosted vlt/npm checks, governing-root detection, PDM gates, and the agent crawler.

npm: Lock flavor detection is one ProjectView-based path (detect_npm_lock_flavor_in); the duplicate in-memory router is removed. pnpm PnP layout is shared via pnpm_pnp_layout_in and ProjectView::is_dir. Multiple-lockfile warnings and sibling-lock lists read the same table (warning order follows precedence).

PyPI (#612): When the governing tool lock is wired but a root requirements.txt pins the same package, vendoring (and hosted→vendored takeover) now emits pypi_multiple_lockfiles naming requirements.txt as still installing unpatched bytes—no longer silent. Contract doc and CLI/integration tests cover the Pipenv + requirements.txt takeover case.

Reviewed by Cursor Bugbot for commit 2a24bd1. Configure here.


Generated by Claude Code
d CRLF/LF outside edited spans and treating $ in URLs literally. Berry writers use BerryStanzas for BOM, EOL, and sorted re-insertion.

B16 behavior change: CopySource distinguishes registry copies from remote tarballs (file: tgz, URL forks, codeload shorthands). Non-registry blocks are no longer repointed to Socket’s registry artifact; they are skipped with new warnings, excluded from VEX where applicable, and rollback refuses legacy hosted pins on those keys. Lock inventory drops registry verifiers for fork copies. Docs in docs/ecosystems.md are updated.

Reviewed by Cursor Bugbot for commit 209e36e. Configure here.


Generated by Claude Code

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Mikola Lysenko (mikolalysenko) and others added 4 commits October 7, 2026 11:15
@mikolalysenko @claude
Add one table for which lockfile governs installs
af4d00d
formats/governing_locks.rs holds the npm-family precedence (vlt > bun >
pnpm > yarn > npm, as wiring families) and the PyPI tool-lock precedence
(uv > poetry > pdm > Pipfile), with presence-only queries over both. It
is pure, so the disk, snapshot and in-memory views all feed it.

Audit B31 (section 3.A).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Route npm-family lock precedence through the governing table
51eef37
The vendored npm router is now written once over ProjectView
(detect_npm_lock_flavor_in); the hand-copied in-memory router in
lock_inventory/view.rs is deleted. The pnpm-PnP layout check runs over
the view too (pnpm_pnp_layout_in, with a new ProjectView::is_dir).

The inventory's migration-leftover fallback, hosted vlt's sibling list,
the hosted vlt preflight inputs and the hosted npm rewriter's
another-lock-owns-it check all ask the table instead of spelling the
lock list again.

Visible differences: the in-memory router now gets the pnpm-PnP
carve-out, multiple-lockfile warnings (discarded by its only caller) and
the disk refusal wording; vendor_multiple_lockfiles warnings and the
redirect_vlt_sibling_lockfiles file list follow precedence order.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Route PyPI tool-lock precedence through the governing table
07b9fc1
detect_pypi_flavor, the hosted pdm_drives gate and the agent-mode PDM
crawler's pdm_drives_project each spelled the uv > poetry > pdm > Pipfile
order by hand. They now ask PYPI_TOOL_LOCKS. No behavior change.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Warn when requirements.txt beside the governing PyPI lock stays unpat…
fed7a0d
…ched

Vendored PyPI wires one lock. A root requirements.txt exported beside the
winning tool lock (pipenv requirements, uv export) never counted as a
losing install source, so vendor left it unpatched without a word,
vendor --check passed, and a hosted-to-vendored takeover silently
restored its hosted pin to upstream (#612).

When the root requirements.txt names the package being vendored, it is
now listed among the losers of the documented pypi_multiple_lockfiles
warning. The takeover runs the same router after its restore, so it now
says so too. Keeping the hosted pin in the unwired file is a separate
mixed-mode policy question and is not decided here.

Refs #612 (audit B31).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko Mikola Lysenko (mikolalysenko) added the arch-refactor PR opened by the scheduled architecture refactor routine label Oct 7, 2026
Mikola Lysenko (mikolalysenko) and others added 3 commits October 7, 2026 12:26
@mikolalysenko @claude
Route the hosted lock-root lists through the governing table
d60b31b
The hosted governing-root check kept its own hand lists of npm-family
locks: OWN_LOCKS (chained with NPM_LOCKS and VLT_LOCK) for "the project
is its own lock root", and WORKSPACE_ROOT_LOCKS for the npm/yarn/Bun
workspace-root check. A lock spelling added to NpmLockFamily::files()
would not have reached either. Derive both from the table:
npm_lock_files() plus pnpm's pre-v3 shrinkwrap.yaml, and the Npm, Yarn
and Bun families' files().

The workspace refusal still names the locks npm, yarn, Bun; within the
npm family it now lists npm-shrinkwrap.json before package-lock.json
(the family's own preference order) when both are present.

Also spell requirements.txt through PYPI_REQUIREMENTS in the
python-locks branch of detect_pypi_flavor, so the function names the
file one way.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Test the pnpm-PnP memory route and the #612 takeover warning
2f966df
- view.rs: the in-memory npm router now shares the pnpm-PnP carve-out
  with disk; pin it for both store markers (.modules.yaml and a .pnpm/
  directory), and that a yarn.lock beside them keeps the yarn berry
  refusal.
- mode_migration_pypi: a Pipenv project with an exported
  requirements.txt is hosted (both files pinned), then `vendor` takes
  it over. The takeover wires Pipfile.lock and must name
  requirements.txt in pypi_multiple_lockfiles as still installing the
  UNPATCHED bytes. Fails with the #612 requirements probe disabled.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko @claude
Name the hosted governing-root lists in the governing table's inventory
5f5b6ae
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko
Mikola Lysenko (mikolalysenko) marked this pull request as ready for review October 7, 2026 16:28
Mikola Lysenko (mikolalysenko) and others added 2 commits October 7, 2026 12:32
@mikolalysenko
Merge branch 'main' into arch-fix/governing-locks
054e4b2
@mikolalysenko @claude
Merge branch 'main' into arch-fix/governing-locks
2a24bd1
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Tanmay182003
Tanmay Singla (Tanmay182003) approved these changes Oct 7, 2026
View reviewed changes
@mikolalysenko

Mikola Lysenko (mikolalysenko) commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator Author

bugbot run


Generated by Claude Code

cursor[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

cursor[bot]
cursor Bot reviewed Oct 7, 2026
View reviewed changes

@cursor cursor Bot left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 2a24bd1. Configure here.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@mikolalysenko @claude
Merge branch 'main' into arch-fix/governing-locks
cd95da6
Resolve conflicts with #978 (yarn nodeLinker-aware PnP detection) and
#1073 (vlt package.json workspaces fallback):

- npm_flavor.rs: the single ProjectView router keeps main's stale-loader
  rule (#975) through live_pnp_marker_with, with the configured linker
  supplied by the new ProjectView::yarn_node_linker (disk probe on disk,
  the repository's own .yarnrc.yml chain in memory, as main's in-memory
  copy did). main's in-memory router copy in view.rs stays deleted.
- governing_root.rs: workspace-root locks still come from the governing
  table's Npm/Yarn/Bun families, plus main's vlt-lock.json fallback when
  vlt.json declares no workspaces.
- hosted/memory tests import detect_npm_lock_flavor_in from npm_flavor.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko Mikola Lysenko (mikolalysenko) closed this Oct 8, 2026
@mikolalysenko Mikola Lysenko (mikolalysenko) reopened this Oct 8, 2026
@mikolalysenko Mikola Lysenko (mikolalysenko) closed this Oct 8, 2026
@mikolalysenko Mikola Lysenko (mikolalysenko) reopened this Oct 8, 2026
@mikolalysenko @claude
Merge origin/main into arch-fix/governing-locks
c7060c4
Pick up #1093 so PR CI runs without the macOS legs.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@mikolalysenko
Mikola Lysenko (mikolalysenko) added this pull request to the merge queue Oct 8, 2026
Merged via the queue into main with commit ea09714 Oct 8, 2026
528 of 529 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@mikolalysenko
Mikola Lysenko (mikolalysenko) deleted the arch-fix/governing-locks branch October 8, 2026 05:55
Mikola Lysenko (mikolalysenko) added a commit that referenced this pull request Oct 8, 2026
@mikolalysenko @claude
Merge origin/main into arch-fix/yarn-grammar
62dab4f
Resolve conflicts with #1044 (governing-locks table), #1083 (yarn
offline-mirror outer config) and the ProjectView read path:
- npm_family: keep main's npm_governing_family table; the Yarn arm reads
  the lock through the shared yarn grammar decision instead of trying
  both readers.
- npm_flavor: sniff_yarn_lock takes main's ProjectView and keeps the
  shared grammar decision.
- redirect: keep ClassicSegments and main's rewrite_yarn_classic_with
  outer-mirror wrapper; drop the now-redundant local import.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This was referenced Oct 8, 2026
Hosted and vendored scans run from an npm workspace member that has a stray package-lock.json of its own rewrite that lock, which npm ignores, and report success while npm installs the unpatched package and VEX attests not_affected #1094
Closed
Hosted yarn classic scan --vex attests not_affected when an npm: alias copy of the patched package was skipped, while standalone vex refuses the same lock #1081
Closed
Lock inventory and the vendored PyPI router disagree on which lock governs when poetry.lock or pdm.lock has no packages #1114
Open
Hosted and vendored scans from a Bun workspace member with a stray bun.lock / bun.lockb pin that ignored lock, exit 0, and lock-only VEX attests not_affected while Bun installs the unpatched package #1101
Closed
Mikola Lysenko (mikolalysenko) added a commit that referenced this pull request Oct 8, 2026
@mikolalysenko @claude
Merge origin/main into arch-fix/vendored-liveness
22a1b60
Brings in #1044 (governing lock table), #1035, #1038, #1083, #724.
Drop the BUN_LOCK/BUN_LOCKB/NPM_LOCKS imports #1044 added to
npm_flavor.rs: their only user, vendored_entry_in_use, is removed by
this PR (liveness now comes from Discovery::vendor_entry_in_use).
This unused import failed clippy in the merge group.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This was referenced Oct 8, 2026
Perf regression: npm/hosted wall +15% (2463257a..9c43dfc9) #993
Closed
Vendored uv: a UTF-16 requirements.txt beside uv.lock is read as absent, so vex attests not_affected and vendor --check passes while uv pip install -r requirements.txt installs the unpatched release #1120
Closed
Fix npm workspace-member refusal skipped by a stray member lock (#1094) #1095
Merged
Vendored mode in a Pipenv project wires only Pipfile.lock and silently leaves a sibling requirements.txt unpatched, and the hosted → vendored takeover reverts that file's hosted pin to plain PyPI #612
Closed
Vendored scan of a Pipenv use_pylock = true project wires only pylock.toml, but Pipenv installs from Pipfile.lock, so pipenv sync / install --deploy install the unpatched release after a "success" run #1122
Closed
Mikola Lysenko (mikolalysenko) pushed a commit that referenced this pull request Oct 8, 2026
@claude
Merge main into agent/fix-pnpm-open-issues
f202603
Main's #1044 moved npm lock detection behind a project view and one
governing-lock table. The #556 refusal for a lone pnpm branch lock now
takes that view too, so the in-memory and snapshot paths name the
gitBranchLockfile setting instead of reporting a missing lockfile.

Also adds main's new yarn_classic_outer option to the member-lock
test helper in the hosted engine.

Assisted-by: Claude Code:claude-opus-5-5
This was referenced Oct 8, 2026
Fix 15 open pnpm issues across hosted, vendored and agent modes #1007
Merged
Hosted scan in a Pipenv project whose requirements.txt pins the package through an -r include rewires only Pipfile.lock, then reports success while vex and rollback refuse the contested lock it just created #567
Closed
Fix vendored Pipenv sibling requirements.txt (#612) #1309
Merged
@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request Oct 17, 2026
socket-patch --update on a Bun-installed copy says "managed by npm" and gives an npm command: npm update -g leaves a bun add -g install stale, and npm install …@latest in a Bun project breaks bun install --frozen-lockfile #1621
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@cursor cursor[bot] cursor[bot] left review comments
@Tanmay182003 Tanmay Singla (Tanmay182003) Tanmay182003 approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

arch-refactor PR opened by the scheduled architecture refactor routine

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@mikolalysenko @Tanmay182003
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.