Skip to content

v0.15.0

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Jul 23:14

SQLiteNow 0.15.0

  • Breaking changes for oversqlite (data storage format has been changed and not compatible with pre-v0.15 versions). Existing synchronized databases cannot be upgraded in place. Mixed-version operation, hash fallback, and migration of existing sync* state are unsupported. Deploy compatible server and client versions together, then recreate client sync databases - discarding pending outboxes, checkpoints, retry state, and offline changes.

  • oversqlite: Snapshots are bounded by rows and bytes. Requests now send max_rows and max_bytes; session and chunk byte_count values are mandatory. Snapshot staging, decoding, and final application are bounded, validated, atomic, and retry capacity failures through a dedicated policy.

  • oversqlite: Recovery is now durable and restart-safe. Ordinary pruned or ahead-of-server checkpoints are resumed automatically by sync() and pullToStable().

  • oversqlite: Generated Kotlin sync helpers changed signature. buildOversqliteConfig() and newOversqliteClient() gained snapshot row/byte budgets, apply budgets, retry policies, and a sync-table override. Positional calls—especially those passing verboseLogs—may stop compiling; regenerate and use named arguments.

  • oversqlite: Expanded native Swift support and Oversqlite parity. Native Swift clients now support the new Oversqlite v1 protocol, bounded snapshots, structured sync and retry configuration, custom conflict resolvers, independent upload/download controls, protocol-specific errors, improved numeric and Boolean type handling, and broader real-server conformance coverage.

  • oversqlite: Dart configuration is no longer const. OversqliteConfig now validates snapshot limits at runtime and includes OversqliteSnapshotCapacityRetryPolicy. Remove const from manually constructed configurations.

  • Swift sync construction is source-breaking. Flat schema/limit/logging arguments were replaced by SQLiteNowSyncConfig; makeSyncClient is now throwing, so callers must add try.

  • Build infrastructure moved forward. The repository now uses Kotlin 2.4.10, AGP 9.3.0, and Gradle 9.5.0.