diff --git a/.zennotes-commit b/.zennotes-commit index a72789a..a32b981 100644 --- a/.zennotes-commit +++ b/.zennotes-commit @@ -1 +1 @@ -3301a29d6564c13df4d85a5acb59789c5fc7e200 +da59c3729057fab3e7556bbe4360305b92313aad diff --git a/android/app/build.gradle b/android/app/build.gradle index 1a3876c..caa96fc 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "md.zennotes" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 18 - versionName "1.1.16" + versionCode 19 + versionName "1.1.17" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/docs/releases/v1.1.17/PLAY_STORE_DESCRIPTION.txt b/docs/releases/v1.1.17/PLAY_STORE_DESCRIPTION.txt new file mode 100644 index 0000000..fd526d1 --- /dev/null +++ b/docs/releases/v1.1.17/PLAY_STORE_DESCRIPTION.txt @@ -0,0 +1,42 @@ +ZenNotes is a local-first markdown notes app for writing, organizing, and connecting ideas without giving up ownership of your files. + +YOUR NOTES, YOUR FILES + +Every note is a plain .md file in a vault you control. Start with private on-device storage or choose any folder through Android's system folder picker. On-device and folder vaults work without an account. + +ZENNOTES CLOUD + +Connect an optional ZenNotes Cloud plan to: +• Sync a vault across ZenNotes desktop, Android, and iPhone +• Sync notes and attachments +• Create manual and automatic daily backups +• Restore a full vault or a single note from a backup +• Publish notes to the web and manage their public links + +Cloud never replaces the free local-first workflow. Use it only when you want hosted sync, backup, or publishing. + +WRITE IN MARKDOWN + +Use a focused editor with headings, lists, tasks, tables, code, links, wikilinks, tags, callouts, footnotes, and frontmatter. A mobile formatting bar keeps common actions close to the keyboard. + +RICH, OFFLINE PREVIEW + +Render KaTeX math, Mermaid diagrams, JSXGraph, function plots, tables, callouts, and more directly on your device. + +ORGANIZE YOUR WAY + +Browse folders and tags, search the full vault, manage tasks, create periodic notes, and work with table databases stored as CSV. + +CAPTURE QUICKLY + +Create a quick note from the app or send text and links to ZenNotes from Android's share sheet. + +ANDROID STORAGE, DONE RIGHT + +The default vault needs no storage permission. The folder option uses Android's Storage Access Framework and a scoped grant to the folder you choose. ZenNotes does not request all-files access. + +PRIVACY BY DEFAULT + +ZenNotes has no advertising or tracking. Local notes stay in the storage you choose. When you enable ZenNotes Cloud, the account identity, connected-device information, and vault content needed for the Cloud features you use are sent to the ZenNotes service. Payment details are handled by Stripe. + +ZenNotes is open source. Your vault remains useful outside the app because it is made of ordinary files. diff --git a/docs/releases/v1.1.17/PLAY_STORE_METADATA.md b/docs/releases/v1.1.17/PLAY_STORE_METADATA.md new file mode 100644 index 0000000..8687c5f --- /dev/null +++ b/docs/releases/v1.1.17/PLAY_STORE_METADATA.md @@ -0,0 +1,41 @@ +# Play Console metadata: ZenNotes 1.1.17 + +| Field | Value | Limit | +| --- | --- | --- | +| App name | ZenNotes: Markdown Notes | 30 | +| Short description | see `SHORT_DESCRIPTION.txt` (unchanged) | 80 | +| Full description | see `PLAY_STORE_DESCRIPTION.txt` (unchanged) | 4000 | +| Release notes | see `WHATS_NEW.md` (under 500 chars) | 500 | +| Category | Productivity | n/a | +| Application ID | md.zennotes | n/a | +| Version | 1.1.17 (versionCode 19) | n/a | +| Contact email | adib@lumarylabs.com | n/a | +| Website | https://zennotes.org | n/a | +| Privacy policy URL | https://zennotes.org/privacy | n/a | +| Ads | Contains no ads | n/a | +| Price | Free app; optional external SaaS subscription | n/a | + +## Data safety + +Unchanged. No new permissions, no new collection. Comment authorship is a +name stored in the note's own comment file inside the vault; saved filters +are a device preference. + +## Release checks + +- Native version: 1.1.17; versionCode: 19 (bump committed with the 2.46.0 + pin). Capacitor 8.5 / SDK 36 / minSdk 24 / AGP 8.13 / Gradle 8.14.5. + Native changes: none on this branch. +- Source: branch `release/1.1.17`. Commits: the pin move and bump, and this + pack. No shell changes. +- Build is pinned to upstream `da59c372` (the 2.46.0 tag commit), up from + `3301a29` (2.45.0) in 1.1.16. Between the pins app-core gains comment + threads with authors and replies, the @ menu calendar, saved Tasks + filters, the folder-based Kanban board, and two math fixes; the bridge + contract gains optional comment fields (`author`, `parentId`) and the + `kanbanFolderRoot` view setting. +- Verified 2026-09-08 at the pin: `npm run typecheck` clean against + app-core 2.46.0; `npm test`; `npm run build` production bundle. Not + exercised on an emulator for this pin release. +- Matching ports: iOS ZenNotes/zennotesios `release/1.9.8` (build 19); + desktop ZenNotes/zennotes 2.46.0. diff --git a/docs/releases/v1.1.17/PLAY_STORE_REVIEW_NOTES.md b/docs/releases/v1.1.17/PLAY_STORE_REVIEW_NOTES.md new file mode 100644 index 0000000..9396591 --- /dev/null +++ b/docs/releases/v1.1.17/PLAY_STORE_REVIEW_NOTES.md @@ -0,0 +1,38 @@ +# Play review and Data safety notes: ZenNotes 1.1.16 + +Version 1.1.16 updates the shared ZenNotes app core from 2.44.0 to 2.45.0 +and ports the iPhone shell's 1.9.7 editing and gesture fixes to Android. No +new permissions, no new data collection, no manifest permission changes, +no native code changes, and no change to the Data safety answers. + +## What changed + +- Editor input: the note editor no longer disables the keyboard's + autocorrect, suggestions, and sentence capitalization for the note body + (an HTML attribute change on the editor's content element). The system + keyboard behaves as it does in any text field; the app itself performs + no text processing and sends nothing. +- Editor toolbar: the Bullet, Checkbox, and Heading buttons insert their + marker on an empty line; the caret is kept above the toolbar that docks + over the keyboard. +- Note lists: every note row (Home, Quick Notes, Tags, Archive, Trash) + answers long-press (an options sheet), swipe left (Archive / Delete, or + Restore / Delete on archived and trashed notes), and swipe right (pin). + These are the actions the app already offered elsewhere; Delete moves a + note to the app's trash folder, and deleting from Trash asks for + confirmation first. +- Navigation: a new Settings → Appearance → Start screen preference lets the + user open the app on Home instead of the last note (stored on the device + only, mirrored to app preferences like the existing layout and gesture + settings). Home no longer reverts to the Tasks view after a vault + rescan. +- App-core 2.45 fixes: arrow-key navigation in the editor's completion + menus, and a self-hosted vault behind a proxy without WebSockets keeps + refreshing over plain HTTP. Editor and sync behavior only. + +## Data safety + +Unchanged. The app collects no data by default; the optional ZenNotes Cloud +account and any user-configured self-hosted server work exactly as +previously declared. Local and folder vaults continue to work without an +account, and no storage permission is requested. diff --git a/docs/releases/v1.1.17/PROMOTIONAL_TEXT.txt b/docs/releases/v1.1.17/PROMOTIONAL_TEXT.txt new file mode 100644 index 0000000..5b2963c --- /dev/null +++ b/docs/releases/v1.1.17/PROMOTIONAL_TEXT.txt @@ -0,0 +1 @@ +App core 2.46: comment threads with names, a calendar in the @ menu, saved Tasks filters, and a Kanban board with one column per folder. \ No newline at end of file diff --git a/docs/releases/v1.1.17/RELEASE_NOTES.md b/docs/releases/v1.1.17/RELEASE_NOTES.md new file mode 100644 index 0000000..c687012 --- /dev/null +++ b/docs/releases/v1.1.17/RELEASE_NOTES.md @@ -0,0 +1,31 @@ +# ZenNotes for Android 1.1.17: app core 2.46 + +A pin release, in step with iPhone 1.9.8. The shell is unchanged; the app +core moves from 2.45.0 to 2.46.0, and five of its ten changes reach the +phone. + +## What changes on the phone + +- **Comment threads with names.** A reply files under the comment it + answers and every entry shows who wrote it. An assistant connected over + MCP on your desktop can answer in the same threads; its replies arrive on + the phone through your synced vault, signed with its name. +- **Pick any date from the @ menu.** The list ends with Date…, which opens + a calendar; Today, Yesterday, Tomorrow and Now stay one tap away. +- **Saved Tasks filters.** Name a filter once and recall it from the chips + under the Tasks header. +- **The Kanban Folder board** gives every note folder its own column, or + the children of one folder you name (kanban_folder_root). +- **Math.** A $$ block inside a callout renders in both views, and Typst + formulas match KaTeX's size with square-root bars in the text color. + +Not on the phone: the desktop-only keymap changes (Unbind, ignored keys), +the CLI fix and the remote-template routes, which need a desktop or a +ZenNotes server. + +## Under the hood + +Shell-only release: the web bundle changes, the native side does not. +Pinned to upstream `da59c372`, the 2.46.0 tag commit. + +No new permissions, services, or data collection. diff --git a/docs/releases/v1.1.17/SHORT_DESCRIPTION.txt b/docs/releases/v1.1.17/SHORT_DESCRIPTION.txt new file mode 100644 index 0000000..91adbf0 --- /dev/null +++ b/docs/releases/v1.1.17/SHORT_DESCRIPTION.txt @@ -0,0 +1 @@ +Local-first markdown notes with optional sync, backups, and publishing. diff --git a/docs/releases/v1.1.17/SOCIAL.md b/docs/releases/v1.1.17/SOCIAL.md new file mode 100644 index 0000000..9da7f28 --- /dev/null +++ b/docs/releases/v1.1.17/SOCIAL.md @@ -0,0 +1,7 @@ +# Social copy: ZenNotes Android 1.1.17 + +## Short + +ZenNotes for Android 1.1.17 brings app core 2.46 to the phone: comment +threads with names, a calendar in the @ menu, saved Tasks filters, and a +Kanban board with one column per folder. diff --git a/docs/releases/v1.1.17/WHATS_NEW.md b/docs/releases/v1.1.17/WHATS_NEW.md new file mode 100644 index 0000000..7c97460 --- /dev/null +++ b/docs/releases/v1.1.17/WHATS_NEW.md @@ -0,0 +1,9 @@ +App core 2.46 on Android. + +• Comment threads with names; a reply files under the comment it answers +• Date… in the @ menu opens a calendar +• Saved Tasks filters as chips under the Tasks header +• Kanban Folder board: one column per note folder, or one folder's children +• Display math inside callouts; Typst formulas at KaTeX's size + +No new permissions. diff --git a/docs/releases/v1.1.17/twitter-post.md b/docs/releases/v1.1.17/twitter-post.md new file mode 100644 index 0000000..dc1616d --- /dev/null +++ b/docs/releases/v1.1.17/twitter-post.md @@ -0,0 +1,5 @@ +ZenNotes for Android 1.1.17 is out. + +App core 2.46 on the phone: comment threads with names, a calendar in the @ menu, saved Tasks filters as chips, and a Kanban board with one column per folder. Math inside callouts renders, and Typst formulas match KaTeX's size. + +App core 2.45 → 2.46. diff --git a/package-lock.json b/package-lock.json index c5c5396..65b9b5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "zennotes-android", - "version": "1.1.16", + "version": "1.1.17", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "zennotes-android", - "version": "1.1.16", + "version": "1.1.17", "dependencies": { "@aparajita/capacitor-secure-storage": "^8.0.0", "@capacitor/android": "^8.5.1", diff --git a/package.json b/package.json index 88d656d..909de4a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "zennotes-android", "private": true, - "version": "1.1.16", + "version": "1.1.17", "type": "module", "description": "ZenNotes for Android — Capacitor shell over the ZenNotes app core", "homepage": "https://zennotes.org", diff --git a/src/bridge/mobile-bridge.ts b/src/bridge/mobile-bridge.ts index 3eed9ef..23c41fa 100644 --- a/src/bridge/mobile-bridge.ts +++ b/src/bridge/mobile-bridge.ts @@ -130,7 +130,7 @@ import { import { folderForRelativePath, posixNormalize, sanitizeNoteTitle } from './vault-core' import { isPhoneViewport } from '../viewport' -let appVersion = '1.1.16' +let appVersion = '1.1.17' export async function loadNativeAppVersion(): Promise { try {