Skip to content

fix(install): bun pm ls with unresolved dependencies - #24541

Merged
Jarred-Sumner merged 4 commits into
mainfrom
dylan/fix-bun-pm-ls-invalid-package-id
Nov 10, 2025
Merged

Jarred-Sumner merged 4 commits into
mainfrom
dylan/fix-bun-pm-ls-invalid-package-id

Conversation

@dylan-conway

Copy link
Copy Markdown
Member

What does this PR do?

Fixes bun pm ls --all crash with unresolved optional peer dependencies.
Fixes bun pm ls crash with empty lockfiles.

Fixes #24502

How did you verify your code works?

Added a test for both crashes

@robobun

robobun commented Nov 9, 2025 •

Copy link
Copy Markdown
Collaborator
Updated 2:36 PM PT - Nov 9th, 2025

❌ @dylan-conway, your commit d85e2c1 has 1 failures in Build #31391 (All Failures):


🧪   To try this PR locally:

bunx bun-pr 24541

That installs a local version of the PR into your bun-24541 executable, so you can run:

bun-24541 --bun

@coderabbitai

coderabbitai Bot commented Nov 9, 2025 •

Copy link
Copy Markdown
Contributor

Walkthrough

This PR addresses a segmentation fault in bun pm ls --all by adding guards to skip out-of-bounds package IDs from unresolved optional peer dependencies. The fix refactors dependency accumulation logic in the tree module and removes unused tree iteration state from PackageInstaller.

Changes

Cohort / File(s) Summary
CLI Package Manager Guard Additions
src/cli/package_manager_command.zig, src/cli/pm_trusted_command.zig
Added bounds checks to skip processing when resolved package_id is out of bounds (handling invalid IDs from unresolved optional peer dependencies); updated import sources to use bun.install for install-related identifiers
PackageInstaller Refactoring
src/install/PackageInstaller.zig
Removed public tree_iterator field from PackageInstaller struct
Hoisted Install Updates
src/install/hoisted_install.zig
Removed tree_iterator assignment and optional runtime assertion in installHoistedPackages
Tree Dependency Accumulation
src/install/lockfile/Tree.zig
Refactored dependency accumulation to use DependencyIDList instead of PackageIDSlice, added peer resolution with skip logic for unresolved IDs, improved memory management, and removed PackageIDSlice public alias
Regression Test
test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
Added test verifying unresolved optional peer dependencies do not crash bun pm ls --all

Possibly related PRs

  • #24272: Adds similar guards for skipping unresolved/invalid package IDs in install/lockfile tree handling with optional-peer resolution paths

Suggested reviewers

  • nektro
  • taylordotfish

Pre-merge checks

✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately describes the main fix: addressing crashes in 'bun pm ls' with unresolved dependencies.
Description check ✅ Passed The PR description covers both required template sections with specific details about the fixes and verification method.
Linked Issues check ✅ Passed The code changes directly address issue #24502 by adding guards to skip invalid package IDs and handle empty lockfiles, preventing the segmentation fault.
Out of Scope Changes check ✅ Passed All changes are directly focused on fixing the crash: guards for invalid package IDs, empty lockfile handling, and related refactoring to support these fixes.

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 0a307ed and d85e2c1.

⛔ Files ignored due to path filters (4)
  • test/cli/install/__snapshots__/migrate-bun-lockb-v2.test.ts.snap is excluded by !**/*.snap
  • test/integration/next-pages/test/__snapshots__/dev-server-ssr-100.test.ts.snap is excluded by !**/*.snap
  • test/integration/next-pages/test/__snapshots__/dev-server.test.ts.snap is excluded by !**/*.snap
  • test/integration/next-pages/test/__snapshots__/next-build.test.ts.snap is excluded by !**/*.snap
📒 Files selected for processing (6)
  • src/cli/package_manager_command.zig (3 hunks)
  • src/cli/pm_trusted_command.zig (2 hunks)
  • src/install/PackageInstaller.zig (0 hunks)
  • src/install/hoisted_install.zig (0 hunks)
  • src/install/lockfile/Tree.zig (2 hunks)
  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts (1 hunks)
💤 Files with no reviewable changes (2)
  • src/install/PackageInstaller.zig
  • src/install/hoisted_install.zig
