GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||
GeezerVison is showing github.com — Fix npm workspace-member refusal skipped by a stray member lock (#1094) by mikolalysenko · Pull Request #1095 · SocketDev/socket-patch Conversation
|
| Issue leg | Test | Without fix | With fix |
|---|---|---|---|
| hosted refusal (core) | hosted::governing_root::tests::npm_member_with_stray_npm_lock_is_refused |
FAILED | ok |
| vendored refusal, and the takeover preflight raising the identical refusal | vendor::npm_flavor::tests::npm_member_with_stray_lock_is_refused |
FAILED (vendored into the member lock; preflight None) |
ok |
hosted scan + get <uuid> CLI, 3 root/member lock combos |
in_process_redirect_pnpm::hosted_scan_from_npm_member_with_stray_lock_refuses |
FAILED | ok |
Commands run locally:
cargo clippy --workspace --all-features -- -D warnings: clean (on d9a569f, and on the 09:24Z main merge)cargo test --workspace --all-features --no-fail-fast (on the main merge 3c8e956): 237 test binaries pass. The only 12 failures are permission-based write-failure tests (*_write_failure_*, *unremovable*, relax_loop_must_not_traverse_symlinked_root), which can't fail as root, the user this sandbox runs as. Re-run as an unprivileged user (setpriv --reuid=65534), all 12 pass.main merge): cargo test --workspace --all-features --no-fail-fast fails the same 12 root-only permission tests plus mode_migration_pypi::pipenv_hosted_to_vendored_names_the_unpatched_requirements, which needs pypi.org (unreachable from this sandbox; unrelated to npm). Everything else passes, including in_process_redirect_pnpm (23) and scan_vendor_e2e (37).cargo fmt: the changed code is formatted. main itself isn't cargo fmt --check clean (about 120 files), and CI doesn't run fmt, so I didn't reformat unrelated files.No wrapper changes (npm/, pypi/, gem/): the logic lives in the core crate only.
🤖 Generated with Claude Code
https://claude.ai/code/session_01479CXaUep24uv6zcJnZ59g
Generated by Claude Code
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Assisted-by: Claude Code:claude-opus-5-5
A workspace member that still held its own package-lock.json or npm-shrinkwrap.json skipped the workspace-member refusal. npm never reads a lock inside a member: it installs every member from the workspace root's lock. So hosted scan/get pinned the ignored member lock and vendored mode vendored into it. Both exited 0 while npm kept installing the unpatched package. Hosted scan/get from such a member now refuse with redirect_workspace_lockfile_elsewhere, naming the root lock and the ignored member lock. Vendored refuses with vendor_lockfile_missing, as it does for a member with no lock. A member that also holds a lock its own manager reads (pnpm, yarn, Bun, vlt, Rush), or a workspace root with no npm lock, keeps the own-lock shortcut. Fixes #1094 (hosted and vendored legs) Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
[agent] CI notes:
Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Stale Bugbot comment from a previous run.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
…stray-lock # Conflicts: # crates/socket-patch-cli/CLI_CONTRACT.md # crates/socket-patch-core/src/hosted/governing_root.rs
|
[agent] Update:
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Stale Bugbot comment from a previous run.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
A vendored run from an npm workspace member with a stray lock refused only inside the vendor backend, after the hosted-to-vendored takeover had already restored a leftover hosted pin. The takeover preflight now raises the same vendor_lockfile_missing refusal first, so nothing is reverted. The hosted and vendored messages no longer suggest deleting the stray lock: the directory is still a listed workspace member, so it would be refused again. Both name the workspace root to run from. Refs #1094 Assisted-by: Claude Code:claude-opus-5-5
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Stale Bugbot comment from a previous run.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
CI note: I cancelled this PR's Bun and vlt compatibility runs from 03:15Z (37721894513, 37721894616). They ran on the pre-#1093 workflow config, which runs macOS legs on PRs, and were holding about 22 macOS jobs while the merge queue was starved. Merging |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
[agent] Merged Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
main replaced the hosted lock-name lists with NpmLockFamily. The stray member-lock check now reads npm's own locks and the other families' locks from that table instead of the removed constants. Assisted-by: Claude Code:claude-opus-5-5
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
[agent] Took this over (stale heartbeat, merge conflict with On 75fdc9a, "Audit GitHub Actions" failed with zizmor Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
BugBot review Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem 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 3faf081. Configure here.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Ready for review (burn-down agent).
Nothing specific flagged for the reviewer beyond the PR description. Generated by Claude Code |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Takes main's squash of #1095 and keeps only this branch's Bun and vlt changes on top. Also drops the unrelated reformatting an earlier commit picked up from a workspace-wide cargo fmt. Assisted-by: Claude Code:claude-opus-5-5
Main's new contract rows (workspace-lock-elsewhere, eject refusals) and the stray-member-lock test (#1095) now use the top-level error object: the rows say error.code, and the test reads error.message. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.