Skip to content

Releases

NotallyXYZ 1.1.5

Choose a tag to compare

@Turtlecute33 Turtlecute33 released this 12 Nov 14:32
4a2ce94

Fixes

Fixes for data loss in sync, stuck sync, crashes and privacy leaks on all platforms. Update all your devices.

  • All apps: at the first sync, a device links a local note to a note on the server only if the type, title, content, checked items and attachments are the same. Before, the macOS, Linux and Windows apps could link two different notes without text (for example a voice memo and a photo note), and the attachments, labels and reminders of one note were lost on all devices. A "(conflict)" copy is not pinned and has no reminders, so a reminder no longer fires two times. If the server has older data than a device, for example after the restore of a backup, the device now stops and shows an error. Before, it skipped new changes without an error. Before a device sends a note, it asks the server which attachments of the note are missing and uploads them again. The apps remove the sync key from the clipboard 60 seconds after you copy it.
  • Android: a damaged record no longer stops sync for good. When you delete a "(conflict)" copy, the images and files of the original note stay. Missing attachments download again. Fields from newer apps are kept. Changes that you make during a sync now sync at once, not after up to 1 hour. The app no longer stops when you reorder, rename or delete a label. When you turn the screen in a new shared note, the app no longer replaces your text or adds the attachments again. After a crash, the app no longer saves an old copy of a closed note. Other apps can no longer open the crash screen, and the crash screen no longer copies the database to shared storage. With the app lock on, Recents shows no screenshot, and notifications hide the note text on the lock screen. Backup and device transfer copy no app data. Tablets and unfolded phones show more columns, and the editor is at most 720 dp wide. In landscape, the navigation bar and the camera cutout no longer cover content. Predictive back works. The list no longer jumps when a sync changes a note. TalkBack reads checklist items and colours. The translations no longer say that recordings never leave the device.
  • macOS: the edits of a note that is open in the editor sync again. Before, a change from another device stopped them until you closed the note. Repeating reminders keep firing while the app is in the background. Notifications show only the note title. Delete Forever asks first. The app decrypts photos, attachments and audio off the main thread, so the grid scrolls smoothly. VoiceOver and the keyboard can open note cards, colours and attachments. The sync key is copied for this Mac only, and screen capture cannot record it.
  • Linux and Windows: a note over 8 MB no longer stops all sync: the app does not save it. After a failed sync, the app tries again after 5 seconds to 5 minutes. Pin and colour in the card menu no longer overwrite an edit from another device. When you close the window or quit, the app waits for the save. If the save fails, the editor stays open. Only images, audio, video, PDF and text files open in another app. You can only save other files. On Windows, saved files get the Mark of the Web. Notifications show only the note title. On Linux, if the key is in a file because no keyring was available, the app moves it to the keyring when one is available.
  • Server: read and write timeouts, so slow requests cannot keep connections open. At most 4 large requests use memory at one time. Deletions are possible when an account is over its quota. If the file of an attachment is lost, devices upload it again. The rate limiter has a size limit and counts IPv6 addresses by /64 network. Requests without a token do not count, so scanners cannot block your devices. The server no longer stores which changes are deletions. Caddy writes no logs. The image is built without emulation.

Update

  • Old and new apps and servers work together, but the new sync rules apply only when all devices have 1.1.5.
  • Android: install NotallyXYZ-android-1.1.5.apk over 1.1.4 (same signing key). The APK is for ARM devices only (arm64-v8a and armeabi-v7a).
  • macOS with Homebrew: brew upgrade --cask notallyxyz.
  • Linux and Windows: built by GitHub Actions and attached a few minutes after the release.
  • Server: ghcr.io/turtlecute33/notallyxyz-server:1.1.5 (also :1.1 and :1). Optional: take the new compose.yaml and Caddyfile from the repository (log rotation, no Caddy logs). Do not restore an old backup over a running server: refer to server/README.md.

Android APK SHA-256: 41dc9113edf663dbe5a91f7a2b9d76d06324fc9e6d532130bc2f170eaaa6dd20
Signing certificate SHA-256: 81776480a2afa0aced066d0b44631dd2159e267d10555a8cefcabd5c9ef9b48b

