Notesnook v3.0.18 fixes 40+ bugs via 131 commits. Improved search query handling, support for configuring server urls from login screen, importing nested notebooks/folders from other apps, and more.
Previous releases:
v3.0.17
fixes 4 bugs via 11 commits. Fixed zero notebooks after adding 20+ notebooks on a Basic account, fixed multiple updates running simultaneously in desktop app, and fixed tags not assigned to web clips.v3.0.15
&v3.0.16
fix a critical bug causing errors on sync & other actions.v3.0.14
fixes 30 bugs via 124 commits. Added full offline mode, backups with attachments included, ability to change server URLs (self hosting yay!), and fixed a lot of bugs.
Improved search query handling
Notesnook now has a query transformer that converts your query into something that SQLite FTS5 can easily parse. This means searches should now be massively improved across the board:
1. Search query are now AND by default instead of OR
Previously, if you searched for hello world
, it would return notes that contain either hello
or world
. Now, it will only return notes that contain both hello
and world
. This is the expected behavior on almost every search engine allowing you to narrow down search results as you type instead of widening them.
2. Use capitalized AND/OR/NOT for more complex searches
For example, you can search for hello world NOT hello earth
to find notes that contain hello world
but not hello earth
. Similarly, if you want to find notes that contain either hello world
or hello earth
, you can search for hello world OR hello earth
.
3. Diacritics are now ignored when searching
Diacritics are accents or marks added to letters. For example, é
in café
. Previously, if you searched for cafe
, it wouldn't return notes that contain café
. Now, it will return notes that contain either cafe
or café
. Cool, right?
Add support for configuring server URLs from login screen
You can now configure the app to use your own server URLs right from the login/signup screen.
The login screen also informs you about which instance you are using (the official one or your own). This is so you can avoid accidentally creating an account on the wrong instance.
Add support for importing nested notebooks/folders from other apps
You can now migrate into Notesnook while preserving 100% of your notes organization. This includes when you are importing markdown or text files in nested folders.
Add delete key shortcut for deleting items
If you have selected multiple items (notes, tags etc.) you can quickly delete them by pressing the delete key. Easy peasy.
Add ctrl+k shortcut for inserting a new link
One of the most highly requested keyboard shortcuts, you can now press Ctrl/Cmd + k
to open the Insert link
popup. This works automatically when you have some text selected and want to insert a link into it.
Add new dot separated (e.g. DD.MM.YYYY) date formats
We have added a couple of new dot separated date formats like DD.MM.YYYY
. These formats are used in various parts of the world (Russia, China etc.). To change the date format, go into Settings > Behaviour.
Delete app data on uninstall (Windows only)
When you uninstall the desktop app on Windows, it will now delete all app data. This includes your notes, settings, and other data. This is to ensure that your data is not left behind on your computer.
This only works on Windows which supports uninstall hooks.
Fix custom server URLs having no effect in production
We enabled self hosting and ability to change server URLs in v3.0.17 but, accidentally, forgot to enable it in production. This has been fixed now.
Do not zip note without attachments on export
Exporting a note that has no attachments will no longer create a ZIP archive of a single file. Hopefully, this will improve many users' workflows.
Fix attachment downloads stuck on error
The app will now automatically skip over any errors that occur during bulk downloads of attachments. The errors will still be logged and shown on the screen but instead of getting stuck, the download process will continue downloading the next file.
Add integrity checks in various places for attachments
We have added integrity checks in various places like encryption, uploading to proactively detect corrupted uploads so you can take action. These checks mainly verify the file size before and after encryption & upload to make sure there aren't any missing chunks.
Show progress when rechecking attachments in bulk
While it was possible to recheck attachments in bulk, there was no progress indicator. This has been fixed now. You'll see the progress in the status bar while the rechecks are taking place in the background.
Fix note title can be set to empty
As much as we'd like to support untitled notes, titles are a fundamental part of Notesnook and are used in various critical places. This bug accidentally enabled untitled notes which caused issues like empty filenames on export & publishing. This has been fixed now and affected notes should automatically get a new title when you update them.
Fix invalid filename when saving recovery key
When you save your recovery key, the app creates a file named using your email address for easier identification. Due to this bug, the file was getting saved as [Object]-key.txt
instead of [email protected]
. This has been fixed now.
Fix Error in input stream
crash in web/desktop app
This usually occurred after waking your PC/laptop from sleep while the app was running, or when after recovering from an Internet connection disruption. The error itself is harmless but it was causing the app to crash and display the "Something went wrong" screen.
Exit a link inside the editor by pressing space
A massive QoL improvement for link junkies. If you insert a lot of links, it's extremely annoying when after inserting a link everything after it also becomes part of the link text. It was almost impossible to exit the link. We have fixed that in this release!
Just press the Space
key and it'll automatically exit the link and you can continue typing without breaking a sweat.
Press Enter in link popup to insert link
Another QoL improvement. This was such a basic expectation that I was almost embarrassed that someone created an issue for it. But, it's fixed now. You can press Enter
to insert the link instead of clicking the Insert
button.
Fix found 0 byte sized chunk
error on attaching files in Firefox
We use OPFS (Origin Private File System) for caching attachments in the browser which supports synchronous and very fast file system reads & writes. As expected, all browsers don't work the same way though. On Chromium based browsers, it is okay to hold a read-only
handle to a file and write to it at the same time. Not so much on Firefox.
The underlying error looked something like this: No modification allowed
which meant, in order words, that we didn't have the permission to write or read to the file.
In v3.0.17 I added a fast path for getting file sizes used for integrity checks. The code looked something like this:
async function readFileSize(
directory: FileSystemDirectoryHandle,
name: string
) {
const file = await directory.getFileHandle(name);
const handle = await file.createSyncAccessHandle({ mode: 'read-only' });
return handle.getSize();
}
Notice anything wrong? I wasn't closing the handle after reading the file size. Oops! The fix was simple:
const size = handle.getSize();
handle.close();
return size;
Tested on Firefox and it worked! 🎉
Fix error when downloading the same attachment on mobile
The error looked something like this: Error: “3289114832a786d7_temp” couldn't be moved to “.cache” because an item with the same name already exists.
Apparently, the app wasn't overwriting the downloaded attachment causing the error. This has been fixed now.
Fix cannot jump to headings from TOC after copy pasting content
Table of Contents in Notesnook works based on data-block-id
in each heading. This block-id
is randomly generated for every node (except a few). However, not when it already exists which was the case when you copy pasted the same heading multiple times inside the note. When you tried to jump to the newly pasted headings, it would take you directly to the first one because the data-block-id
for all headings was the same.
This has been fixed now. The editor automatically removes and regenerates the block-id
for each node when you paste anything.
Fix Cannot destructure property 'type' of 'e[0]' as it is undefined.
crash when searching
This was occurring because we weren't filtering out search results that had no note against them. This has been fixed now.
Fix issues with code block toggling
Thanks to @seanwynwins for fixing this in #6435.
Fix locking notes with empty content causing weird behavior
When you tried to lock an empty note, it'd leave the whole note in an awkward state where the note said, "I am locked" but since it had no content, the app said "You are not locked". The problem worsened when you tried to get out of this state because now you couldn't unlock the note. Well done.
This was fixed by creating a dummy content (out of thin air) when you try to lock an empty note.
Fix text rendering in bug report confirmation dialog
Thanks to @Parthiv-M for fixing this in #6573.
Fix app crash after phone reboot on Android 14
This was caused because of the new changes made by Google in Android 14 that requires all apps that use Foreground Services to declare it in the manifest. Otherwise, the app would just crash.
Fix app crash when app removed from Recents
This was caused because we were using MMKV for storing session data (i.e. which note you have opened) when you minimized the app. Initializing MMKV in the background was not super reliable so we have moved to using something more "native" for stuff like this.
Note: This fix was released in v3.0.17.
Improved attachments manager on mobile app
The attachments manager now opens in full screen instead of in a small sheet at the bottom. We have also added a new "Errors" filter to quickly see attachments that have errors. The attachment manager also now shows in progress downloads at the top in a nice UI (especially useful when you turn on full offline mode and your attachments are downloading).
Improved toast notifications UI on mobile
The toast UI notifications has been improved (thanks to @ammarahm-ed) and all toasts are now shown on the bottom for better reachability.
Other changes
This release fixes a lot of long standing issues with the app. Here are some of the other changes:
- Upgraded Electron to v30 (we stay a little behind to avoid any unintended issues).
- Lots of under the hood refactoring and improvements.
- Fixed status bar flicker on app launch on Android
- Fixed markdown shortcuts toggle resetting on app launch
Read the full commit history here.