Repository navigation
fix(runtime): ship Bun 1.4.2 and keep the CI test runner on 1.4.0 - #6713
Conversation
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. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 1 minute. View limit detailsLimit details: You’ve used all 10 included reviews currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (35)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
⛔ Files ignored due to path filters (1)
📒 Files selected for processing (6)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe bundled Bun version changes from 1.4.0 to 1.4.2 in the package dependency and Docker image pin. Documentation and test expectations are updated, along with comments about the Windows transport regression and worker lifetime model. ChangesBun version update
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~5 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to The version pin and supporting references are aligned, with no actionable merge-blocking risk identified. 🚥 Pre-merge checks | ✅ 2 | ❌ 1 | ❓ 2❌ Failed checks (1 warning, 2 inconclusive)
✅ Passed checks (2 passed)
Full details: Linked Issues checkExplanation Issue Full details: Out of Scope Changes checkExplanation The reviewable changes described in the summary—Bun version assertions, Docker image pin, tests, and documentation—support the runtime update for issue Full details: Title checkExplanation The title correctly identifies shipping Bun 1.4.2, but it incorrectly states that the CI test runner remains on Bun 1.4.0. The changes update the package dependency assertion to Bun 1.4.2 in tests/ci-workflows/install-scripts.test.ts, and the PR objective is to align the bundled runtime and Docker build with Bun 1.4.2. ✨ Finishing Touches 💡 1📝 Generate docstrings
🧪 Generate unit tests (beta)
🛠️ Fix failing CI checks 💡
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.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 954be2f553
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "@modelcontextprotocol/sdk": "^1.30.0", | ||
| "@napi-rs/keyring": "1.3.0", | ||
| "bun": "1.4.0", | ||
| "bun": "1.4.2", |
There was a problem hiding this comment.
Keep the known-crashing Bun runtime out of the test path
Pinning dependencies.bun to 1.4.2 also makes .github/actions/setup-project-bun select that version for every CI job, even though the changed test documents that this exact runtime reproducibly segfaults when bun test --isolate reloads the preload across multiple files, including repeated Windows shard failures. The current batch wrapper treats the first runtime crash as a shard failure, so the focused four-file run does not establish that normal CI or bun run test can complete; retain 1.4.0 or use a fixed runtime until the required full lane=all run is green.
AGENTS.md reference: AGENTS.md:L445-L452
Useful? React with 👍 / 👎.
|
Holding this pin. Exact-head Cross-platform CI 37631558263 shows Bun 1.4.2 crashing the existing test runner with |
Merge b1e1735 additively after the specified dev c0f8165. The four newer upstream commits are 18a8cda (lidge-jun#6731), 13348ce (lidge-jun#6729), 8d30945 (lidge-jun#6713) and b1e1735 (lidge-jun#6732); their history is preserved unchanged. The only content conflict is src/combos/jev.ts, where lidge-jun#6731 edited the endpoint resolver that the P0 exchange extraction moved to src/combos/jev-service-exchange.ts. This merge keeps the P0 side of jev.ts byte for byte. The exchange resolver still applies the pre-lidge-jun#6731 trailing-slash normalization after this commit; carrying the shared endpoint authority into it is a separate follow-up commit. Co-authored-by: SeongwoongCho <35558061+SeongwoongCho@users.noreply.github.com> Co-Authored-By: Claude Code <noreply@anthropic.com>
Summary
1.4.2:package.jsondependencies.bun(the npm runtime),bun.lock(onlybunand its 12@oven/bun-*platform packages), and the Docker image pinned by multi-platform index digestsha256:9114c058aeae42162ee16dd5084b95fe9473970bb6bcb5b232ab1630f0546895. Provider routing and transport code are unchanged. Closes [Bug][Windows] Pinned transport kills the upstream socket after the first response-body chunk — local cleartext providers can never stream (502 upstream_server_error) #6684.1.4.0. Bun 1.4.2 segfaults (Segmentation fault at address 0x10) while re-loading the bunfig preload under multi-filebun test --isolate; that is why fix(ci,runtime): stop hiding the Bun runtime crash and pin back to 1.4.0 #4821 reverted wp6: pin Bun 1.4.2 and catch up the drifted workflow #4064, and this PR's earlier exact-head run 37631558263 reproduced it on Linux 1/4, macOS 2/2 and Windows 9/9 (single files pass).package.jsontestRunnerBun: "1.4.0"..github/actions/setup-project-bungains aroleinput:runtime(default,dependencies.bun) ortest-runner(testRunnerBun); unknown roles and missing or malformed pins fail closed. The input is passed throughenv, never interpolated into the script.bun testuserole: test-runner: ci.ymltest,storage-policy,api-usage,gates,platform-macos,macos-control,platform-windows, plus dev-version-bumpopen-bump-pr. Every job that compiles, packages, smokes or runs the shipped runtime stays onruntime(release.yml packaging/verify/publish, service-lifecycle, desktop-installed-gate, docker and keyring smoke, desktop-shell). Thesetup-actionjob now proves both roles install exactly whatpackage.jsondeclares.widgetjob had a stale directbun-version: 1.3.14pin (added in feat(macos): menu bar companion + widget, with CodexBar-style usage monitor integrated into Usage #5196 after the 1.4.0 pin). It compiles the desktop sidecar withprepare-sidecar.ts, so it now uses the runtime role to match what release.yml ships.install-scripts.test.ts, andstructure/runtime.md: rejoin once the upstream runner crash is fixed and a greenlane=alldispatch proves the unified version, then deletetestRunnerBunand theroleinput.bunresolves tonode_modules/.bin/bun, which is now the bundled 1.4.2. Without a fix,bun run test,bun run prepushand the local release helper's test preflight would run the suite on the crashing runner. Newscripts/lib/test-runner-bun.tspicks the test runner. It uses the running executable when it already matchestestRunnerBun. Otherwise it takesOCX_TEST_RUNNER_BUN(must report the pin) or a matchingbunon PATH outside anynode_modulesor in~/.bun/bin. If none matches, it fails with install guidance and downloads nothing.scripts/test.ts,scripts/test-layout/verify.ts, thescripts/release.tspreflight test commands (only those; audit, typecheck, privacy and version sync are unchanged) andscripts/openai-provider-option-final-gates.tsuse it. CI is unaffected because its test jobs already run on the pin.gui/package.jsontest(a probe showed its barebunchild resolved to the bundled 1.4.2) now runs throughscripts/test-with-pinned-bun.ts. That wrapper preserves arguments, cwd and exit status, and forwards SIGINT, SIGTERM and SIGHUP to the child (exiting 130, 143 or 129). This is a package-script change only and has no UI change, so the maintainer appliedgui-screenshot-waived. CI'scd gui && bun test --isolate testsis unchanged.testRunnerBun.docs-bun-source-requirement.test.tschecks both versions againstpackage.json.Verification
bun run typecheck,bun run structure:check,git diff --check,bun install --frozen-lockfile --ignore-scriptsall pass.bun test --isolateon local Bun 1.4.0:tests/ci-workflows/install-scripts.test.ts(10 pass),tests/ci-workflows/ci-scope-gaps.test.ts(30 pass, includes the new role guard),tests/ci-workflows/ci-workflows.test.ts(142 pass),tests/ci-workflows/release-version-sources.test.ts(10 pass),tests/test-layout.test.ts(2 pass),tests/test-layout-tooling.test.ts(16 pass),tests/ci-workflows/file-size-ratchet.test.ts(9 pass). 0 fail.tests/ci-workflows/test-runner-bun.test.ts12 pass (matching runtime, override match/mismatch, node_modules skip,~/.bun/binfallback, Windowsbun.exe/quoted PATH, failure guidance). Existing test-runner and release-helper tests 98 pass / 3 skip. Real smoke with the bundled 1.4.2 installed:bun run test -- tests/ci-workflows/test-runner-bun.test.tsprintedtest runner: Bun 1.4.0 (~/.bun/bin/bun)and passed.bun run privacy:scanand the docs-site build pass.docs-bun-source-requirement,test-runner-bun(GUI wrapper and signal-forwarding regression cases),test-layout-tooling(verify uses the pinned runner) andrelease-helperpass individually. A manual probe confirmed the child receives and exits on all three signals.lane=alldispatch covers the runtime-role jobs on 1.4.2. Windows streaming proof is the reporter's controlled A/B: Bun 1.4.2 delivered all six upstream writes, 1.4.0 failed.Checklist