Check: sha256sum -c SHA256SUMS --ignore-missing. Desktop files: gh attestation verify <file> -R Turtlecute33/NotallyXYZ.

NotallyXYZ 1.1.4

Choose a tag to compare

@Turtlecute33 Turtlecute33 released this 31 Oct 01:18
587b604

Fixes

Fixes for lost edits, sync and backups on all platforms. The Android APK is half the size.

  • Android: the APK is 7.6 MB (was 14.7 MB), because it has only the ARM libraries. The app no longer makes two full backups each time it starts. The app keeps only 3 backup files, so these extra backups deleted the older daily backups. When you turn on backup on save, the app now makes one full backup, so that backup has all attachments. Auto-remove of deleted notes now removes old notes from the bin. Before, it did not remove a note. Sync setup, Disconnect and Delete server data now finish when you turn the screen or close Settings. Before, Create account could lose the sync key, and Delete server data could stop the app. A sync that started now finishes when you close a note or switch apps. Before, Settings could show "Sync failed: JobCancellationException", and the next sync could make a "(conflict)" copy of the note. Screen turns and app switches no longer add more live sync connections. In a checklist, "Paste and new line" now opens the new item below the last pasted line. TalkBack now reads the translated labels of checklist items, not debug names such as "Delete3".
  • macOS: the app saves the open note when you quit, log out or restart. Before, the text that you typed after the last pause was lost. A new note now has the keyboard focus in the title, so you can type at once. Delete Checked Items now asks first. When the same note is open in two windows, an edit from another device is no longer lost when you close one window. A new edit, sleep or a switch to another app no longer stops a sync that runs, so an attachment upload does not start again from zero. The live update no longer sends requests in a fast loop while a sync runs or after a sync fails. It now waits 5 seconds to 5 minutes. If the app cannot read the sync key from the Keychain or cannot open its local data, the setup screen now tells you why. It also tells you that a new connection deletes the changes on this Mac that are not synced yet. Dates show "just now" in place of "in 0 seconds".
  • Linux and Windows: the app saves the open note when you close the window. Before, the text that you typed after the last pause was lost. If the app cannot read the sync key or open its local data, the setup screen now tells you why, with the same warning as on macOS. A connected app no longer shows the setup screen at start by mistake. In confirm dialogs, Cancel now has the focus, so the Enter key cannot empty the bin or delete a note or the server data by accident. In the Reminders dialog, Done now adds the reminder that you filled in. In setup, a second Enter no longer starts a second connection or makes a second account. Cards with the "Fit content" size fit their content again. The note grid keeps its scroll position, and the editor does not reload when you uncheck a list item. The app no longer keeps a global reference to the decrypted notes in the web view.
  • Server: account creation accepts a request body of 64 KiB at most (was 32 MiB). Before, some large requests without a login could use all the memory and stop the server. If the file of a stored attachment is missing, the server now answers 404, not 500. Before, Android sync stopped at that point each time. When the server stops, it now waits up to 10 seconds for the requests that run. At start, it removes the temporary files of uploads that did not finish. Log lines now start with the timestamp.

Update

  • Android: install NotallyXYZ-android-1.1.4.apk over 1.1.3 (same signing key). The APK is for ARM devices only (arm64-v8a and armeabi-v7a). It does not install on x86-only devices, for example Intel emulators and some Chromebooks.
  • macOS with Homebrew: brew upgrade --cask notallyxyz.
  • Linux and Windows: built by GitHub Actions and attached a few minutes after the release.
  • Server: ghcr.io/turtlecute33/notallyxyz-server:1.1.4 (also :1.1 and :1). No change to compose.yaml. The sync protocol and the stored data do not change, so you can update the server and the apps in any order.

Android APK SHA-256: 5ba2bd1095467dfb68fc42a3fe509cae4d36010cc2cb38bf9d793c5cef39fccf
Signing certificate SHA-256: 81776480a2afa0aced066d0b44631dd2159e267d10555a8cefcabd5c9ef9b48b

Check: sha256sum -c SHA256SUMS --ignore-missing. Desktop files: gh attestation verify <file> -R Turtlecute33/NotallyXYZ.

NotallyXYZ 1.1.3

Choose a tag to compare

