Skip to content

Releases: TraceApps/notetrace

v1.1.0-dev03

v1.1.0-dev03 Pre-release
Pre-release

Choose a tag to compare

@thebigjoe1 thebigjoe1 released this 29 Sep 21:25

Third dev pre-release of the 1.1.0 minor

A Support page in Settings, two Settings layout fixes, and security updates.

Added

  • Settings has a Support page, next to About: Ko-fi and GitHub Sponsors, plus free ways to help (star the repo, report a bug, translate). It replaces the support row that used to sit in About.

Changed

  • The in-app updater reuses an update it already downloaded. Coming back to Updates goes straight to installing instead of downloading the whole APK again, and the button says Install. Older downloads are cleared so they stop piling up on the phone.
  • About links to the TraceApps family instead of naming the other apps.

Fixed

  • Settings pages line up with the section list on desktop and foldables. Every page started 12px below the list beside it.
  • The Settings section list keeps its place on desktop and foldables. Every click in it scrolled the list back to Profile.

Security

  • multer bumped 2.3.0 to 2.4.0, closes GHSA-3pph-fpjx-jg34 (moderate: an upload cut off at just the wrong moment could leave its file behind on disk). Uploads and backup restore require signing in.
  • nodemailer bumped 9.1.1 to 10.0.12 on the server, closes GHSA-6vj9-mwq6-2f5v (moderate: separate mail transports could share one TLS server name). Removed from the web app's own dependencies, where nothing used it.
  • npm audit reports 0 vulnerabilities for the app and the server.

NoteTrace is free and always will be. Support on Ko-fi goes toward a Mac and an iPhone so my apps can come to Apple devices, and GitHub Sponsors helps with the monthly costs.

v1.1.0-dev02

v1.1.0-dev02 Pre-release
Pre-release

Choose a tag to compare

@thebigjoe1 thebigjoe1 released this 27 Sep 16:25

A dev pre-release of the 1.1.0 minor. A first pass at foldables, and search that no longer cares about accents.

Upgrade note. Two APKs as before: the phone app and the watch app. Install whichever you use; they pair themselves the next time you open NoteTrace on the phone. Pull the new server image too, or search will keep caring about accents on anything your server answers.

Added

  • Preliminary foldable support. Half open like a book, the crease becomes a divider rather than something content sits across:
    • Notes are dealt into columns either side of the fold.
    • Settings puts its section list on one side and the section itself on the other.
    • Menus and pickers slide clear instead of being split by it.
    • Trace takes the panel beside the crease. In laptop posture it sits on the flat half, leaving your notes readable on the half standing up.
    • Drawing keeps the whole screen, since an opened foldable is a bigger sheet to draw on.
    • Settings, Diagnostics reports what the hinge is doing, so you can tell whether your phone reports one at all.

Fixed

  • Accents no longer hide what you were looking for. Searching notes already ignored them; labels, the [[link]] picker and Settings search did not, so a label called "Mañana" or a note titled "Répétition" went missing unless you typed the accent. They all ignore accents now, the match is highlighted in the result, and local mode on Android answers the same as the server. Text without accents matches exactly as before.
  • A connection problem says what kind it was. When the app cannot reach your server, the diagnostic log now records the kind of failure and how long it waited. A timeout, an address that would not resolve, a refused connection and a rejected certificate all used to read "Failed to fetch".

Security

  • No dependency changes. npm audit --omit=dev reports 0 vulnerabilities for the app and the server.

NoteTrace is free and always will be. The iOS fund is for a Mac and an iPhone, so the Trace apps can run properly on iPhone.

v1.1.0-dev01

v1.1.0-dev01 Pre-release
Pre-release

Choose a tag to compare

@thebigjoe1 thebigjoe1 released this 24 Sep 22:59

A dev pre-release of the 1.1.0 minor. Pictures, settings and your profile now work without a connection, a checklist can be cleared in one tap either way, and update checks are off until you ask for them.

Upgrade note. Two APKs as before: the phone app and the watch app. Install whichever you use; they pair themselves the next time you open NoteTrace on the phone. Pull the new server image too, since the update check and the fonts are now served by your instance.

