DATE:
AUTHOR:
PowerSync Product Team
Flutter SDK

Flutter Client SDK: v1.9.3

DATE:
AUTHOR: PowerSync Product Team

We are pleased to announce the release of version 1.9.3 of the PowerSync Flutter client SDK.

See the full changelog below.

Have any questions or feedback? Chat with us and the PowerSync community on Discord.

Changelog

v1.9.3

  • [FIXED] Updated powersync-sqlite-core to v0.3.6 which fixes an issue with remove operations resulting in dangling rows in some cases. See the PR for more details.

v1.9.2

v1.9.1

  • Readme updates to reflect Flutter Web Beta release.

v1.9.0

  • [ADDED] Web: Use a sync worker for web that offloads the task of synchronizing databases to a separate worker, allowing it to be coordinated across tabs even when the database itself is not in a shared worker.

v1.8.9

  • [FIXED] issue where CRUD uploads were not triggered when the SDK reconnected to the PowerSync service after being offline.

v1.8.8

  • [FIXED] A malformed xcframework issue which caused an error when deploying a macOS app to TestFlight or the AppStore.

v1.8.7

  • [FIXED] Validation on duplicate table names.

v1.8.6

  • [IMPROVED] Updated sqlite_async to v0.9.0, which supports the latest version of package:web and package:sqlite3_web.

v1.8.5

  • [IMPROVED] Updated powersync-sqlite-core to v0.3.0, which significantly improves the performance of incremental sync (see details).

v1.8.4

  • [IMPROVED] Added a warning if connector uploadData functions don't process CRUD items completely.

v1.8.3

  • [FIXED] Pass the maxReaders parameter to PowerSyncDatabase.withFactory() to support overriding the default.

v1.8.2

  • [ADDED] refreshSchema(), allowing queries and watch calls to work against updated schemas.

v1.8.1

  • [FIXED] An issue introduced in version 1.8.0 with by the outdated powersync_flutter_libs dependency.

v1.8.0

Note: Some features in this version require journeyapps/powersync-service v0.5.0 or later when self-hosting.

This version updates powersync-sqlite-core to version 0.2.1 and introduces:

  • [ADDED] Custom User-Agent header and client_id parameter to sync requests.

  • [ADDED] Emit update notifications for watch queries on disconnectAndClear().

  • [IMPROVED] Sync optimizations for MOVE and REMOVE operations. See details in this PR.

  • [IMPROVED]SyncStatus.lastSyncedAt now returns a persisted timestamp of the last synced at time (previously it reset after a restart).

  • [IMPROVED] Validate that the powersync-sqlite-core version number is in a compatible range of ^0.2.0.

  • [IMPROVED] Always cast target_op (write checkpoints) to ensure it's an integer.

v1.7.0

  • [IMPROVED] Added a check for the maximum number of columns being exceeded on Table creation.

v1.6.7

  • [FIXED] An issue where apps didn't launch while offline on Windows and Linux. This was achieved by prebundling core binaries.

v1.6.5-6

  • Failed releases. Do not use - use v1.6.7.

v1.6.4

  • [FIXED] hasSynced status now resets correctly after disconnectAndClear has been called.

v.1.6.3

  • [FIXED] Internal: Downgrade the JS dependency and migrate it to devDependencies to resolve a FlutterFlow build error.

v.1.6.2

  • [IMPROVED] For Flutter Web, downloading the required sqlite3.wasm and powersync_db.worker.js files is no longer a manual step. Simply run dart run powersync:setup_web. See the package README for additional details.

v.1.6.1

  • [FIXED] Reintroduced waitForFirstSync.

v.1.6.0

  • [IMPROVED] Flutter Web support. See here for the full announcement.

v1.5.5

  • [FIXED] An issue where hasSynced is cleared when offline.

v1.5.4

  • [FIXED] watch() query parameter triggerOnTables to recognize PowerSync views (ps_).

  • [IMPROVED] Upgraded dependency sqlite_async to version 0.8.1, which adds Navigator locks for more robust multiple tab support.

v1.5.3

v1.5.2

  • [IMPROVED] waitForFirstSync() now iterates through theStream and no longer uses a Future.

  • [FIXED] Sync connection not immediately closed when calling db.disconnect().