@Turtlecute33 Turtlecute33 released this 29 Oct 22:57
4982e52

Fixes

Security and robustness fixes for sync on all platforms.

  • All clients: API responses and blob downloads have a size limit (blob downloads larger than 1 GiB are not kept). A blob that is too large for the server stays pending while a note uses it, and the note push continues. Before, on macOS such a blob stopped all note uploads, and on Linux and Windows it was marked as uploaded. Attachment names are counted in UTF-8 bytes.
  • Android: skips an attachment that does not open, so one bad attachment does not stop each sync. After a failed live sync, it waits before it tries again. Reminder loops have a cap and jump over old minute and hour steps, so a reminder with a very old date cannot hang the app.
  • macOS, Linux and Windows: do not save a note body that grows past 393,216 UTF-16 units (the Android limit). Android cuts a longer body, and a later edit on Android could push the cut note to all devices.
  • macOS: shows save errors in the editor and in the status bar. It does not follow redirects and refuses a server URL with a user name or password. It does not apply a label whose id does not match its value, and it repairs a note that does not decode. Risky attachment types (for example .app installers, scripts, .webloc) show in Finder and do not open. Duplicate does not open a copy that was not saved.
  • Server: mem_limit 256m and GOMEMLIMIT 192MiB (was 128m / 96MiB). The key parser also removes carriage returns. server/PROTOCOL.md gives the body limit, the label id rule and the attachment name rule.

Update

  • Android: install NotallyXYZ-android-1.1.3.apk over 1.1.2 (same signing key).
  • macOS with Homebrew: brew upgrade --cask notallyxyz.
  • Linux and Windows: built by GitHub Actions and attached a few minutes after the release.
  • Server: ghcr.io/turtlecute33/notallyxyz-server:1.1.3 (also :1.1 and :1). If you use your own compose.yaml, set mem_limit: 256m and GOMEMLIMIT: 192MiB.

Android APK SHA-256: e485dc92ca0994e94db361a07ab42cf44aea8580cb6fcfe12b685d65e7d507c3
Signing certificate SHA-256: 81776480a2afa0aced066d0b44631dd2159e267d10555a8cefcabd5c9ef9b48b

Check: sha256sum -c SHA256SUMS --ignore-missing. Desktop files: gh attestation verify <file> -R Turtlecute33/NotallyXYZ.

NotallyXYZ 1.1.2

Choose a tag to compare

@Turtlecute33 Turtlecute33 released this 19 Oct 10:30
ced68ff

New

  • Android: paste and new line. A clipboard button in the bar above the keyboard pastes the clipboard as plain text at the cursor, then starts a new line. In a list, it pastes into the current item and opens a new item below it. Useful to collect links one after the other. The button is hidden in read-only mode.

Update

  • Android: install NotallyXYZ-android-1.1.2.apk over 1.1.1 (same signing key).
  • macOS with Homebrew: brew upgrade --cask notallyxyz. No change in the app, only the version number.
  • Linux and Windows: no change; built by GitHub Actions and attached a few minutes after the release.
  • Server: no change; ghcr.io/turtlecute33/notallyxyz-server:1.1.2 is the same as 1.1.1.

Check: sha256sum -c SHA256SUMS --ignore-missing.

NotallyXYZ 1.1.1

Choose a tag to compare

@Turtlecute33 Turtlecute33 released this 12 Oct 14:19
e578868

New

  • Card size (macOS, Linux and Windows): Settings → Notes overview → Card size (Fit content, Small, Medium, Large) sets the smallest height of all cards. It works with the note preview on or off, so cards with only a title no longer end up in uneven sizes. The default, Fit content, keeps the old look.
  • macOS: the app now has a fixed signature. After this update, macOS keeps your approval and the Keychain access for later updates.

Update

  • macOS with Homebrew: brew upgrade --cask notallyxyz. macOS asks once more for approval (System Settings → Privacy & Security → Open Anyway), and possibly for Keychain access to the sync key: click Always Allow. From 1.1.1 on, this is not needed again.
  • Android: install NotallyXYZ-android-1.1.1.apk over 1.1.0 (same signing key).
  • Linux and Windows: built by GitHub Actions and attached a few minutes after the release.
  • Server: no change; ghcr.io/turtlecute33/notallyxyz-server:1.1.1 is the same as 1.1.0.

