Fix snapshot-stream reset coercion so first non-empty chunk actually applies reset during full uploads.
Broadcast changed(t-now) after finished snapshot upload so connected peers learn the new snapshot epoch immediately.
Handle remote tx rollback on clients (hello/changed with remote-tx < local-tx) by rebasing local tx/checksum cursor and requesting pull from the new baseline.
Harden ws broadcast in non-WS test contexts and add regression tests for reset-on-first-chunk and finished-upload changed broadcast.
Verified with: cli-e2e sync-multi-batch-operations (passes).
* chore(deps): upgrade Clojure version to 1.12.4 across multiple dependency files
* chore: bump shadow-cljs to 3.3.6
* chore: bump org.clojure/clojurescript to 1.12.134
* chore(deps): upgrade Clojure version to 1.12.4 in workflow files
* chore(deps): upgrade Java version to 21 in workflow files
* chore(deps): upgrade Node.js version to 24 in workflow files
* chore(deps): upgrade Node.js version to 24 in Dockerfile
* feat(updater): migrate electron-forge to electron-builder
* fix wrong android app version
* fix workflow
* feat(dependency-upgrade): add max-update-interval option for dependency audits
* chore(deps): upgrade electron-builder and electron-updater
* fix: update manual verification instructions for Electron shim cache
* chore: update shadow-cljs version to 3.4.4 across all dependencies
* chore: upgrade electron version to 41.2.1
* chore: update metosin/malli dependency to latest
* chore: upgrade cider-nrepl version to 0.59.0 in dependencies
* chore: upgrade clj-kondo version to 2026.04.15 and fix warning
* chore: move Electron windows build configuration from yml to ci
* chore: update Electron signing configuration to extend from base config
* fix: replace icon file for NSIS compatibility
* chore: resolve metosin/malli version conflicts
* chore: upgrade jdk to 21 in e2e workflow
---------
Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
- Update confirmations so that tag and property are clearly explained as
permanently deleted
- Deleted page/delete-confirmation non-en translations since the text
has changed