npm / @effect/sql-sqlite-bun
@effect/sql-sqlite-bun
What changed in @effect/sql-sqlite-bun 0.49 to 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-15.
4 breaking2 new APIs and options1 performance2 behavior and defaults8 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@effect/sql-sqlite-bun 411 changes
Breaking changes 4
Bun SQLite export rejects ended transactions, so exporting from a transaction that has already ended is no longer accepted.
Driver clients are no longer subtypes of SqlClient.SqlClient. When choosing between driver layers, an explicit Layer.Layer<SqlClient.SqlClient, E> annotation may be needed.
SQL’s unstable module import path drops the unstable segment; the old path has no compatibility export.
SQL driver packages now share Effect’s version number and must be bumped to matching v4 versions alongside effect.
New APIs and options 1
SqlError exposes structured reasons such as UniqueViolation, allowing developers to identify specific SQL error conditions.
Performance 1
Reduces statement overhead by borrowing the shared connection while preserving semaphore exclusion and failed-COMMIT recovery.
Fixes and other changes 5
Single-connection SQL clients hold the shared connection for the whole statement or stream, preventing another fiber's transaction from rolling back acknowledged writes or exposing uncommitted rows to plain reads.
Every module and directly importable export now has an explicit stability tag: stable follows strict semver, while unstable may receive breaking changes in minor releases.
Database setup failures are reported as typed SqlError values.
WAL initialization is skipped for read-only Node connections.
WAL initialization contention is retried within busyTimeout.
@effect/sql-sqlite-bun 0.533 changes
Behavior and default changes 1
The Bun client now waits up to 5 seconds for locks.
Fixes and other changes 2
SQLite transactions now start with BEGIN IMMEDIATE to avoid database is locked errors when concurrent connections write to the same database.
Transactions that fail to begin now fail with the original SqlError instead of dying on rollback.
@effect/sql-sqlite-bun 0.502 changes
New APIs and options 1
Adds SafeIntegers support to the Bun SQLite integration.
Fixes and other changes 1
Prepare errors are wrapped in SqlError, so they surface as catchable failures instead of defects.
@effect/sql-sqlite-bun 0.491 changes
Behavior and default changes 1
Any type can now be used as SQL parameters.