🧰 Additional context used
📓 Path-based instructions (5)
**/*.zig

📄 CodeRabbit inference engine (.cursor/rules/javascriptcore-class.mdc)

**/*.zig: Declare the extern C symbol in Zig and export a Zig-friendly alias for use
Wrap the Bun____toJS extern in a Zig method that takes a JSGlobalObject and returns JSC.JSValue

Files:

  • src/cli/pm_trusted_command.zig
  • src/cli/package_manager_command.zig
  • src/install/lockfile/Tree.zig
src/**/*.zig

📄 CodeRabbit inference engine (.cursor/rules/building-bun.mdc)

When adding debug logs in Zig, create a scoped logger and log via Bun APIs: const log = bun.Output.scoped(.${SCOPE}, .hidden); then log("...", .{})

src/**/*.zig: Use Zig private fields with the # prefix for encapsulation (e.g., struct { #foo: u32 })
Prefer Decl literals for initialization (e.g., const decl: Decl = .{ .binding = 0, .value = 0 };)
Place @import statements at the bottom of the file (formatter will handle ordering)

Files:

  • src/cli/pm_trusted_command.zig
  • src/cli/package_manager_command.zig
  • src/install/lockfile/Tree.zig
test/**

📄 CodeRabbit inference engine (.cursor/rules/writing-tests.mdc)

Place all tests under the test/ directory

Files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
test/regression/issue/+([0-9])/**

📄 CodeRabbit inference engine (.cursor/rules/writing-tests.mdc)

Place regression tests under test/regression/issue/[number] (a numeric directory per issue)

Files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
test/**/*.{js,ts}

📄 CodeRabbit inference engine (.cursor/rules/writing-tests.mdc)

test/**/*.{js,ts}: Write tests in JavaScript or TypeScript using Bun’s Jest-style APIs (test, describe, expect) and run with bun test
Prefer data-driven tests (e.g., test.each) to reduce boilerplate
Use shared utilities from test/harness.ts where applicable

Files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
🧠 Learnings (27)
📚 Learning: 2025-09-06T03:37:41.154Z
Learnt from: taylordotfish
Repo: oven-sh/bun PR: 22229
File: src/bundler/LinkerGraph.zig:0-0
Timestamp: 2025-09-06T03:37:41.154Z
Learning: In Bun's codebase, when checking import record source indices in src/bundler/LinkerGraph.zig, prefer using `if (import_index >= self.import_records.len)` bounds checking over `isValid()` checks, as the bounds check is more robust and `isValid()` is a strict subset of this condition.

Applied to files:

  • src/cli/pm_trusted_command.zig
  • src/cli/package_manager_command.zig
📚 Learning: 2025-08-30T00:13:36.815Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/zig-javascriptcore-classes.mdc:0-0
Timestamp: 2025-08-30T00:13:36.815Z
Learning: Applies to src/bun.js/bindings/generated_classes_list.zig : Update src/bun.js/bindings/generated_classes_list.zig to include new classes

Applied to files:

  • src/cli/package_manager_command.zig
📚 Learning: 2025-10-19T02:44:46.354Z
Learnt from: theshadow27
Repo: oven-sh/bun PR: 23798
File: packages/bun-otel/context-propagation.test.ts:1-1
Timestamp: 2025-10-19T02:44:46.354Z
Learning: In the Bun repository, standalone packages under packages/ (e.g., bun-vscode, bun-inspector-protocol, bun-plugin-yaml, bun-plugin-svelte, bun-debug-adapter-protocol, bun-otel) co-locate their tests with package source code using *.test.ts files. This follows standard npm/monorepo patterns. The test/ directory hierarchy (test/js/bun/, test/cli/, test/js/node/) is reserved for testing Bun's core runtime APIs and built-in functionality, not standalone packages.

Applied to files:

  • src/cli/package_manager_command.zig
  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:12:56.803Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/writing-tests.mdc:0-0
Timestamp: 2025-08-30T00:12:56.803Z
Learning: Applies to test/cli/**/*.{js,ts} : When testing Bun as a CLI, use spawn with bunExe() and bunEnv from harness, and capture stdout/stderr via pipes

Applied to files:

  • src/cli/package_manager_command.zig
  • src/install/lockfile/Tree.zig
  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-10-08T13:56:00.875Z
