Repository navigation
chore: deslop codebase cleanup - #7
Conversation
|
Warning Review limit reached
More reviews will be available in 20 minutes and 14 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ 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: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (59)
📝 WalkthroughWalkthroughThe PR removes JSON artifact tracking from benchmark outputs by simplifying templates and snapshot writers, consolidates executable detection logic into shared platform utilities, and modernizes core modules with anyhow error handling, simplified node shim routing, and reduced API surface. ChangesBenchmark Output Simplification
Public API Cleanup and Executable Detection Consolidation
Feature and Module Updates
🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly Related PRs
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
src/core/deno.rs (1)
69-76: ⚡ Quick winAdd a regression test for the new
--if-presentDeno path.This branch now treats a missing task as a successful empty execution. A focused unit test here would lock in that behavior and catch future regressions in fallback handling.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/core/deno.rs` around lines 69 - 76, Add a unit test that exercises the branch where has_if_present is true to ensure a missing Deno task returns an Ok NativeDenoTaskExecution with empty stages (the new “successful empty execution” behavior) and preserves selection, forwarded_args, and bin_paths; specifically, write a focused test that calls the routine which produces NativeDenoTaskExecution when has_if_present is true (triggering the return of NativeDenoTaskExecution { project_root: ..., selection: ..., stages: Vec::new(), forwarded_args: ..., bin_paths: node_modules_bin_dirs(...) }), assert the Result is Ok, assert stages.is_empty(), and verify forwarded_args and bin_paths are set as expected so future changes to fallback handling/regression won’t break this behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/core/detect.rs`:
- Around line 32-35: The remediation message currently builds an install target
using pm.bin() (which returns "yarn" for PackageManager::YarnBerry) resulting in
advice like `npm i -g yarn@{version}`; change the Yarn Berry branch in
src/core/detect.rs to emit a Corepack-based remediation (e.g., `corepack prepare
yarn@{version} --activate`) or otherwise special-case PackageManager::YarnBerry
instead of using pm.bin(); update the code paths that construct `target` (and
any message using it) to check for PackageManager::YarnBerry and format the
remediation using the Corepack command, leaving other package managers to
continue using pm.bin() as before.
In `@src/core/resolve/build.rs`:
- Around line 38-52: The current logic in the args/intent branch incorrectly
forces Intent::Install or Intent::CleanInstall when "--frozen" or
"--frozen-if-present" are present, losing the Add-vs-Install distinction; update
the code that calls exclude_flag (for both "--frozen-if-present" and "--frozen")
to re-check whether any non-flag positional arguments remain (i.e.,
args.is_empty() or args.iter().all(|a| a.starts_with('-'))), and if positional
packages are present set intent to Intent::Add (preserving detected.has_lock for
has_lock) instead of unconditionally choosing Install/CleanInstall;
alternatively, explicitly reject mixed usage by returning an error when
positional package args appear with frozen flags—apply this change around the
branches that use exclude_flag, affecting variables args, intent, has_lock and
keeping detected.has_lock usage.
---
Nitpick comments:
In `@src/core/deno.rs`:
- Around line 69-76: Add a unit test that exercises the branch where
has_if_present is true to ensure a missing Deno task returns an Ok
NativeDenoTaskExecution with empty stages (the new “successful empty execution”
behavior) and preserves selection, forwarded_args, and bin_paths; specifically,
write a focused test that calls the routine which produces
NativeDenoTaskExecution when has_if_present is true (triggering the return of
NativeDenoTaskExecution { project_root: ..., selection: ..., stages: Vec::new(),
forwarded_args: ..., bin_paths: node_modules_bin_dirs(...) }), assert the Result
is Ok, assert stages.is_empty(), and verify forwarded_args and bin_paths are set
as expected so future changes to fallback handling/regression won’t break this
behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 427a50f3-4a0c-4e3a-8c24-516b49cad7e7
📒 Files selected for processing (31)
benchmark/HISTORY.mdbenchmark/LATEST.mdbenchmark/README.mdbenchmark/results/direct-2026-04-26T19-03-24-763Z.jsonbenchmark/results/direct-2026-04-26T19-03-24-763Z.mdbenchmark/results/direct-2026-04-26T19-27-13-775Z.jsonbenchmark/results/direct-2026-04-26T19-27-13-775Z.mdbenchmark/results/direct-2026-04-26T19-43-24-512Z.jsonbenchmark/results/direct-2026-04-26T19-43-24-512Z.mdbenchmark/results/fast-2026-04-26T14-32-31-952Z.jsonbenchmark/results/fast-2026-04-26T14-32-31-952Z.mdbenchmark/results/fast-2026-04-26T18-39-21-663Z.jsonbenchmark/results/fast-2026-04-26T18-39-21-663Z.mdbenchmark/results/fast-2026-04-26T19-56-19-241Z.mdbenchmark/run.mjsbenchmark/templates/combined.hbsbenchmark/templates/history.hbsbenchmark/templates/latest.hbsbenchmark/templates/track.hbssrc/app/cli.rssrc/core/deno.rssrc/core/detect.rssrc/core/native/bin_resolver.rssrc/core/native/eligibility.rssrc/core/package.rssrc/core/resolve/build.rssrc/core/types.rssrc/core/util.rssrc/features/node_shim.rssrc/platform/node.rstests/node_shim.rs
💤 Files with no reviewable changes (15)
- benchmark/results/fast-2026-04-26T14-32-31-952Z.json
- benchmark/results/direct-2026-04-26T19-43-24-512Z.md
- benchmark/results/fast-2026-04-26T18-39-21-663Z.md
- benchmark/README.md
- benchmark/results/direct-2026-04-26T19-43-24-512Z.json
- benchmark/results/fast-2026-04-26T18-39-21-663Z.json
- benchmark/results/direct-2026-04-26T19-03-24-763Z.md
- benchmark/results/direct-2026-04-26T19-27-13-775Z.md
- benchmark/results/fast-2026-04-26T14-32-31-952Z.md
- benchmark/results/direct-2026-04-26T19-27-13-775Z.json
- benchmark/results/fast-2026-04-26T19-56-19-241Z.md
- benchmark/results/direct-2026-04-26T19-03-24-763Z.json
- src/core/types.rs
- benchmark/templates/track.hbs
- benchmark/run.mjs
| let package = pm.bin(); | ||
| let target = match version_hint { | ||
| Some(version) if !version.is_empty() => format!("{package}@{version}"), | ||
| _ => package.to_string(), |
There was a problem hiding this comment.
❓ Verification inconclusive
🌐 Web query:
For Yarn 4 (Yarn Berry), what npm package name should be used for global installation, and does npm i -g yarn@4.2.1 install Yarn 4 or Yarn Classic?
💡 Result:
For Yarn 4 (Yarn Berry), the npm package name to use for a “global” install is still yarn (i.e., run npm i -g yarn@4.2.1) rather than a separate @yarnpkg/… package name. [1][2] Does npm i -g yarn@4.2.1 install Yarn 4 or Yarn Classic? It installs Yarn 4, not Yarn Classic. Yarn’s team has stated that modern Yarn releases aren’t distributed on the npm yarn package, and that only Yarn 1.x maintenance releases remain on the yarn npm package; instead, Yarn 2+ should be installed via Corepack or via Yarn’s website/set version. [2] Practically, if you do run npm i -g yarn@4.2.1, you are asking npm to fetch the tarball tagged as version 4.2.1 from the yarn package, so the installed binary will correspond to that 4.2.1 release (i.e., Yarn 4), not the Yarn 1.x “classic” line. [1] Recommended guidance: use Corepack (corepack enable + corepack prepare/install for a specific yarn@4.x) or Yarn’s official install instructions rather than relying on npm’s yarn package for Yarn 4. [3][4][2]
Citations:
- 1: https://registry.npmjs.org/yarn
- 2: https://yarnpkg.com/getting-started/qa
- 3: https://yarnpkg.com/getting-started/install
- 4: https://github.com/nodejs/corepack
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Show the relevant portion of src/core/detect.rs around the cited lines
sed -n '1,120p' src/core/detect.rs | nl -ba | sed -n '1,140p'
echo '---'
# Show around the match/version_hint block if it's beyond 120 lines
sed -n '120,220p' src/core/detect.rs | nl -ba | sed -n '120,220p'Repository: happytoolin/hni
Length of output: 102
🌐 Web query:
What does yarn@4.2.1on npm install (Yarn Berry vs Yarn Classic)? Check npm registry versions/tags for packageyarn.
💡 Result:
If you run npm install -g yarn@4.2.1 or attempt to install this version via the npm registry, the installation will fail [1][2]. The npm package named yarn on the public registry is reserved for "Yarn Classic" (v1.x), with the latest version being 1.22.22 [1]. Yarn Berry (v2.0 and later, including v4.x) is explicitly not published on the npm yarn package [2]. Instead, Yarn Berry is distributed primarily as a release artifact on GitHub [3] or intended to be managed via Corepack, which is included with modern Node.js [2][4]. Key distinctions: Yarn Classic (v1.x) - Available on the npm registry: You can install it globally via npm install -g yarn [1][4]. - Versioning: It is pinned to the 1.x release line [1]. Yarn Berry (v2.x, v3.x, v4.x) - Not on npm: The npm yarn package does not contain modern Yarn versions [2]. - Installation: The recommended way to use Yarn 4.x is via Corepack (using corepack enable in your project) [2][4] or by setting the yarnPath in your project to a local binary downloaded from the official GitHub releases [3][2]. - Global installation: Installing Yarn 4.x globally via npm is not standard practice; if needed, users often use environment managers (like mise) to download the specific binary [4]. If you attempt to use yarn@4.2.1 in an npm command, it will look for a version that does not exist in the yarn package's metadata on the npm registry, resulting in an "install failed" or "version not found" error [1][2].
Citations:
- 1: https://registry.npmjs.org/yarn
- 2: https://yarnpkg.com/blog/release/4.0
- 3: https://github.com/yarnpkg/berry/releases
- 4: https://stackoverflow.com/questions/78573511/how-do-i-upgrade-legacy-yarn1-22-x-to-yarn-4-x-globally
🌐 Web query:
Yarn official guidance for installing Yarn 2+ / Yarn Berry globally: npm npm i -g yarnvs Corepack vs@yarnpkg/cli.
💡 Result:
The official guidance from the Yarn team is to manage Yarn 2+ (Berry) versions via Corepack rather than global installations via npm [1][2][3]. Corepack vs. npm install -g yarn: 1. Corepack (Recommended): Corepack is a tool included with modern Node.js releases (Node.js 16.10+) that acts as an intermediary to manage your package manager versions [1]. It allows you to use specific versions of Yarn on a per-project basis, ensuring that all developers and CI environments are using the exact same version without needing a global installation [1][4]. To use it, you enable it with corepack enable [1][5]. Once enabled, it automatically manages the yarn binary, and you can update versions within your project using commands like yarn set version stable [1][2][6]. 2. npm install -g yarn: This command installs Yarn Classic (v1.x) globally [3][4]. It is not the recommended way to manage modern Yarn (Berry) versions [3]. While the classic global CLI can sometimes serve as a launcher for project-specific versions [4], it is outdated and not the modern standard for Berry workflows. 3. @yarnpkg/cli: This is the package name for the Yarn CLI itself. Users are generally advised against trying to install or manage this directly via npm. Instead, the Yarn project directs users to Corepack or the yarn set version command to handle the installation and updating of the CLI binary [2][6]. Key takeaways: - Avoid installing Yarn globally via npm [3]. - Enable Corepack to manage your package manager [1][5]. - Use yarn set version to lock the desired Yarn version to your project [2][6]. - The concept of yarn global has been removed in modern Yarn; it is replaced by yarn dlx for running one-off scripts [7][8].
Citations:
- 1: https://v2.yarnpkg.com/getting-started/install/
- 2: https://yarnpkg.com/getting-started/install
- 3: Why isn't the latest the default? yarnpkg/berry#5809
- 4: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-the-yarn-package-manager-for-node-js
- 5: docs: align corepack installation instructions yarnpkg/berry#7094
- 6: https://yarnpkg.com/cli/set/version
- 7: https://yarnpkg.com/migration/guide
- 8: [Feature] yarn global yarnpkg/berry#821
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Determine line count and show around line 32-50 precisely
wc -l src/core/detect.rs
sed -n '20,60p' src/core/detect.rs | nl -ba
# Find pm.bin() definition/usages
rg -n "pm\.bin\(\)" src/core/detect.rs src -S || true
rg -n "enum PackageManager|PackageManager::YarnBerry|YarnBerry" src/core/detect.rs src -S || trueRepository: happytoolin/hni
Length of output: 143
🌐 Web query:
Does npm package yarninclude Yarn 2+/Berry releases like 4.2.1, and what is the correct package fornpm i -g?
💡 Result:
The npm package named yarn contains Yarn Classic (v1.22.x), which has been frozen at this version since 2020 and does not include modern releases like Yarn 4.2.1 [1][2]. Installing Yarn via npm install -g yarn is generally not recommended for modern projects because it provides this outdated version [3][4]. For modern Yarn (v2+ / Berry, including v4.x), the correct way to install and manage the package manager is through Corepack, which is a tool included with Node.js [5][2]. To use the latest version of Yarn in your project: 1. Enable Corepack: npm install -g corepack corepack enable 2. Initialize your project to use the latest stable version of Yarn: yarn init -2 Once initialized, Corepack will automatically manage the Yarn version specified in your project's configuration, allowing you to use commands like yarn set version stable or yarn set version 4.2.1 to update or pin specific releases [5][6]. This per-project approach ensures that all developers on a project use the same, consistent version of Yarn [7][5].
Citations:
- 1: [Feature] Discussion around release strategy of Yarn v2 yarnpkg/berry#766
- 2: https://tech-insider.org/yarn-vs-npm-2026/
- 3: https://docs2.w3cub.com/yarn/install/
- 4: https://www.reddit.com/r/node/comments/19cu9bz/moving_later_versions_of_yarn_outside_of_npm_was/
- 5: https://yarnpkg.com/getting-started/install
- 6: Yarn requires yarn release .cjs file to be committed to git repo yarnpkg/berry#5748
- 7: https://stackoverflow.com/questions/43895201/how-to-install-a-list-of-many-global-packages-with-yarn
🌐 Web query:
Corepack/Yarn docs: how to install Yarn 4 globally (commands and recommended approach).
💡 Result:
The Yarn team and official documentation strongly recommend against installing Yarn 4 globally [1][2]. Instead, the modern, officially supported approach is to use Corepack—a tool bundled with Node.js—to manage Yarn on a per-project basis [3][4][1]. Recommended Approach: Per-Project Installation The design philosophy behind Yarn 4 (Berry) is to avoid global installation entirely [1]. By using the packageManager field in your project's package.json, Corepack ensures that the exact version of Yarn specified by the project is used automatically whenever you run a Yarn command [4][1]. To set up a new or existing project to use Yarn 4, follow these steps: 1. Enable Corepack: If you have Node.js 16.10 or later installed, Corepack is already available. Run the following command once to enable it [3][1]: corepack enable 2. Initialize or Update: Inside your project directory, you can set the Yarn version directly. This command automatically updates your package.json with the packageManager field [3][1]: yarn set version stable Global "Installation" (For Convenience Only) While discouraged, some users prefer having a Yarn command available globally to initialize new projects without configuring a project first [5][2]. If you must have a global binary, use Corepack to prepare it [4][6]: corepack prepare yarn@stable --activate This command downloads the latest stable version of Yarn 4 and makes the yarn command available in your terminal [4][7]. Note that this does not change the fact that individual projects should still define their own packageManager version to ensure consistency across environments [4][1]. Key Takeaways: - Avoid traditional global installs (e.g., npm install -g yarn), as they typically install the legacy Yarn 1.x (Classic) version [4][2]. - Prefer the per-project approach to avoid version mismatches between different projects or CI/CD environments [4]. - If you encounter issues with Corepack or Yarn versioning, ensure you do not have conflicting global installations of the older Yarn 1.x [7][6].
Citations:
- 1: https://yarnpkg.com/blog/release/4.0
- 2: https://stackoverflow.com/questions/78573511/how-do-i-upgrade-legacy-yarn1-22-x-to-yarn-4-x-globally
- 3: https://yarnpkg.com/getting-started/install
- 4: https://linuxcapable.com/how-to-install-yarn-on-debian-linux/
- 5: How to setup a new project directly with yarn 4 yarnpkg/berry#6069
- 6: Installation instructions cause yarn 3 to be installed globally yarnpkg/berry#5410
- 7: https://stackoverflow.com/questions/74278757/not-able-to-install-yarn-through-corepack
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== detect.rs lines 25-55 ==="
sed -n '25,55p' src/core/detect.rs
echo "=== detect.rs with line numbers 25-55 (cat -n) ==="
cat -n src/core/detect.rs | sed -n '25,55p'
echo "=== Search for PackageManager definition and bin() implementation ==="
rg -n "enum PackageManager|PackageManager::YarnBerry|fn bin|bin\\(&self\\)|\\.bin\\(" src/core/detect.rs
echo "=== Search for the user-facing remediation string mentioning npm i -g ==="
rg -n "npm\\s+i\\s+-g|npm\\s+install|install\\s+-g|i\\s+-g" src/core/detect.rsRepository: happytoolin/hni
Length of output: 2495
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== Search repo for 'impl .* PackageManager' ==="
rg -n "impl\s+PackageManager|enum\s+PackageManager" src -S
echo "=== Search repo for '.bin()' method implementation ==="
rg -n "fn\s+bin\s*\(" src -S
echo "=== Search repo for 'PackageManager::YarnBerry' occurrences ==="
rg -n "PackageManager::YarnBerry" src -S
echo "=== Search repo for 'yarn@' or '`@yarnpkg`' remediation mapping ==="
rg -n "yarn@|`@yarnpkg`|npm i -g" src -SRepository: happytoolin/hni
Length of output: 2852
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== Search repo for 'impl PackageManager' / 'enum PackageManager' ==="
rg -n "impl\s+PackageManager|enum\s+PackageManager" src -S
echo "=== Search repo for 'fn bin(' implementation ==="
rg -n "fn\s+bin\s*\(" src -S
echo "=== Search repo for 'PackageManager::YarnBerry' occurrences ==="
rg -n "PackageManager::YarnBerry" src -S
echo "=== Search repo for remediation strings involving npm/yarn ==="
rg -n "npm\s+i\s+-g|yarn@|`@yarnpkg`" src -SRepository: happytoolin/hni
Length of output: 2864
🏁 Script executed:
#!/bin/bash
set -euo pipefail
sed -n '240,320p' src/core/types.rs | cat -nRepository: happytoolin/hni
Length of output: 2451
🌐 Web query:
Is yarn@4.2.1 available on npm registry? (look up npm/yarn versions; search for “yarn 4.2.1 not found” or registry.npmjs.org/yarn/4.2.1)
💡 Result:
Yes—yarn@4.2.1 is available on the npm registry as a published version of the yarn package. The npm registry page for yarn lists 120 versions and provides version history entries for that package, indicating versions around the 4.2.x range are present there [1]. How to verify directly (recommended): 1) Open https://registry.npmjs.org/yarn 2) Check the Version History / Versions section for 4.2.1. Note: in general, npm registry supports per-version package metadata via the endpoint pattern GET https://registry.npmjs.org/:package/:version [2], so GET https://registry.npmjs.org/yarn/4.2.1 should resolve if the version exists.
Citations:
- 1: https://registry.npmjs.org/yarn
- 2: https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md
🌐 Web query:
What npm package name (if any) contains Yarn Berry (v4.x) releases for npm install -g? (yarn vs @yarnpkg/cli)
💡 Result:
There is no npm package that provides Yarn Berry (v4.x) via npm install -g. The official and recommended way to use Yarn Berry is through Corepack, which is bundled with Node.js [1][2][3]. The npm package named yarn (often installed via npm install -g yarn) is for the legacy Yarn 1.x (Classic) version only [2][4][5]. Installing this package globally is generally discouraged for modern Yarn Berry projects because it can cause version conflicts [2][4]. The modern approach, endorsed by the Yarn team, follows these steps: 1. Enable Corepack: Run corepack enable to activate the built-in binary manager [2][3][4]. 2. Manage versions per project: Corepack reads the packageManager field in your project's package.json to automatically download and use the correct version of Yarn (e.g., 4.x) for that specific project [1][2][6]. 3. Update versions: Use yarn set version stable (or a specific version like yarn set version 4.6.1) within a project directory to update the Yarn binary managed by Corepack [1][3]. You should not attempt to use @yarnpkg/cli as a global npm package for general use; while it exists in the Yarn repository as an internal package, it is not intended for standalone global installation via npm to provide the Yarn CLI [7][8]. Relying on Corepack ensures that your environment remains consistent across different projects and CI/CD pipelines [2][6].
Citations:
- 1: https://yarnpkg.com/getting-started/install
- 2: https://linuxcapable.com/how-to-install-yarn-on-debian-linux/
- 3: https://blog.tericcabrel.com/upgrade-nodejs-yarn1-to-yarn4/
- 4: https://stackoverflow.com/questions/78573511/how-do-i-upgrade-legacy-yarn1-22-x-to-yarn-4-x-globally
- 5: https://registry.npmjs.org/yarn
- 6: https://news.ycombinator.com/item?id=37985779
- 7: https://github.com/yarnpkg/berry/blob/4ba270669f9345e12d4dbe3f10e50f59d4146121/README.md
- 8: https://github.com/orgs/yarnpkg/packages/npm/package/cli
Fix Yarn Berry remediation hint to not rely on pm.bin() as an npm package name
- In
src/core/detect.rs,PackageManager::YarnBerryhaspm.bin() == "yarn", so the install guidance becomesTry: npm i -g yarn@{version}(lines 32-36, 52-54). - This conflates the executable name with an npm install target and doesn’t match Yarn’s documented recommendation for Yarn 2+ (Corepack). Update the
YarnBerryremediation accordingly (e.g.,corepack prepare yarn@{version} --activate) or verify that your generatednpm i -g yarn@{version}reliably installs Yarn Berry.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/core/detect.rs` around lines 32 - 35, The remediation message currently
builds an install target using pm.bin() (which returns "yarn" for
PackageManager::YarnBerry) resulting in advice like `npm i -g yarn@{version}`;
change the Yarn Berry branch in src/core/detect.rs to emit a Corepack-based
remediation (e.g., `corepack prepare yarn@{version} --activate`) or otherwise
special-case PackageManager::YarnBerry instead of using pm.bin(); update the
code paths that construct `target` (and any message using it) to check for
PackageManager::YarnBerry and format the remediation using the Corepack command,
leaving other package managers to continue using pm.bin() as before.
Code Health Improvements
Commits
82d96b3
clippy_warning::src/app/command_registry.rs::clippy_warning::201clippy_warning::src/app/command_registry.rs::clippy_warning::178clippy_warning::src/app/command_registry.rs::clippy_warning::182clippy_warning::src/app/command_registry.rs::clippy_warning::186clippy_warning::src/app/command_registry.rs::clippy_warning::192clippy_warning::src/app/command_registry.rs::clippy_warning::200clippy_warning::src/app/command_registry.rs::clippy_warning::206clippy_warning::src/app/command_registry.rs::clippy_warning::210clippy_warning::src/app/command_registry.rs::clippy_warning::215clippy_warning::src/app/cli.rs::clippy_warning::79clippy_warning::src/app/cli.rs::clippy_warning::341244be1d
test_coverage::src/main.rs::untested_moduletest_coverage::src/app/command_registry.rs::transitive_onlytest_coverage::src/app/completion.rs::transitive_onlytest_coverage::src/app/dispatch.rs::transitive_onlytest_coverage::src/app/help.rs::transitive_onlytest_coverage::src/features/interactive/completion.rs::transitive_onlytest_coverage::src/features/nr.rs::transitive_onlye68d1e0 — Recorded resolver contract cleanup commit e68d1e0 after full test and lint verification.
clippy_warning::src/core/resolve/build.rs::clippy_warning::20clippy_warning::src/core/resolve/context.rs::clippy_warning::22clippy_warning::src/core/resolve/context.rs::clippy_warning::26clippy_warning::src/core/resolve/context.rs::clippy_warning::50clippy_warning::src/core/resolve/context.rs::clippy_warning::54clippy_warning::src/core/resolve/context.rs::clippy_warning::110clippy_warning::src/core/resolve/detect.rs::clippy_warning::17clippy_warning::src/core/resolve/flags.rs::clippy_warning::3clippy_warning::src/core/resolve/map.rs::clippy_warning::55be6c5d — Recorded direct helper contract coverage tests after cargo fmt, clippy, cargo test, node --check, and git diff --check passed.
test_coverage::src/core/shell.rs::transitive_onlytest_coverage::src/core/native/plan.rs::transitive_onlytest_coverage::src/core/native/env.rs::transitive_onlytest_coverage::src/platform/mod.rs::transitive_onlytest_coverage::src/core/native/mod.rs::transitive_onlytest_coverage::src/core/pkg_json.rs::transitive_onlytest_coverage::src/core/util.rs::transitive_onlytest_coverage::src/app/doctor.rs::transitive_onlytest_coverage::src/core/profile.rs::transitive_onlytest_coverage::src/core/native/eligibility.rs::transitive_onlytest_coverage::src/app/version.rs::transitive_only482936f — Recorded native fast-path contract cleanup after cargo fmt, clippy, cargo test, node --check, and git diff --check passed.
clippy_warning::src/core/native/bin_resolver.rs::clippy_warning::22clippy_warning::src/core/native/bin_resolver.rs::clippy_warning::26clippy_warning::src/core/native/shim_parser.rs::clippy_warning::113clippy_warning::src/core/native/bin_resolver.rs::clippy_warning::19clippy_warning::src/core/native/bin_resolver.rs::clippy_warning::51clippy_warning::src/core/native/bin_resolver.rs::clippy_warning::86clippy_warning::src/core/native/env.rs::clippy_warning::53clippy_warning::src/core/native/exec.rs::clippy_warning::133clippy_warning::src/core/native/exec.rs::clippy_warning::242clippy_warning::src/core/native/shim_parser.rs::clippy_warning::111clippy_warning::src/core/native/mod.rs::clippy_warning::62clippy_warning::src/core/native/mod.rs::clippy_warning::69clippy_warning::src/core/native/mod.rs::clippy_warning::76clippy_warning::src/core/native/mod.rs::clippy_warning::83clippy_warning::src/core/native/mod.rs::clippy_warning::87clippy_warning::src/platform/node.rs::clippy_warning::138clippy_warning::src/platform/node.rs::clippy_warning::13clippy_warning::src/platform/node.rs::clippy_warning::48clippy_warning::src/platform/node.rs::clippy_warning::52clippy_warning::src/platform/node.rs::clippy_warning::67clippy_warning::src/platform/node.rs::clippy_warning::96clippy_warning::src/platform/mod.rs::clippy_warning::54bf6ce2 — Recorded facade Rustdoc cleanup after cargo check, clippy, cargo test, node --check, and git diff --check passed.
review::.::holistic::ai_generated_debt::formulaic_public_rustdoca5b06b3 — Recorded dialoguer feature narrowing after cargo check, interactive prompt tests, cargo tree verification, clippy, cargo test, node --check, and git diff --check passed.
review::.::holistic::dependency_health::dialoguer_default_features5a205a2 — Recorded internal real-node error propagation after targeted init-contract test, clippy, cargo test, node --check, and git diff --check passed.
review::.::holistic::error_consistency::internal_real_node_swallows_failurea940a68 — Recorded boundary error-chain cleanup after cargo check, clippy, cargo test, node --check, and git diff --check passed.
review::.::holistic::error_consistency::stringified_boundary_errorsdc9df94 — Recorded lazy JSR download-root env lookup after deno fmt --check, deno check, node --check, and git diff --check passed.
review::.::holistic::initialization_coupling::jsr_download_root_import_snapshot08c2854 — Recorded Deno wildcard forwarding contract cleanup after focused regression, clippy, cargo test, node --check, and git diff --check passed.
review::.::holistic::logic_clarity::deno_wildcard_args_last_root_only1fa70dd — Recorded runner materialization simplification after passthrough-focused tests, clippy, cargo test, node --check, and git diff --check passed.
review::.::holistic::low_level_elegance::runner_materialize_unused_passthrough559ae10 — Recorded Deno native planning module move after cargo check, native Deno module/integration tests, clippy, cargo test, node --check, git diff --check, and rg import verification passed.
review::.::holistic::package_organization::deno_native_planning_outside_nativef0cc927 — Recorded native regression oracle gating after native_regression, clippy, cargo test, node --check, and git diff --check passed.
review::.::holistic::test_strategy::native_regression_external_oracle_fragilityb592f4d — Recorded JSR invocation drift guard after hni_meta, deno check, clippy, cargo test, node --check, and git diff --check passed.
review::.::holistic::type_safety::parallel_jsr_invocation_typeb9d39e1 — Recorded JS maintenance script error-context cleanup after node --check, postprocess smoke/failure checks, and git diff --check passed.
review::.::holistic::error_consistency::js_script_io_parse_contextSummary
71 issues resolved across 16 commits