Skip to content

Release 1.1.15: Cloud conflict resolution on Android (app core 2.44.0) - #46

Merged
adibhanna merged 6 commits into
mainfrom
release/1.1.15
Sep 4, 2026
Merged

adibhanna merged 6 commits into
mainfrom
release/1.1.15

Conversation

@adibhanna

Copy link
Copy Markdown
Contributor

ZenNotes for Android 1.1.15 (versionCode 17): Cloud conflicts become clear choices

The app core moves from 2.38.0 to 2.44.0 (pinned to the final v2.44.0 tag, e56f9ec), and the phone gets the same conflict resolver as desktop (ZenNotes/zennotes#683).

What ships

  • Cloud conflict resolution on Android (e08fb09): the five bridge operations desktop and iOS use (inspect, draft, resolve, plus the first-sync pair) routed through the shared coordinator. Safe edits merge three-way on their own; a real overlap shows 1 file needs review · Review now in the editor status bar and in Settings → Cloud, with This device / Other device / Last synced and an editable combined note. First sync with no shared history shows both complete notes. No more numbered (cloud conflict) files.
  • App core 2.39 → 2.44 fixes that apply on a phone: sync-incomplete names the files, multi-save catch-up no longer parks conflict copies, attachments link the same way on every device (#699), wikilink picker keeps section/alias (#686), marker hop over auto-paired quotes (#685), auto-close Markdown stays out of code (#718), trash icon deletes for good (#712), pasted video keeps the keyboard.
  • Harper stays off the phone (946029e): harper.js and its 15.6 MB wasm resolve to an empty module (the bridge never reports supportsHarper, so app-core hides the setting); the vault-settings normalizer now carries the harper dictionary/ignored-lints block through a save from this device so sync from the phone no longer erases it.
  • Toolchain (f0d2d60): Vite 8.2.2, @vitejs/plugin-react 6.1.1, import.meta.dirname, npm override pinning xcodeuuid 11.1.1. Native side unchanged (Capacitor 8.5 / SDK 36 / minSdk 24).
  • Version bump 1.1.15 / versionCode 17 (3ba0e00, 36bc381).

Verification

  • npm run typecheck clean and npm test 35/35 on e56f9ec; bundleRelease OK, merged manifest vc 17 / 1.1.15; AAB sha256 df164c00a0c17380911ef7a146083f80f5598a6f696328298763fefdcb7ee10e.
  • Emulator E2E (API 35 AVD) against the desktop repo's local Cloud fixture: sign-in via Chrome → zennotes://auth; overlapping edit → review prompt in the status bar and the Cloud queue → Keep both changes → combined note saved locally and pushed, prompt cleared, no conflict copy; first-sync conflict → both versions shown → Replace with other device's version (inline confirm) → local replaced; no Harper entry in Settings → Editor; harper block in vault.json survives a phone settings save.
  • Not individually verified on touch: picture resize by dragging (#684), left out of the release notes.

Release docs: docs/releases/v1.1.15/ (local). Same release ships as ZenNotes for iOS 1.9.6.

https://claude.ai/code/session_01CWgtKY9sdF4JREoyCzNGtP

ZenNotes 2.44.0 adds Harper, an offline grammar checker, on desktop and
web. Phones do not run it: the system keyboard already checks spelling,
and the mobile bridge never reports the new supportsHarper capability,
so app-core hides the setting, the commands and the editor extension
here. Two things still had to change with the source pin.

The vault settings normalizer now keeps the harper field (the vault
dictionary and ignored suggestions, written by desktop and web), cleaned
by the same shared normalizer the other runtimes use; before, a save
from this device would have erased what the user taught it. And a Vite
stub resolves harper.js and its wasm binary to an empty module, so the
bundle never carries Harper's 15.6 MB. harper.js is a dev dependency
only, for the types the shared editor code references.

Claude-Session: https://claude.ai/code/session_015HNdWonTE8g6dPY2SkdsRS
The 2.44.0 tag moved once after the release cut, to a commit that only
fixes the desktop repo's Docker build and its Windows test run; the pin
follows so the shell builds from exactly what the tag names. The 1.1.15
version bump (versionCode 17) that this release branch is named for was
staged with the earlier pin and never committed; it lands here.

Claude-Session: https://claude.ai/code/session_015HNdWonTE8g6dPY2SkdsRS
The tag moved a second time for a Windows-only test fix in the desktop
repo; nothing the shell bundles changed.

Claude-Session: https://claude.ai/code/session_015HNdWonTE8g6dPY2SkdsRS
The desktop tag moved once more for a release-workflow-only change (the
macOS signing keychain fix); the shell bundles nothing from it.

Claude-Session: https://claude.ai/code/session_015HNdWonTE8g6dPY2SkdsRS
@adibhanna
adibhanna merged commit bbb7e59 into main Sep 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant