Changelog
Source:
CHANGELOG.md— auto-mirrored on each deploy.
3.0.1 (2026-07-01)
Bug Fixes
3.0.0 (2026-07-01)
⚠ BREAKING CHANGES
- strip unused sqldelight plugin + runtime deps (3.0.0 cleanup) (#61)
- Sqkon factories on JVM and Android no longer accept com.eygraber.sqldelight.androidx.driver.AndroidxSqliteDatabaseType; use com.mercury.sqkon.db.SqkonDatabaseType (Memory / FileBacked) instead. EntityQueries and MetadataQueries constructors are now internal — instances are created exclusively via the Sqkon(…) factories.
- KeyValueStorage no longer implements app.cash.sqldelight.Transacter, and the transaction lambda receiver is SqkonTransactionScope instead of SQLDelight’s TransactionCallbacks. transaction { } / transactionWithResult { } calls are source-compatible. Update code only if you: (1) held a store as a Transacter (
val t: Transacter = store) — call store.transaction { } directly; (2) imported app.cash.sqldelight.TransactionCallbacks as the block receiver type — drop the import, SqkonTransactionScope is inferred; (3) used Transacter members beyond afterCommit/afterRollback/rollback/nested transaction — rework against SqkonTransactionScope; (4) relied on transactionWithResult { rollback() } returning a value — it now throws SqkonRollbackException. See docs/guides/transactions.md#upgrading-from-1x.
Features
- arch: internal SqkonDriver abstraction (MOB-3289) (#55) (eca9a34)
- direct androidx.sqlite driver, drop SQLDelight SqlDriver (MOB-3293) (#60) (fe88ce8)
- hand-roll entity and metadata data classes (MOB-3290) (#57) (2c9afeb)
- hide sqldelight transacter behind SqkonTransactionScope (MOB-3292) (#59) (0255188)
Bug Fixes
- alias SqlException to androidx.sqlite.SQLiteException so catches fire (#82) (#109) (10e2a80)
- bind Float query values as reals instead of truncating to Long (#72) (#98) (96cba5d)
- consistent paging load() error handling — return Error, rethrow Cancellation (#81) (#108) (e2fa920)
- count(where=…) over-counts list/multi-match predicates (#68) (#91) (4b295b1)
- escape LIKE wildcards + match json_tree key quoting in fullkey predicates (#69) (#93) (e6715ba)
- expose public-API deps as
apiso consumers get them transitively (#78) (#104) (b9a55b7) - guard ListenerIdentityMap with a Mutex for concurrent Flow collectors (#76) (#102) (ac6b0b7)
- make schema migration stepwise/exhaustive + reject downgrades (#77) (#103) (30e51b0)
- paging: defer read-tracking past Invalid check (#119) + apply expiresAfter to offset count (#122) (8b50d91)
- parenthesize expiry predicate so it can’t leak rows across stores (#67) (#90) (700c696)
- report keyset paging item counts for stable scroll position (#117) (28dd31f)
- set PRAGMA busy_timeout on every connection (WAL contention hardening) (#75) (#101) (30fbd65)
- verify SQL on statement-cache hit to guard against identifier collisions (#74) (#100) (686276f)
Performance
Dependencies
Documentation
- clarify offset count-cache invalidation comment (#121) (939b1cd)
- correct keyset paging cost — O(n) ordered scan per page, not O(log n) (#80) (#106) (8dc3c5e)
- correct write-threading claim — writes block the caller thread (#70) (#96) (e60e018)
- document the enum @SerialName query gap accurately + drop dead code (#73) (#99) (8e6a7a8)
- fix non-compiling README/KDoc snippets + stale install version (#79) (#105) (3a1867c)
- keyset first-page cost is O(n) too, not O(pageSize) (#80 follow-up) (#107) (7ba6761)
Miscellaneous
2.1.0 (2026-05-13)
Features
Bug Fixes
2.0.0 (2026-05-12)
⚠ BREAKING CHANGES
- OrderBy
changed from a data class to a sealed class. Code that read OrderBy.path or used data-class operations (copy, componentN) must migrate to the new JsonPathOrderBy / CaseOrderBy subclasses.
Features
Bug Fixes
- docs: repair feature cards, swap in real logo, add CI smoke check (#46) (546bb29)
- enable pretty permalinks so child pages resolve on GitHub Pages (#43) (8f9b312)
- keyset paging refresh key returns null on fresh source (#51) (d29e325)
- Not predicate inverts per-entity (was broken by json_tree row explosion) (#48) (79b6e66)
Dependencies
Documentation
- GitHub Pages site (Jekyll + Just the Docs + Dokka v2) (#42) (0ecfdf5)
- polish home page, restructure Querying, fix mermaid, link Why Sqkon cards (#45) (ff6b043)
1.3.2 (2026-04-28)
Bug Fixes
1.3.1 (2026-04-15)
Bug Fixes
- trigger Maven Central deploy from release-please workflow (945bb8b)