v1.5.1

  • [ADDED] hasSynced property to SyncStatus. This becomes true when the client completed at least one full sync.

  • [ADDED] waitForFirstSync which will resolve once the first full sync has completed.

v1.5.0

  • [IMPROVED] Version and dependency upgrades

    • Upgraded sqlite_async to version 0.7.0 and the minimum Dart SDK version to 3.4.0, which fixes the Invalid argument(s): argument value for 'return_value' is null error when closing the database connection.

    • Internal: Updates all the Database types to a CommonDatabase type.

v1.4.2

  • [FIXED] Bad state: Future already completed error when calling disconnect() / disconnectAndClear() multiple times.

v1.4.1

  • Updated powersync_flutter_libs dependency to v0.1.0:

    • [IMPROVED] Updated powersync-sqlite-core on Android to version 0.1.7 which lowers the minSDK to API 21.

v1.4.0

  • [IMPROVED]
    Introduces the use of the powersync-sqlite-core native extension. This is our common Rust core which means all PowerSync SDKs now use the same core logic for PowerSync functionality, improving maintainability and support.

  • [INTERNAL] Added a new package dependency on powersync_flutter_libs for loading the common Rust extension (powersync-sqlite-core).

v1.3.1

v1.3.0

  • [ADDED] crudThrottleTime option to arguments when running PowerSyncDatabase.connect to set the throttle time for CRUD operations.

v1.2.2

  • [IMPROVED] Deprecated the DevConnector and DevCredentials classes. These will be removed in the next major release, at which point it will be a breaking change.

v1.2.1

  • [FIXED] Indexes incorrectly being dropped after the first run.

  • [FIXED] viewName override causing view "..." already exists errors after the first run.

v1.2.0

  • [IMPROVED] The default log output and errors to better assist in debugging.

  • Breaking changes:

    • PowerSyncCredentials constructor is no longer const, and the endpoint URL is validated in the constructor.

    • Different error and exception classes are now used by the library, including CredentialsException, SyncResponseException and PowerSyncProtocolException, instead of more generic AssertionError and HttpException.

  • Other changes:

    • The library now logs to the console in debug builds by default. To get the old behavior, use logger: attachedLogger in the PowerSyncDatabase constructor.

    • Log messages have been improved to better explain the sync process and errors.

v1.1.1

  • [FIXED] An error occasionally occurring when calling powersync.connect() right when opening the database.

  • [IMPROVED] Update getting started docs.

v1.1.0

  • [IMPROVED] Expand SyncStatus to include connected, downloading, and uploading status, and the last errors.

  • [FIXED] Delete operations rejected by the server not being reverted locally.

  • [FIXED] SyncStatus.connected to be updated when calling PowerSyncDatabase.disconnect().

  • [FIXED] Network error messages only containing a single character in some cases.

  • [IMPROVED] Update sqlite_async dependency:

    • Supports catching errors in transactions and continuing the transaction.

    • Add tx.closed and db/tx.getAutoCommit()

  • [IMPROVED] Update uuid dependency:

    • Now uses CryptoRNG from uuid package now that the performance improvements are upstream.

  • Note: This version requires Dart ^3.2.0 / Flutter ^3.16.0.

v1.0.0

  • Use stable version range.

v0.4.2

  • [ADDED] Support for overriding view names, which allows having separate tables for a synced mode and a local-only mode, and moving data between the two.

    • The use case is a user first using the app completely offline (without registering an account) and then potentially at a later stage connecting an account and syncing data, without the upload queue continuously growing in size before that.

    • Includes support for preserving local-only tables when clearing the database: await db.disconnectAndClear(clearLocal: false)

  • [ADDED] Enable SQLite recursive triggers, which allows full-text search functionality.

  • [IMPROVED] Validation of the schema definition now includes checks for invalid characters in names, duplicate columns and indexes, and invalid indexes.

  • [IMPROVED] HTTP error messages now include more details about the error if available.

v0.4.1

  • [IMPROVED] License the entire library under Apache 2.0.

  • [IMPROVED] Update the uuid dependency.

v0.4.0

  • [IMPROVED] Some parameters to PowerSyncCredentials are now optional.

  • [IMPROVED] Update dependencies.

Powered by LaunchNotes