This maintenance release fixes query, live-query, bulk-update, and database lifecycle edge cases; improves production bundler compatibility; makes Dexie Cloud sync retries recover faster; and restores compatibility with legacy Dexie exports.
Related Package Releases
| Package | Version |
|---|---|
| dexie | 4.4.7 |
| dexie-cloud-addon | 4.4.16 |
| dexie-react-hooks | 4.4.0 (no change) |
| y-dexie | 4.4.0 (no change) |
| dexie-export-import | 4.4.2 |
| dexie-cloud-common | 1.0.60 |
Bug Fixes
dexie@4.4.7
- Fix empty query branches in unions — Empty anyOf() and reversed between() clauses no longer suppress matches from other branches in an or() query; a standalone empty clause still returns no results. (#2319)
- Fix live-query change detection and cancellation — Mutations for valid falsy primary keys such as 0 and the empty string now trigger matching live queries, and late errors from superseded runs are ignored. (#2324, #2353)
- Harden bulkUpdate() — Changes to nested or compound primary keys now throw ConstraintError, and bulkUpdate() works when called before the database has opened. (#2320, #2334)
- Fix database lifecycle and opening edge cases — hasBeenClosed() now reports the closed state correctly; Safari-like environments without a global indexedDB get a clear missing-API error, while an explicitly supplied indexedDB implementation can still be opened. (#2340, #2342)
- Improve production bundle compatibility — Package exports now resolve to the unminified build in production, avoiding downstream double-minification issues. The minified bundle remains in the package, but production exports may now select the unminified distribution. (#2344)
dexie-cloud-addon@4.4.16
- Wake local sync retries on reconnect or foregrounding — A scheduled retry can resume promptly when connectivity returns or the app becomes visible, rather than waiting through the remaining backoff; retry behavior avoids overlapping requests and clears stale worker state on close. (#2351)
dexie-export-import@4.4.2
- Import legacy hidden-primary-key exports — Legacy exports that encode the schema as the string "null" are normalized and imported instead of being rejected as a primary-key mismatch. (#2329)
Contributors
Release coordination: @dfahlander. Thanks to @buildwithakhila, @chatman-media, @claude, @cpruijsen, @liz709, @morgan-coded, @ShangYJQ, @tarann26, @theblang, and @zzoraemon043 for code, documentation, sample-app, and package changes. Automated dependency updates were contributed by @dependabot[bot].