Added

  • Clear a checklist in one tap. The checked-items bar now offers Uncheck All and Delete Checked, each with a single undo. Both work offline, and Uncheck All is on the watch too. (#7, requested by @bonsairobo)
  • Pictures work offline. A picture or drawing added with no connection saves with the note and becomes a file on your server when the queue goes up. One too large to keep says so. Other files still need a connection.
  • Settings changed offline are kept and go up with everything else, rather than being applied here and forgotten.
  • Your profile works offline, picture included, the same as in NutriTrace, LiftTrace and CookTrace.

Fixed

  • The updater can no longer offer a phone the watch build. Both APKs ship in one release under the same package id, and the updater took whichever was listed first. It now picks the phone's build by name.
  • "A New Version Is Available" on the web says what it means, and Reload works. It used the Android wording, and the button could do nothing at all. It now says "Update Ready", reloads either way, and a tab left open all day notices new versions again. Same fix in all four Trace apps.
  • The Trace button no longer covers sheets and dialogs. It stays above the page and below anything opened on top of it. Same fix as NutriTrace #233.
  • Something deleted while online stays deleted when the connection goes. A stale copy from before sign-in could bring it back.
  • Photos kept offline survive the trip. They are scaled so your server accepts them, they keep their transparency, and a format this browser can only read (an iPhone's HEIC, say) is converted rather than refused in silence. One that cannot be read at all says it needs a connection.
  • Adding a photo offline works in the installed app. The code for it was fetched on demand, which is the one moment there is nothing to fetch from.
  • The copy this browser keeps has a ceiling, and if storage runs out, your unsent work is kept and the copy makes way for it.
  • Nothing waiting is lost at sign-out. Every way of signing out sends the queue first and asks before discarding it, and the queue is no longer stranded under a name nothing reads after an offline reload.
  • Your profile saves to your account rather than to local settings when you save it before the app has finished checking your server.
  • Something your server refuses says why in Settings, Diagnostics, instead of only flashing past.

Security

  • Update checks are off until you turn them on, and your server does the asking. Every browser and phone used to ask GitHub directly every 4 hours. Setup now asks, and skipping the question leaves checks off, so a new install contacts nothing on its own. Nothing about you or your instance is sent either way. Existing installs keep checking as before, and UPDATE_CHECK=off overrides the setting. Reported on r/selfhosted.
  • Fonts are served by your own instance, so Google no longer sees the address of everyone who opens the app. They are still split by script, so a page downloads only the alphabets it needs. Medium-weight text also renders correctly in the Android app for the first time. Reported on r/selfhosted.
  • No dependency changes. npm audit --omit=dev reports 0 vulnerabilities for the app and the server.

NoteTrace is free and always will be. The iOS fund is for a Mac and an iPhone, so the Trace apps can run properly on iPhone.

v1.0.1

Choose a tag to compare

@thebigjoe1 thebigjoe1 released this 20 Sep 14:29
d88517b

A fix-only release. One editor fix for everyone, three for the Android app.

Fixed

  • A label no longer sits on top of a long note's text. In a note long enough to scroll, the text ran past the bottom of its box, so the labels underneath it (and a reminder or share chip) were drawn over the middle of the note. Reported by @bonsairobo in #8.
  • Reordering tasks no longer refreshes the page. In the Android app connected to a server, dragging a reorder handle downward on the Tasks page while it was scrolled to the top was treated as pull-to-refresh and synced. The same applied to checklist and label handles, the voice note scrubber and the list width resizer. Dragging those no longer counts as a pull; pulling down anywhere else still refreshes as before.
  • The Android back button closes what's open first. Back only closed a drawing, a file or an image before going back a page, so with a note, sheet, dialog or menu open it left the page underneath and took the layer with it. Back now closes the newest layer first, one at a time, the same as its own close button: an open note saves and closes, a menu or picker closes, a dialog closes as Cancel, and the camera stops. In a drawing, back first closes the palette, then clears the selection, then finishes, like Escape, and it no longer leaves the note while a drawing is still saving. The sync merge questions still need an answer, and the app lock can't be dismissed, so back leaves them open. It also closes the slide-out sidebar if that's showing. With nothing open, back goes back a page and then offers to exit, as before.
  • Sheets stay below the status bar. The shared sheet used across the app and the keyboard shortcuts list. The Android app draws under the status bar, and these were capped only at a share of the screen, so one that filled its cap (a tall one, or any with the keyboard up) could start under the status bar. They now always stop below it and scroll their content instead. Nothing changes where there's room, or on a computer. Same fix as NutriTrace #228.

Security

  • No dependency changes. npm audit --omit=dev reports 0 vulnerabilities for the app and the server.

NoteTrace is free and always will be. The iOS fund is raising $1,300 toward a Mac and an iPhone, so the Trace apps can run properly on iPhone.

v1.0.0

Choose a tag to compare

@thebigjoe1 thebigjoe1 released this 19 Sep 09:57
16aa6c8

First stable release. NoteTrace is a self-hosted home for everyday notes: notes, checklists and reminders in a card grid, on your own server, with a web app that works offline, an Android app, and a Wear OS app. It's built to replace Google Keep, the everyday half of Evernote, Apple Notes and the like, and it takes your notes in and gives them back out in open formats.

  • Notes and checklists. A card grid with pins, colors, nested labels in the order you choose, archive, trash, version history, and full-text search across text, checklist items, voice transcripts and text in images. See Notes, checklists and labels.
  • A real editor. Markdown underneath, formatting by tap or keyboard, checkboxes inside text notes, links between notes, templates, and print or save as PDF. See the feature tour.
  • Reminders and Tasks. One-off or repeating reminders that keep their local time, exact alarms on Android, and a Tasks view that gathers every item with a due date. See Reminders.
  • Offline everywhere. The installed web app keeps working with no connection and syncs when you're back; the Android app runs fully offline or synced with your server; so does the watch. See Android.
  • Wear OS. Your notes, checklists, shopping list and reminders on the watch, with voice capture that turns "tomorrow at nine" into a reminder, a tile, a watch face complication, and full offline use. It pairs itself from the phone and talks to your server directly. See Wear OS.
  • Voice notes and drawings. Record with the screen off, read a transcript you can tap to jump to that moment, and draw on any note with a pen, marker or highlighter. See Voice notes.
  • Sharing. Share a note or list with other people on your server, with view or edit access, while pins, labels and reminders stay your own. See Sharing.
  • Bring your notes with you. Import from Google Keep, Evernote, Memos, Blinko and Markdown vaults like Obsidian and Joplin (Apple Notes and OneNote through Markdown), and export everything as Markdown with images. See Import and export.
  • Trace, the optional AI assistant. Tidy up or summarise a note, turn one into a checklist, or ask Trace to find and change notes for you, with Claude, OpenAI, Gemini or any OpenAI-compatible model. See Trace in NoteTrace.
  • Part of the Trace family. Your CookTrace shopping list inside NoteTrace, home screen widgets, single sign-on, scheduled backups, webhooks, and an API and MCP endpoint for your own tools. See the Settings reference.

Security

  • npm audit --omit=dev reports 0 vulnerabilities for the app and the server. Tokens for linked apps are stored encrypted and never reach the browser, outbound links and webhooks go through an SSRF guard, and uploads are stored under their real type and served with a sandboxing policy.

NoteTrace is free and always will be. The iOS fund is raising $1,300 toward a Mac and an iPhone, so the Trace apps can run properly on iPhone.

v1.0.0-dev02

v1.0.0-dev02 Pre-release
Pre-release

Choose a tag to compare

@thebigjoe1 thebigjoe1 released this 18 Sep 11:47

Second dev pre-release of the 1.0.0 major. Adds the Wear OS app: your notes, checklists, the CookTrace shopping list and reminders on the wrist, with voice capture, a tile, a watch face complication and full offline use. Also fixes the Trace panel running off the top of the screen in phone browsers.

Upgrade note. This release has two APKs: the phone app and, new, the watch app. Install both; the watch pairs itself the next time you open NoteTrace on the phone. Pull the new server image as well, since the watch relies on a new, lighter notes endpoint. The watch still works against an older server, just with bigger downloads and no note previews.

Added

  • NoteTrace on Wear OS. A watch app for Wear OS 3 and up, tested on a Pixel Watch 4. It talks to your server directly over Wi-Fi or LTE, so it keeps working with the phone in another room. Your notes and checklists are listed with pinned ones first, the CookTrace shopping list is grouped by aisle, and upcoming reminders are shown soonest first. Tap a checklist to tick items off, or a note to read it. Ticked items drop to the bottom under a heading that counts them, dimmed and struck through, so you can see what you just did and undo a mis-tap. Every screen scrolls with the crown, and ticking gives a small buzz.
  • No typing to set it up. The watch pairs itself when you sign in on the phone: the phone hands over your server address and a token through the standard Wear data connection. Signing out on the phone removes them from the watch. If the token later expires or is revoked, the watch asks you to pair again instead of showing errors, and keeps anything it had queued.
  • Speak to the watch. Speak a note from the main screen, add an item from inside a checklist, or add something to buy from the shopping list. The watch's own speech recognition does the work, so nothing is recorded or uploaded, and it uses whatever language the watch is set to. Say a time and it becomes the reminder instead of part of the text: "call the plumber tomorrow at nine" makes a note reading "call the plumber", due at nine tomorrow. It understands the everyday phrasings (in twenty minutes, tonight, tomorrow at nine, Friday at eight, at 6:30 pm) and reads a time already past today as tomorrow. This is worked out on the watch, so it works without a connection.
  • Reminders on the wrist. A Reminders row appears when anything is scheduled, with times such as "Today 6:30 PM", "Tomorrow" or "Overdue" in red, and repeating ones marked. Tap a reminder to open its note, or tick it to mark it done. When a reminder fires, the phone's notification appears on the watch with Done and Snooze.
  • A tile and a watch face complication. The tile, one swipe from the watch face, shows what's due or what's left to buy. The complication puts the same count on the watch face itself ("3 Due", "7 Buy"). Both use the watch's saved copy, so they cost no battery or data and still show something useful offline.
  • Works without a connection. The watch keeps the last lists it loaded, so it opens and works in a shop with no signal. Ticks, spoken notes, added items and finished reminders wait in a queue and are sent when the connection returns. Each action confirms itself ("Note saved", "Reminder set", "Added") and says when it's waiting for a connection. Ticking the same item twice sends once; saying two items adds two.
  • Choose which notes go on the watch. On the phone, Settings, Notes, On Your Watch. The default is Everything, so nothing changes unless you pick. Choose "Only what I pick" and each note and checklist gets a switch. Clearing every pick shows everything again, so the watch can't end up empty by accident. The setting syncs across your devices, and reminders and the shopping list are never hidden.
  • A lighter notes list for small screens. GET /api/notes?slim=1 returns titles, checklist items, a short plain-text preview of each text note, and reminder times, without bodies, attachments or link previews. Add watch=1 to limit it to the notes picked for the watch. The watch app uses this endpoint, and it suits any small client of your own.

Changed

  • Reminder notifications show icons on Done and Snooze. Without icons, a watch shows the notification's buttons as empty circles.

Fixed

  • The Trace panel fits the screen in phone browsers. It was sized in vh, which on a phone browser measures the viewport without the address bar and toolbar, so the panel's header was pushed off the top. It now uses the visible viewport. The same fix applies to the Send to CookTrace popover, image viewer, Trace actions, version history, image picker and setup wizard. The Android app was not affected.

Security

  • No new dependencies in the web app or server. npm audit --omit=dev reports 0 vulnerabilities for both. The watch app adds its own Android libraries (OkHttp, Wear Compose, Tiles, Wear Complications and Play services Wearable). It stores its server address and token in the watch's private app storage, never logs the token, and deletes both when you sign out on the phone.

Watch testers: the watch app has had one wrist on it so far. If something feels slow or awkward, or a phrase you say doesn't set the time you meant, open an issue with the watch model and, for a spoken time, what you said.

NoteTrace is free and always will be. The iOS fund is raising $1,300 toward a Mac and an iPhone, so the Trace apps can run properly on iPhone.

v1.0.0-dev01

v1.0.0-dev01 Pre-release
Pre-release

Choose a tag to compare

@thebigjoe1 thebigjoe1 released this 18 Sep 00:11

First dev pre-release of NoteTrace, toward v1.0.0.

NoteTrace is a self-hosted alternative to Google Keep: notes, checklists, reminders, and voice notes on your own server, with a PWA and an Android app. See the README for what it does, and the documentation for the detail.

Install: the ghcr.io/traceapps/notetrace:dev Docker image, or the signed APK below.

This is an early build. Please report anything that looks wrong on the issue tracker.

NoteTrace is free and always will be. The iOS fund is raising $1,300 toward a Mac and an iPhone, so the Trace apps can run properly on iPhone.