Check: sha256sum -c SHA256SUMS --ignore-missing.

NotallyXYZ 1.1.0

Choose a tag to compare

@Turtlecute33 Turtlecute33 released this 12 Oct 11:34
466e12e

New

  • Linux and Windows app (desktop/): the same notes, lists, labels, colors, reminders and attachments as the Android and macOS apps, with end-to-end encrypted sync.
    • Windows 10 and 11 x64: NotallyXYZ-windows-x64-1.1.0.exe, a portable app with no installer. It needs WebView2 and has no code signature, so SmartScreen asks once: More info → Run anyway.
    • Debian and Ubuntu 22.04 or later: sudo apt install ./notallyxyz_1.1.0_amd64.deb (or _arm64.deb).
    • Other distributions: NotallyXYZ-linux-<arch>-1.1.0.tar.gz. It needs GTK 3 and WebKitGTK 4.1.
  • Appearance settings on macOS and the desktop app: theme, text size, grid or list, note preview on or off, lines and items in the preview, and labels, images and dates on cards. Android already had these settings.

Security fix: sealed deletions

In 1.0.0 a deletion had no sealed data. The server, or anyone with the access token (for example a proxy that ends TLS), could therefore make all devices delete their notes. In 1.1.0 every deletion carries a sealed tombstone, and the apps apply a deletion only if it opens with the sync key. A change that does not open is ignored, and the device writes its copy to the server again. Details: server/PROTOCOL.md §5–7.

Update the server and all apps together. 1.0.0 apps cannot sync deletions with a 1.1.0 server. A note that a 1.0.0 app deleted, and that a device did not sync before the update, can come back once. No data is lost.

Files

  • Android: NotallyXYZ-android-1.1.0.apk (same signing key as 1.0.0)
  • macOS 26+: NotallyXYZ-macos-1.1.0.dmg
  • Linux and Windows: built by GitHub Actions and attached a few minutes after the release
  • Server: ghcr.io/turtlecute33/notallyxyz-server:1.1 (also :1)

Check: sha256sum -c SHA256SUMS --ignore-missing. Desktop files: gh attestation verify <file> -R Turtlecute33/NotallyXYZ.

NotallyXYZ 1.0.0

Choose a tag to compare

@Turtlecute33 Turtlecute33 released this 12 Oct 09:06
b15e3a2

First release of NotallyXYZ: NotallyX with end-to-end encrypted sync to your own server.

Files

File For
NotallyXYZ-android-1.0.0.apk Android 7+. Installs next to the original NotallyX (package com.notallyxyz).
NotallyXYZ-macos-1.0.0.dmg macOS 26+, Apple Silicon and Intel.
SHA256SUMS Checksums of the files above.
ghcr.io/turtlecute33/notallyxyz-server:1.0.0 Server image, linux/amd64 and linux/arm64 (also :1.0, :latest).

Android signing certificate SHA-256:
81:77:64:80:A2:AF:A0:AC:ED:06:6D:0B:44:63:1D:D2:15:9E:26:7D:10:55:5A:8C:EF:CA:BD:5C:9E:F9:B4:8B

Install

Android: open the APK on the phone. If Android asks, allow your browser or file manager to
install unknown apps.

macOS: the app has no Apple Developer ID signature, so macOS asks for your approval once.

  1. Open the DMG and drag NotallyXYZ to Applications. Do not start it from the DMG or from
    Downloads: macOS then runs a temporary copy, and the app does not show in Spotlight.
  2. Open NotallyXYZ from Applications. macOS shows that it cannot check the app: click Done.
  3. Open System Settings → Privacy & Security, scroll down, click Open Anyway next to
    NotallyXYZ, and confirm with your password or Touch ID.

After that the app opens normally and shows in Spotlight and Launchpad.

Setup

  1. Server: see server/README.md. Set SIGNUP_TOKEN, put it behind HTTPS.
  2. Android: Settings → Sync → Create new account. Keep the sync key in your password manager.
  3. Mac and other devices: Connect with sync key.

To move notes from NotallyX: export a backup in NotallyX and import it in NotallyXYZ.

Not in the macOS app yet: audio recording, widgets.