Repository navigation
Version 1.1.40, versionCode 43, October 14, 2026, following 1.1.39 (42). PR #114 carries 93f43e3; the signed bundle zennotes-1.1.40-vc43.aab (31,635,642 bytes, SHA-256 6bd276ffcda8039dc27f7d7fd16939a6827f6fcd91d3f99d20c005f7bdcd569c) was built from 93f43e3, whose tree 8ef1f02c equals that of tag v1.1.40 (196e6c3).
What changes on the phone
- Your last edit reaches your other devices, even when you leave right away. Leaving ZenNotes now finishes the ZenNotes Cloud sync first: it saves the note you are writing and sends what is waiting within a few seconds, instead of stopping a sync that was running and leaving the edit until the next time you open the app. Settings → Cloud → Sync in the background (on by default) turns it off. Android pauses the app soon after you leave, so changes from your other devices still arrive when you open it again (#113).
- The ZenNotes 2.70.0 core. Convert to database offers the heading right above a table as the database's name in a long note too; in a note opened a moment ago it could offer an earlier heading (core 2.69.1). With a hardware keyboard, Ctrl+P inside Search Notes moves the selection up instead of closing the palette (ZenNotes/zennotes#938).
Under the hood
Core core-2.70.0-core.hbed9639c9831ecf7 was built by CI from ZenNotes/zennotes 9e50b245 (the v2.70.0 release commit, run 38624169889); core:adopt checked SHA-256, SHA-512, packed versions and clean-source provenance. Core 2.69.1 (#112) reached main first, so this release carries both. The rest of ZenNotes 2.70.0 needs a desktop (the Quick capture window, the MCP server's task status, the bundled zn 0.8.0, What's New); no new bridge method, palette command or long-press entry.
Source: branch release/1.1.40 from main b8ec9bb (with #112 and #113), two commits: f79327d (core 2.70.0) and 93f43e3 (1.1.40, versionCode 43).
A 15-minute WorkManager job that would have synced while the app stayed closed was built and tested, then removed before merging: once Android freezes the app, the WebView renderer that runs the sync is a separate frozen process the job cannot wake. The release therefore adds no permission and no manifest change.
Validation
- Typecheck and 287 JavaScript tests passed;
npm run upstream(boundaries and typecheck), the high-severity audit gate,npm run buildandnpm run syncpassed;testDebugUnitTest(21 Java tests),lintDebugandassembleDebugpassed;bundleReleasewas signed with the upload key on JDK 21, and the bundle readsmd.zennotes43 / 1.1.40, min 24, target 36. CI on #114 passed, including the emulator launch job. - The final sync on leaving the app was tested before #113 merged, on throwaway emulators against a ZenNotes Cloud test vault: a note written just before leaving reached the Cloud 1.6 seconds after the app left the screen, and a second device downloaded the exact text.
Play Console submission
1.1.39 (42) was live. Production, Create new release: the AAB was dropped in by Adib and processed as 43 (1.1.40): API 24+, target SDK 36; no devices lost or added (12,367 phones, 6,800 tablets); 3.2 MB update; only the usual "no deobfuscation file" warning. Release notes inside <en-US> tags, rollout 100%, saved, and sent for review on October 14 at about 15:09 CDT (20:09 UTC). Managed publishing is off, so Google publishes it when review passes; at the time of writing it shows "Changes in review".
PR #114 merged as 196e6c3 (merge tree equals 8ef1f02c, the tree of 93f43e3, the AAB's source); lightweight tag v1.1.40. This release carries Play's signed universal APK from App bundle explorer as zennotes-1.1.40-universal.apk: 31,887,821 bytes, SHA-256 69385f52fe7820b531c182db7a6c52b2c5b2e4d5357728247a59a32a64651f11, md.zennotes 43 / 1.1.40, min 24 / target 36, signer 9f1af3a4… as since 1.1.22, the same three permissions as 1.1.39, no CHECK_LICENSE or pairip.
How to test locally
npm ci && npm run build && npx cap sync android, then openandroid/in Android Studio and run on a device or emulator.- Sign in to ZenNotes Cloud and link a vault, then open Settings → Cloud: Sync in the background shows On.
- Type a line in a note and switch to another app right away. Before: the line reached your other devices only after you opened ZenNotes on the phone again. After: it arrives within a few seconds. With the setting Off, it waits until you reopen the app.