fix(scripts): match URL source build approvals#860
Conversation
|
Warning Review limit reached
More reviews will be available in 5 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (10)
Comment |
Greptile SummaryThis PR aligns non-registry build approval keys with the pnpm source-specifier format (
Confidence Score: 5/5The key format change is correctly propagated to all call sites and the new format is properly recognized by the source-key routing in The change is mechanical and well-tested: No files require special attention — the one minor redundancy in Important Files Changed
Reviews (3): Last reviewed commit: "fix(scripts): match URL source build app..." | Re-trigger Greptile |
6c4b83b to
406d59e
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 406d59e. Configure here.
406d59e to
56abfa6
Compare
56abfa6 to
c4ae746
Compare
…val jdx#858/jdx#860 Merge (not rebase) of jdx/aube main @ ab844b5 into nub-integration. Resolved 9 conflicts preserving nub's embedder behavior: - errors.rs / error-codes.data.json: kept nub's lockfile codes (OUTDATED/DECLARATION_MISMATCH/AMBIGUOUS, exit 13/14/15) AND took upstream's ERR_AUBE_RESOLUTION_SHAPE_MISMATCH, reassigning its exit code 13->16 to avoid colliding with nub's OUTDATED_LOCKFILE. - aube-scripts/lib.rs: ScriptSettings carries BOTH nub's env_overlay/path_prepends embedder overlay AND upstream's node_bin_dir/node_exe; run_script composes both PATH layers. - script_settings.rs: carry-forward embedder overlay + upstream runtime. - lifecycle.rs / default_trust.rs: adopt jdx#860 decide_package(source_key) AND keep nub's defaultTrust floor (Unspecified => floor.trusts) arm; decide_with_floor now threads the source key internally. - install/mod.rs + resolve.rs: kept nub's default_lockfile_kind seam, added upstream's refresh_lockfile_pin (inert under nub). - startup.rs: kept nub's configurable PackageManagerNames policy, folded in upstream's managePackageManagerVersions self-switch guard. - main.rs stays nub's thin lib-wrapper; ported jdx#861 CLI surface (Runtime subcommand, self_version::maybe_switch) into lib.rs; added mod runtime / mod self_version to lib.rs. jdx#861 dormancy gate (the one aube behavior change, default==upstream): runtime::set_runtime_switching_enabled(bool) OnceLock, default TRUE. ensure / ensure_for_cwd / refresh_lockfile_pin short-circuit to path_fallback when false, before any .nvmrc/.node-version/devEngines read. Re-exported from lib.rs; nub flips it false so aube's runtime resolver stays compiled-but-inert and nub keeps owning Node. Tests: aube cargo test 1965 passed / 0 failed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Summary
dep@https://example.com/pkg.tgzContext
#858 landed the source-specific build approval machinery while this PR was open. This follow-up aligns the approval key with pnpm-authored URL keys and covers the review-requested union-order case.
Validation
mise run rendercargo fmt --checkcargo test -p aube-lockfile source_approval_keycargo test -p aube-scripts policycargo check -p aubecargo clippy -p aube-lockfile -p aube-scripts -p aube --all-targets -- -D warningsThis PR was generated by Codex.
Note
Medium Risk
Changes how source-backed packages match
allowBuilds, which is security-sensitive; misaligned keys could skip or run unintended lifecycle scripts until configs are updated to pnpm-style source keys.Overview
Non-registry dependency build approvals now use pnpm-style source keys (
registry_name@<source specifier>) instead of lockfiledep_pathbases with peer suffixes stripped.LockedPackage::source_approval_key()returns an ownedOption<String>built fromregistry_name()andLocalSource::specifier()(e.g.pkg@file:vendor/pkg,pkg@https://example.com/pkg.tgz). Install lifecycle policy, ignored-builds, unreviewed-build reporting, and graph-hash allow checks pass that key intoBuildPolicy::decide_packageviaas_deref()where needed.Build policy gains tests that
allowBuildskeys mixing semver and URL/source specs in a||union are rejected (both orderings).Docs (
lifecycle-scripts, generatedallowBuildssettings) note exact non-registry source keys. Bats expectations for strict-dep-builds output usefile:…paths instead offile+lockfile tails.Reviewed by Cursor Bugbot for commit c4ae746. Bugbot is set up for automated code reviews on this repo. Configure here.