Learnt from: Jarred-Sumner
Repo: oven-sh/bun PR: 23373
File: src/bun.js/api/BunObject.zig:2514-2521
Timestamp: 2025-10-08T13:56:00.875Z
Learning: For Bun codebase: prefer using `bun.path` utilities (e.g., `bun.path.joinAbsStringBuf`, `bun.path.join`) over `std.fs.path` functions for path operations.

Applied to files:

  • src/cli/package_manager_command.zig
  • src/install/lockfile/Tree.zig
📚 Learning: 2025-09-12T18:16:50.754Z
Learnt from: RiskyMH
Repo: oven-sh/bun PR: 22606
File: src/glob/GlobWalker.zig:449-452
Timestamp: 2025-09-12T18:16:50.754Z
Learning: For Bun codebase: prefer using `std.fs.path.sep` over manual platform separator detection, and use `bun.strings.lastIndexOfChar` instead of `std.mem.lastIndexOfScalar` for string operations.

Applied to files:

  • src/cli/package_manager_command.zig
  • src/install/lockfile/Tree.zig
📚 Learning: 2025-10-04T09:52:49.414Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: src/js/CLAUDE.md:0-0
Timestamp: 2025-10-04T09:52:49.414Z
Learning: Applies to src/js/bun/**/*.{ts,js} : Place Bun-specific modules (e.g., bun:ffi, bun:sqlite) under bun/

Applied to files:

  • src/cli/package_manager_command.zig
📚 Learning: 2025-10-19T02:52:37.412Z
Learnt from: theshadow27
Repo: oven-sh/bun PR: 23798
File: packages/bun-otel/tsconfig.json:1-15
Timestamp: 2025-10-19T02:52:37.412Z
Learning: In the Bun repository, packages under packages/ (e.g., bun-otel) can follow a TypeScript-first pattern where package.json exports point directly to .ts files (not compiled .js files). Bun natively runs TypeScript, so consumers import .ts sources directly and receive full type information without needing compiled .d.ts declaration files. For such packages, adding "declaration": true or "outDir" in tsconfig.json is unnecessary and would break the export structure.
<!-- [remove_learning]
ceedde95-980e-4898-a2c6-40ff73913664

Applied to files:

  • src/cli/package_manager_command.zig
  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:12:56.803Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/writing-tests.mdc:0-0
Timestamp: 2025-08-30T00:12:56.803Z
Learning: Applies to test/js/bun/**/*.{js,ts} : Place Bun API tests under test/js/bun/, separated by category (e.g., test/js/bun/glob/)

Applied to files:

  • src/cli/package_manager_command.zig
  • src/install/lockfile/Tree.zig
  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-09-08T00:41:12.052Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: src/bun.js/bindings/v8/CLAUDE.md:0-0
Timestamp: 2025-09-08T00:41:12.052Z
Learning: Applies to src/bun.js/bindings/v8/src/symbols.txt : Add new V8 API mangled symbols (without leading underscore) to src/symbols.txt

Applied to files:

  • src/cli/package_manager_command.zig
📚 Learning: 2025-09-08T00:41:12.052Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: src/bun.js/bindings/v8/CLAUDE.md:0-0
Timestamp: 2025-09-08T00:41:12.052Z
Learning: Applies to src/bun.js/bindings/v8/V8*.h : Ensure all public V8 API functions are marked with BUN_EXPORT for symbol visibility

Applied to files:

  • src/cli/package_manager_command.zig
