unstale

npm / @op-engineering/op-sqlite

@op-engineering/op-sqlite

What changed in @op-engineering/op-sqlite 15 to 18, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-21.

2 breaking1 security13 new APIs and options5 performance5 behavior and defaults1 tooling20 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.1 on npm

@op-engineering/op-sqlite 1813 changes

Breaking changes 1

Security 1

  • Fixes a use-after-free in the commit hook callback.

    18.2.4release notes

New APIs and options 3

Performance 1

  • Skips redundant sqlite3_clear_bindings and long long disambiguation on the hot insert path.

    18.1.4release notes

Tooling 1

  • Initial SPM support was added, allowing developers to use SPM with the package.

    18.1.0release notes

Fixes and other changes 6

  • Finalized handles are now preserved.

    18.2.3release notes

  • Transaction commits are now awaited, so callers can rely on commit completion before continuing.

    18.2.3release notes

  • Skips the explicit Kotlin plugin when AGP provides built-in Kotlin.

    18.2.0release notes

  • Unsubscribing a reactive query no longer touches a closed connection.

    18.1.2release notes

  • Fixes the missing Package.swift in the NPM release, so the package includes this file.

    18.1.1release notes

  • Compatibility fixes for 0.87 were added.

    18.1.0release notes

@op-engineering/op-sqlite 176 changes

New APIs and options 2

Performance 1

  • Various performance improvements were made; the notes do not specify which operations are affected.

    17.1.1release notes

Behavior and default changes 1

Fixes and other changes 2

  • Excludes the libsql_experimental and turso_sdk_kit xcframeworks to fix the sqlcipher iOS build.

    17.1.5release notes

  • Fixes web support for Expo web.

    17.1.4release notes

@op-engineering/op-sqlite 167 changes

Breaking changes 1

  • delete no longer takes any parameters, changing how developers call it.

    16.0.0release notes

New APIs and options 3

  • Adds a method to convert strings more efficiently.

    16.2.1release notes

  • The key-value Storage class can now close its database.

    16.2.0release notes

  • Exposes sqlite3_interrupt() as db.interrupt().

    16.1.0release notes

Behavior and default changes 1

  • The native implementation now uses the SQLCipher key API.

    16.1.0release notes

Fixes and other changes 2

  • Manual UTF-8 parsing was reverted, changing how UTF-8 parsing is handled.

    16.2.2release notes

  • Native ATTACH/DETACH parameters are now bound.

    16.1.0release notes

@op-engineering/op-sqlite 1521 changes

New APIs and options 5

Performance 3

  • libsql switches to a dylib, reducing disk size.

    15.1.15release notes

  • Tried performance optimizations; the notes do not specify their effects.

    15.1.4release notes

  • Simple result creation is faster.

    15.1.0release notes

Behavior and default changes 3

  • On Android, user-supplied sqliteFlags can override performanceMode defaults.

    15.2.13release notes

  • sqlite-vec is updated to support 16kb pages.

    15.1.15release notes

  • Encryption keys can now be empty.

    15.1.3release notes

Fixes and other changes 10

  • Android now uses SQLITE_STRICT_SUBTYPE=1 to match iOS.

    15.2.14release notes

  • Android now uses SQLITE_THREADSAFE=2 to match iOS.

    15.2.14release notes

  • Fixes incorrect boolean casting on macOS.

    15.2.12release notes

  • Fixes sub array insertion.

    15.2.12release notes

  • Updated sqlitevec signatures; the notes do not specify which signatures changed.

    15.2.1release notes

  • Fixes null Android build config flags.

    15.1.17release notes

  • Fixes a threading performance regression.

    15.1.14release notes

  • Fixes a botched podspec script, which may affect iOS package builds.

    15.1.6release notes

  • Fixes invalidated modules not resolving promises.

    15.1.2release notes

  • Fixes the Android external directory absolute path being null.

    15.1.0release notes