- DATE:
- AUTHOR:
- PowerSync Product Team
Flutter Client SDK: v1.9.3
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
[FIXED] Web: Automatically flush IndexedDB storage to address durability issues.
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 ofpackage:web
andpackage: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 toPowerSyncDatabase.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 andclient_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 afterdisconnectAndClear
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
andpowersync_db.worker.js
files is no longer a manual step. Simply rundart 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 parametertriggerOnTables
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
[ADDED] Support for client parameters to further filter data via sync rules.
v1.5.2
[IMPROVED]
waitForFirstSync()
now iterates through theStream
and no longer uses aFuture
.[FIXED] Sync connection not immediately closed when calling
db.disconnect()
.
v1.5.1
[ADDED]
hasSynced
property toSyncStatus
. This becomestrue
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 theInvalid 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 callingdisconnect()
/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 thepowersync-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
[FIXED] "Checksum mismatch" issue when calling
PowerSyncDatabase.connect
multiple times.
v1.3.0
[ADDED]
crudThrottleTime
option to arguments when runningPowerSyncDatabase.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 causingview "..." 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 longerconst
, and theendpoint
URL is validated in the constructor.Different error and exception classes are now used by the library, including
CredentialsException
,SyncResponseException
andPowerSyncProtocolException
, instead of more genericAssertionError
andHttpException
.
Other changes:
The library now logs to the console in debug builds by default. To get the old behavior, use
logger: attachedLogger
in thePowerSyncDatabase
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 includeconnected
,downloading
, anduploading
status, and the last errors.[FIXED] Delete operations rejected by the server not being reverted locally.
[FIXED]
SyncStatus.connected
to be updated when callingPowerSyncDatabase.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
anddb/tx.getAutoCommit()
[IMPROVED] Update
uuid
dependency:Now uses
CryptoRNG
fromuuid
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.