Repository navigation
Upgrade Bun to 1.4.4 - #723
Merged
Merged
Conversation
Bun 1.4.4 carries security fixes for TLS, WebSocket, Bun.SQL, fetch and the package manager. The CI, release and agent-verification workflows, the weekly React Effect review (recompiled with gh aw 0.86.2), mise.toml, packageManager, the application and E2E Docker images and the documentation now name 1.4.4. @types/bun has no 1.4.4 release yet, so the catalog takes 1.4.3 and an override supplies bun-types 1.4.4, the types published with this release. Those types add result metadata to Bun.SQL query results, so the migration test compares a plain copy of each result. Three behaviours changed under 1.4.4: - fetch now starts a network error's message with its code, so the connector printed "ECONNRESET: ECONNRESET: ..." when Chopin was unreachable. It names the code once again. - A pending `.rejects` matcher in bun test makes Bun.serve close a valid WebSocket as fragmented (oven-sh/bun#45805). The agent link's Stop and Resume test awaits the refusal before asserting it. Only that test pattern is affected. - Bun 1.4.4, like 1.4.2, reports ENETUNREACH as ECONNREFUSED in a route-free network namespace, so the conversation-plan worker's egress check keys its mapping on 1.4.4. The chopin CLI is compiled with the release workflow's Bun, so its next release embeds 1.4.4 and the connector's error wording fix. Assistant-model: Claude Opus 5.5 (fast) Assistant-workflow: inline (fast subagents) Assistant-verification: bun test passes with Bun 1.4.4 (6725 pass, 0 fail); the two failures it first showed pass on both 1.4.2 and 1.4.4 after the fixes Assistant-verification: the PostgreSQL contract, bun run types and bun run ci pass Assistant-verification: the application and design Docker images build on oven/bun:1.4.4, and the compiled CLI passes its bridge smoke test Assistant-verification: the connector, connection, machine, Planner attachment, launcher, restart, collaboration and setup E2E files pass (60 passed, 1 live test skipped) User-preference: Keep Bun on the latest security release Co-authored-by: Alex Lavaee <alexlavaee@microsoft.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves Chopin from Bun 1.4.2 to Bun 1.4.4, which shipped today with security fixes for TLS, WebSocket, Bun.SQL, fetch,
bun installand other APIs.Where the version changed
ci.yml,release-cli.ymlandverify-agents.yml(BUN_VERSION), andweekly-use-effect-review.md. Its.lock.ymlwas recompiled withgh aw compile0.86.2, the compiler that produced it.mise.toml, andpackageManagerinpackage.jsonDockerfile(ARG BUN_VERSION),e2e/conversation-plan.Dockerfileande2e/design/Dockerfile(oven/bun:1.4.4; these images are pinned by tag, not by digest)AGENTS.md,README.md,docs/chopin-cli-reference.md(the Bun that/connector.jsneeds),docs/self-hosting.md,e2e/design/README.mdbun.lock: the lockfile format is unchanged, so it was not regenerated. Only the@types/bunandbun-typesentries and the new override changed.@types/bun1.4.4 isn't published yet. The catalog uses@types/bun1.4.3, and anoverridesentry pinsbun-typesto 1.4.4, the types published with this release. When@types/bun1.4.4 is out, the override can be removed.Changes in 1.4.3 and 1.4.4 that affected us
T & ResultMetadata. ThreetoEqualchecks in the migration test now compare a plain copy of each result.ECONNRESET: The socket connection was closed unexpectedly. Because of that, the connector printedCan't reach Chopin (ECONNRESET: ECONNRESET: …).failureCausenow shows the code only once. This changes the connector..rejectsand Bun.serve WebSockets (1.4.4 regression, oven-sh/bun#45805): while a.rejectsmatcher is pending, Bun.serve can close a valid socket with1002 Received new message inside a fragmented message. I reproduced the upstream report on 1.4.4, and it passes on 1.4.2. The agent link's Stop and Resume test now awaits the refusal and then asserts on it. This only affects that test pattern. The frames on the wire are valid, and replaying them against a plain Bun.serve server works.--network nonecontainer, Bun 1.4.4 still reports ENETUNREACH asECONNREFUSED, the same as 1.4.2 (Node reportsENETUNREACH). The conversation-plan worker's version-keyed mapping now names 1.4.4.close()without a code). Nothing in the app or connector depends on 1000.bun installnow rejects unknown flags. All of our flags are valid.--disallow-code-generation-from-strings=stricthas new behavior. We don't use it.PASSWORDenvironment variable. We pass the URL.Connector / CLI
The
chopinbinaries are compiled with the release workflow's Bun, so the next CLI release will embed Bun 1.4.4 and include thefailureCausefix. It needs a CLI release for users to get either one. This PR doesn't bump the CLI version.Verification (Bun 1.4.4, run locally)
bun install --frozen-lockfile: no changesGIT_CONFIG_GLOBAL=/dev/null bun test --parallel --no-isolate: 6725 pass, 22 skip, 0 fail. Before the fixes, the two failures above reproduced every time on 1.4.4 and never on 1.4.2. After the fixes, both files pass on both versions.bun run test:postgresagainst a disposable PostgreSQL 17: 121 passbun run typesandbun run ci: passdocker build .anddocker build -f e2e/design/Dockerfile .: both build, and both images run Bun 1.4.4build:binaries bun-linux-x64:chopin 0.0.20, and the bridge smoke testapps/connector/src/binary.test.tspassesThere's no UI change, so this PR has no visual preview.