Repository navigation
chore(ci): take every Bun pin from package.json - #7818
Conversation
The orphaned-workflow cleanup job installs Bun through setup-project-bun instead of a hand-pinned 1.4.2, and @types/bun moves to 1.4.4 to match dependencies.bun. Closes #7811
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
✅ Deterministic PR hygiene checks passed. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Align the Bun type dependency with the runtime pin package.json, structure/runtime.md, tests/ci-workflows/install-scripts.test.ts |
@types/bun is updated to 1.4.4. The runtime documentation and package test describe and check its relationship to the Bun runtime dependency. |
Use the project Bun setup in the cleanup workflow .github/workflows/cleanup-orphaned-workflows.yml, tests/ci-workflows/cleanup-orphaned-workflows.test.ts |
The workflow replaces the explicit Bun 1.4.2 setup with setup-project-bun. The test checks checkout order, absence of action inputs, and removal of the old action and bun-version text. |
Pin Bun in the docs deployment workflow .github/workflows/deploy-docs.yml, tests/ci-workflows/ci-workflows.test.ts |
The workflow replaces bun@latest with bun@1.4.4. The test checks that its package-manager version matches the package dependency and has a three-part numeric format. |
Priority:
Estimated code review effort: 2 (Simple) | ~8 minutes
Change: Other · Severity of issue fixed: Low
Possibly related PRs
- lidge-jun/opencodex#7606: Updates the Bun runtime dependency and related documentation and version assertion, which this PR uses in workflow configuration and tests.
Merge Risk: 
Minimal · up to 6c3a6
-
No merge-blocking risk is identified; the Bun pins and workflow checks are aligned.
Pre-merge checks: 
5
-
Full details: Title check
-
Explanation
The title clearly and concisely describes the main change: CI workflows now use the Bun version declared in package.json. It matches the cleanup workflow, documentation workflow, and related version-alignment tests.
Full details: Linked Issues check
-
Explanation
Issue
#7811requires.github/workflows/cleanup-orphaned-workflows.ymlto use the repository Bun pin instead of the hardcoded 1.4.2 pin. The workflow now checks out the repository and then uses./.github/actions/setup-project-bunat.github/workflows/cleanup-orphaned-workflows.ymlin theSetup Bunstep. The composite resolvesdependencies.bunfrompackage.jsonand passes the resolved version to the SHA-pinnedoven-sh/setup-bunaction in.github/actions/setup-project-bun/action.yml. The workflow test also checks checkout ordering, absence of a directoven-sh/setup-bunstep, and absence of abun-versionliteral. These changes satisfy the issue objective and reduce future version drift.
Full details: Out of Scope Changes check
-
Explanation
The changed files remain connected to the Bun pin objective in
#7811. The@types/bunupdate,bun.lockregeneration,install-scripts.test.tsalignment check, andstructure/runtime.mdcorrection keep package metadata, types, lock data, tests, and documentation consistent withdependencies.bun. Thedeploy-docs.ymlchange replacesbun@latestwithbun@1.4.4, andci-workflows.test.tsverifies that value againstpackage.json; this prevents another repository workflow from drifting from the same runtime pin. The cleanup workflow keeps its checkout, permissions, triggers, concurrency, and final token use unchanged. No unrelated implementation or cleanup is demonstrated.
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 3 files. (1 skipped: 1 unsupported.)
-
Finishing Touches
-
📝 Generate docstrings
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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 @coderabbitai help to get the list of available commands.
deploy-docs installed bun@latest through withastro/action; it now requests the dependencies.bun version and a test keeps the two equal.
|
Maintainer integration into
This is maintainer integration, not an approving review. |
Summary
The daily orphaned-workflow cleanup job still installed Bun 1.4.2 through a hand-pinned
oven-sh/setup-bunstep, after every other workflow had moved to the package.json pin (1.4.4). This PR closes the remaining gaps so Bun 1.4.4 is the single version in the repository:.github/workflows/cleanup-orphaned-workflows.ymlnow installs Bun through./.github/actions/setup-project-bun(runtime role), so it readsdependencies.bunfrom package.json.@types/bunmoves from 1.4.0 to 1.4.4 (pullsbun-types1.4.4);bun.lockwas regenerated with the pinned Bun 1.4.4.install-scripts.test.tsasserts@types/bunequalsdependencies.bun, andcleanup-orphaned-workflows.test.tsasserts the job uses the composite after checkout, has no directoven-sh/setup-bunstep and nobun-versionliteral..github/workflows/deploy-docs.ymlbuilt the docs withwithastro/actionpackage-manager: bun@latest, an unpinned Bun. It now requestsbun@1.4.4(the action splits name@version and passes it to the same pinnedoven-sh/setup-bunSHA), and the existing deploy-docs hardening test inci-workflows.test.tsasserts it equalsbun@<package.json dependencies.bun>. npm latest is 1.4.4 today, so the built output does not change; this stops future drift. Permissions, triggers and action SHAs in that workflow are unchanged.structure/runtime.mdno longer says@types/bun"remains unchanged".dependencies.bunandtestRunnerBunstay separate keys.Why the composite instead of a hardcoded 1.4.4 plus a test. The composite needs
./package.jsonon disk, and this workflow already checks out the repository: trusted default-branch code (scheduleandpushtomainonly),actions/checkoutpinned by SHA,persist-credentials: false. So switching adds no checkout, no permission, no trigger and no token exposure. The composite resolves the version with a Node snippet over the checked-out package.json and then calls the same pinnedoven-sh/setup-bun@0c5077e5…SHA this job used before.GITHUB_TOKENis still only passed to the final script step. Triggers, permissions, concurrency and job matrices are unchanged.Sweep for other pins.
rgover.github,scripts,desktop,gui,docs-site, Dockerfiles andstructurefound no other toolchain pin below 1.4.4; the security review flagged the unpinnedbun@latestabove, which is now pinned. Remaining 1.3.x/1.4.0–1.4.3 mentions are dated comments explaining past Bun behaviour, test fixtures (e.g. the resolver fixture inci-scope-gaps.test.ts, version-parsing tests),MIN_FIXED_BUN_VERSIONthresholds, and unrelated Cargo/User-Agent versions; those are left alone. The localizedtroubleshooting/windows-memory.mdpages still describe the bundled runtime as 1.3.14; that is stale user documentation, not a pin, and is out of scope here.Closes #7811
Verification
Run on Windows with the pinned
node_modules/bun1.4.4:bun install(lock update), thenbun install --frozen-lockfile: no changes, exit 0bun run typecheck: exit 0bun test --isolate tests/ci-workflows/cleanup-orphaned-workflows.test.ts tests/ci-workflows/install-scripts.test.ts tests/ci-workflows/ci-workflows.test.ts tests/ci-workflows/ci-scope-gaps.test.ts tests/test-layout.test.ts tests/test-layout-tooling.test.ts: 217 pass / 4 skip / 1 fail. The failure issetup-project-bun pin resolution > each role fails closed …timing out at 5 s; it spawns Node 16 times, reads no file this PR changes, and on this host takes ~4.5 s (re-run 3×: 5.8 s fail, 4.49 s pass, 4.49 s pass). Host timing, not a regression.bun test --isolate tests/ci-workflows/ci-workflows.test.ts -t "docs deployment is pinned"fails withbun@latestrestored and passes with the pin. A full re-run ofci-workflows.test.ts+cleanup-orphaned-workflows.test.tson the second head gave 144 pass / 1 skip / 4 fail; the four aredoctor-gui-if-changed/lint-gui-if-changedsubprocess tests that hit the 5 s timeout after 20-30 s under host load (the same file passed fully on the first head) and touch nothing in this diff.bun run structure:check,bun run privacy:scan,git diff --check: passbun run test:changed: stopped locally after ~10 min without output under host resource pressure; because this diff changes a dependency, PR CI runs the four full Ubuntu test shards on the exact head insteadNOT RUN: full
bun run testandtest:changedto completion locally (left to the CI shards), macOS/Windows CI lanes (manual dispatch only by policy), a live run of the cleanup workflow (it only runs onmain).Checklist
Summary by CodeRabbit