Summary
bun install fails on a pristine checkout of main. The lockfile declares @types/bun as a root dev dependency but contains no resolved entry for it in the packages section, so Bun rejects the whole lockfile.
This currently fails the Lint (Javascript) CI job on every open PR, which in turn skips the entire test matrix (the test job needs lint). Effectively no PR can get a green test run right now.
Reproduction
On a clean worktree of main with no local modifications:
git worktree add /tmp/x main
cd /tmp/x
bun install
Output:
bun install v1.3.14 (0d9b296a)
5 | "": {
^
error: Failed to resolve root dev dependency '@types/bun'
at bun.lock:5:9
InvalidPackageInfo: failed to parse lockfile: 'bun.lock'
warn: Ignoring lockfile
Bun then falls back to full resolution ("Ignoring lockfile"), which is why some jobs still succeed -- but the CI step is bun install && git checkout -- bun.lock, and the nonzero parse failure surfaces as a job failure.
Root cause
In bun.lock, @types/bun appears only as a version constraint under the root workspace devDependencies:
line 122: "@types/bun": "1.3.14",
There is no corresponding resolution entry in the packages section. Compare @types/debug, which has both:
line 123: "@types/debug": "^4.1.12", <- constraint
line 1409: "@types/debug": ["@types/debug@4.1.13", ... <- resolution
A grep for a packages-section entry returns nothing:
grep -n '^\s*"@types/bun"' bun.lock
122: "@types/bun": "1.3.14",
The package itself is fine on the registry -- npm view @types/bun@1.3.14 version returns 1.3.14, so this is not a yank.
@types/bun was introduced to both package.json and bun.lock in 91e7462 (#2484, "Add Bun/Vitest compatibility shim for bun test runner").
Evidence of impact
Lint (Javascript) across recent CI runs:
30161918570 issue2666 failure
30161800840 issue2688 failure
30161750618 issue2666 failure
30161381617 issue2666 failure
30161260726 issue2683 failure
30160640260 issue2654 success
30158327063 issue2654 success
Recent main runs:
30146622275 6bc801020 2026-07-25T05:56:15Z success
30130688588 3a12f02e5 2026-07-24T22:21:18Z success
So main was green earlier and every current PR branch now fails, on branches touching completely unrelated code. Confirmed reproducible on a pristine main worktree, so it is not specific to any PR.
Suggested fix
Regenerate the lockfile so the resolution entry is present:
rm bun.lock && bun install
Then verify bun install exits 0 against the committed lockfile on a clean checkout, and that all 16 workspaces resolve.
Note per dev-docs/bun.md that bun install --frozen-lockfile is not usable in this monorepo; the CI smoke uses plain bun install.
Context
Found while working #2688. Not caused by that PR -- it modifies only .github/workflows/ci.yml and two files under scripts/tests/, and touches no dependency manifest.
Summary
bun installfails on a pristine checkout ofmain. The lockfile declares@types/bunas a root dev dependency but contains no resolved entry for it in the packages section, so Bun rejects the whole lockfile.This currently fails the Lint (Javascript) CI job on every open PR, which in turn skips the entire test matrix (the
testjob needslint). Effectively no PR can get a green test run right now.Reproduction
On a clean worktree of
mainwith no local modifications:Output:
Bun then falls back to full resolution ("Ignoring lockfile"), which is why some jobs still succeed -- but the CI step is
bun install && git checkout -- bun.lock, and the nonzero parse failure surfaces as a job failure.Root cause
In
bun.lock,@types/bunappears only as a version constraint under the root workspace devDependencies:There is no corresponding resolution entry in the packages section. Compare
@types/debug, which has both:A grep for a packages-section entry returns nothing:
The package itself is fine on the registry --
npm view @types/bun@1.3.14 versionreturns1.3.14, so this is not a yank.@types/bunwas introduced to bothpackage.jsonandbun.lockin 91e7462 (#2484, "Add Bun/Vitest compatibility shim for bun test runner").Evidence of impact
Lint (Javascript) across recent CI runs:
Recent
mainruns:So
mainwas green earlier and every current PR branch now fails, on branches touching completely unrelated code. Confirmed reproducible on a pristinemainworktree, so it is not specific to any PR.Suggested fix
Regenerate the lockfile so the resolution entry is present:
Then verify
bun installexits 0 against the committed lockfile on a clean checkout, and that all 16 workspaces resolve.Note per dev-docs/bun.md that
bun install --frozen-lockfileis not usable in this monorepo; the CI smoke uses plainbun install.Context
Found while working #2688. Not caused by that PR -- it modifies only
.github/workflows/ci.ymland two files underscripts/tests/, and touches no dependency manifest.