📚 Learning: 2025-10-26T01:32:04.844Z
Learnt from: Jarred-Sumner
Repo: oven-sh/bun PR: 24082
File: test/cli/test/coverage.test.ts:60-112
Timestamp: 2025-10-26T01:32:04.844Z
Learning: In the Bun repository test files (test/cli/test/*.test.ts), when spawning Bun CLI commands with Bun.spawnSync for testing, prefer using stdio: ["inherit", "inherit", "inherit"] to inherit stdio streams rather than piping them.

Applied to files:

  • src/cli/package_manager_command.zig
  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:13:36.815Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/zig-javascriptcore-classes.mdc:0-0
Timestamp: 2025-08-30T00:13:36.815Z
Learning: Applies to src/bun.js/**/*.zig : Provide deinit() for resource cleanup and finalize() that calls deinit(); use bun.destroy(this) or appropriate destroy pattern

Applied to files:

  • src/install/lockfile/Tree.zig
📚 Learning: 2025-08-30T00:13:36.815Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/zig-javascriptcore-classes.mdc:0-0
Timestamp: 2025-08-30T00:13:36.815Z
Learning: Applies to src/bun.js/**/*.zig : Constructors and prototype methods should return bun.JSError!JSC.JSValue to integrate Zig error handling with JS exceptions

Applied to files:

  • src/install/lockfile/Tree.zig
📚 Learning: 2025-10-01T22:13:08.081Z
Learnt from: taylordotfish
Repo: oven-sh/bun PR: 23169
File: src/codegen/bindgenv2/internal/base.ts:120-125
Timestamp: 2025-10-01T22:13:08.081Z
Learning: Iterator.some() and other Iterator helper methods (map, filter, etc.) are supported in Bun and modern Node.js (22+) runtimes and can be safely used on string iterators and other iterator objects.

Applied to files:

  • src/install/lockfile/Tree.zig
📚 Learning: 2025-08-31T09:08:12.104Z
Learnt from: Jarred-Sumner
Repo: oven-sh/bun PR: 22279
File: test/js/web/structured-clone-fastpath.test.ts:12-12
Timestamp: 2025-08-31T09:08:12.104Z
Learning: In Bun, process.memoryUsage.rss() is called as a direct function, not as process.memoryUsage().rss like in Node.js. This is the correct API shape for Bun.

Applied to files:

  • src/install/lockfile/Tree.zig
📚 Learning: 2025-08-30T00:13:36.815Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/zig-javascriptcore-classes.mdc:0-0
Timestamp: 2025-08-30T00:13:36.815Z
Learning: Applies to src/bun.js/**/*.zig : For properties marked cache: true, use the generated Zig accessors (<Prop>NameSetCached/GetCached) to work with GC-owned values

Applied to files:

  • src/install/lockfile/Tree.zig
📚 Learning: 2025-08-30T00:12:56.803Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/writing-tests.mdc:0-0
Timestamp: 2025-08-30T00:12:56.803Z
Learning: For Node.js compatibility bugs, validate expected behavior in Node.js first, then confirm failure on Bun canary

Applied to files:

  • src/install/lockfile/Tree.zig
  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:12:56.803Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/writing-tests.mdc:0-0
Timestamp: 2025-08-30T00:12:56.803Z
Learning: Applies to test/**/*.{js,ts} : Write tests in JavaScript or TypeScript using Bun’s Jest-style APIs (test, describe, expect) and run with bun test

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:09:39.100Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/dev-server-tests.mdc:0-0
Timestamp: 2025-08-30T00:09:39.100Z
Learning: Applies to test/bake/dev/bundle.test.ts : bundle.test.ts should contain DevServer-specific bundling tests

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:12:56.803Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/writing-tests.mdc:0-0
Timestamp: 2025-08-30T00:12:56.803Z
Learning: Applies to test/cli/**/*.{js,ts} : Place CLI command tests (e.g., bun install, bun init) under test/cli/

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:12:56.803Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/writing-tests.mdc:0-0
Timestamp: 2025-08-30T00:12:56.803Z
Learning: Applies to test/js/third_party/**/*.{js,ts} : Place third-party npm package tests under test/js/third_party/

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:09:39.100Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/dev-server-tests.mdc:0-0
Timestamp: 2025-08-30T00:09:39.100Z
Learning: Applies to test/bake/dev/plugins.test.ts : plugins.test.ts should contain plugin-related development-mode tests

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-10-08T13:48:02.430Z
Learnt from: Jarred-Sumner
Repo: oven-sh/bun PR: 23373
File: test/js/bun/tarball/extract.test.ts:107-111
Timestamp: 2025-10-08T13:48:02.430Z
Learning: In Bun's test runner, use `expect(async () => { await ... }).toThrow()` to assert async rejections. Unlike Jest/Vitest, Bun does not require `await expect(...).rejects.toThrow()` - the async function wrapper with `.toThrow()` is the correct pattern for async error assertions in Bun tests.

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-08-30T00:12:56.803Z
Learnt from: CR
Repo: oven-sh/bun PR: 0
File: .cursor/rules/writing-tests.mdc:0-0
Timestamp: 2025-08-30T00:12:56.803Z
Learning: Applies to test/js/node/test/** : Vendored Node.js tests under test/js/node/test/ are exceptions and do not follow Bun’s test style

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-11-06T00:58:23.965Z
Learnt from: markovejnovic
Repo: oven-sh/bun PR: 24417
File: test/js/bun/spawn/spawn.test.ts:903-918
Timestamp: 2025-11-06T00:58:23.965Z
Learning: In Bun test files, `await using` with spawn() is appropriate for long-running processes that need guaranteed cleanup on scope exit or when explicitly testing disposal behavior. For short-lived processes that exit naturally (e.g., console.log scripts), the pattern `const proc = spawn(...); await proc.exited;` is standard and more common, as evidenced by 24 instances vs 4 `await using` instances in test/js/bun/spawn/spawn.test.ts.

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
📚 Learning: 2025-11-08T04:06:33.198Z
Learnt from: Jarred-Sumner
Repo: oven-sh/bun PR: 24491
File: test/js/bun/transpiler/declare-global.test.ts:17-17
Timestamp: 2025-11-08T04:06:33.198Z
Learning: In Bun test files, `await using` with Bun.spawn() is the preferred pattern for spawned processes regardless of whether they are short-lived or long-running. Do not suggest replacing `await using proc = Bun.spawn(...)` with `const proc = Bun.spawn(...); await proc.exited;`.

Applied to files:

  • test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts
🧬 Code graph analysis (1)
test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts (1)
test/harness.ts (3)
  • tempDirWithFiles (259-266)
  • runBunInstall (1215-1271)
  • bunExe (102-105)
🔇 Additional comments (6)
src/cli/package_manager_command.zig (3)

350-352: LGTM! Essential guard prevents panic.

This early return is necessary to prevent a panic at line 354 where orderedRemove(0) would fail on an empty list. This can occur with empty lockfiles or when all dependencies are filtered out.


540-543: LGTM! Critical bounds check prevents crash.

The guard correctly handles invalid package IDs from binary lockfiles with unresolved optional peer dependencies, preventing out-of-bounds access that would cause a segmentation fault.


613-618: LGTM! Clean import refactor.

The migration from Install to bun.install as the import source is consistent with the broader codebase organization.

src/cli/pm_trusted_command.zig (1)

71-73: LGTM! Consistent bounds checks prevent crashes.

Both guards correctly skip packages with out-of-bounds IDs, handling unresolved optional peer dependencies gracefully. The implementation is consistent with the pattern established in package_manager_command.zig.

Also applies to: 239-241

test/regression/issue/24502/bun-pm-ls-all-invalid-package-id.test.ts (1)

1-31: LGTM! Well-structured regression test.

The test correctly validates that unresolved optional peer dependencies don't crash bun pm ls --all. The test structure follows Bun's conventions, uses appropriate harness utilities, and is properly placed in the regression directory per coding guidelines.

src/install/lockfile/Tree.zig (1)

298-333: LGTM! Core fix correctly filters unresolved dependencies.

The refactored clean() function properly handles unresolved optional peer dependencies:

  1. Correct filtering logic (lines 304-312): Iterates through dependency IDs, resolves each to a package ID, and skips unresolved optional peers (invalid_package_id), preventing invalid IDs from corrupting the tree structure.

  2. Proper offset/length calculation (lines 303, 313-316): Captures the offset before appending, accumulates only valid entries, and calculates the actual length, ensuring correct slice boundaries.

  3. Resource cleanup (line 301): defer child.deinit(this.allocator) ensures proper deallocation regardless of control flow.

This is the essential fix that prevents the segmentation fault reported in issue #24502.


Comment @coderabbitai help to get the list of available commands and usage tips.

@RiskyMH RiskyMH mentioned this pull request Nov 9, 2025
@dylan-conway
dylan-conway requested review from a team and nektro and removed request for a team November 10, 2025 17:42
@Jarred-Sumner
Jarred-Sumner merged commit 6f9843e into main Nov 10, 2025
59 of 60 checks passed
@Jarred-Sumner
Jarred-Sumner deleted the dylan/fix-bun-pm-ls-invalid-package-id branch November 10, 2025 19:19
@coderabbitai coderabbitai Bot mentioned this pull request Nov 10, 2025
dylan-conway added a commit that referenced this pull request Nov 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Segmentation Fault when running bun list --all

3 participants