Repository navigation
build: upgrade the toolchain to bun 1.4 - #14
Merged
Merged
Conversation
Bumps the toolchain to Bun 1.4.0 (`.bun-version`, `packageManager`) and raises `engines.bun` to `^1.4.0`. The floor moves for a correctness reason, not just currency: before 1.4, `bun:sql` could hand one Postgres query's rows to another when a parameter-less simple-protocol query overlapped a not-yet-prepared parameterized one on the same connection (oven-sh/bun#32772). Every `findMany`/`count`/`INSERT … DEFAULT VALUES` this adapter emits with no bound params takes that path, so the adapter produced exactly the mix that triggered it. `check:all` now runs through `bun run --parallel --no-exit-on-error` (new in 1.4) instead of `&&`, so a type error no longer hides every Biome finding. Two comments claimed `options.adapter` is absent on a default Postgres connection. It never is — on 1.3.14 or 1.4.0 — only the hand-rolled test doubles omit it, so the wording now says that. The `undefined` fallback stays; the doubles need it. The rest of the 1.4 changelog was audited and needs nothing: `= ANY($1)` with a bound array still fails, so the placeholder expansion in `#inList` stays; `count(*)` still decodes as a string, so the `::int` cast stays; `bun.lock` stays at `lockfileVersion: 1`, which is what Bun 1.4 writes for an unchanged lockfile. BREAKING CHANGE: Bun 1.4 or later is now required. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Reverts the consumer floor raised in the previous commit. The full suite passes on Bun 1.3.14 across Postgres 16/17/18 and SQLite (671/671), and nothing in `src/` uses a 1.4 API, so there was no floor to raise. The toolchain pins (`.bun-version`, `packageManager`) stay at 1.4.0. oven-sh/bun#32772 is still worth telling users about, so the README note becomes a recommendation rather than a requirement. It was never an argument for a hard floor: `engines` isn't enforced — installing this package under Bun 1.3 succeeds with no warning — so the floor would have cost a breaking release and bought nothing. AGENTS.md said the three Bun versions "must be bumped together", which is what argued for moving `engines.bun` in lockstep. It now separates the toolchain pin from the consumer floor. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.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.
Upgrades the development toolchain to Bun 1.4.0 (
.bun-version,packageManager).engines.bunstays at^1.3.0— the full suite passes on 1.3.14 across Postgres 16/17/18 and SQLite, and nothing insrc/uses a 1.4 API.Bun 1.4 is worth recommending in the README, though: before it,
bun:sqlcould hand one Postgres query's rows to another when a parameter-less query and a parameterized one shared a connection (oven-sh/bun#32772), and everyfindMany/count/INSERT … DEFAULT VALUESthis adapter emits with no bound params takes that path. That's a reason to advise 1.4, not to refuse 1.3.Also switches
check:alltobun run --parallel --no-exit-on-error(new in 1.4), so a type error no longer hides every Biome finding.The rest of the 1.4 changelog was audited and needs no code change —
= ANY($1)with a bound array still fails andcount(*)still decodes as a string, so both workarounds stay.