Blog
Privacy for everyone
LoginSign up
Notesnook

Notesnook v3.0.18

Abdullah AttaSeptember 25, 2024

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.

Change server urls from login screen
Change server urls from login 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.

Before
After

 

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.

The dialog now looks like this.
The dialog now looks like this. Nice eh?

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.

New toast UI
New toast UI

Other changes

This release fixes a lot of long standing issues with the app. Here are some of the other changes:

  1. Upgraded Electron to v30 (we stay a little behind to avoid any unintended issues).
  2. Lots of under the hood refactoring and improvements.
  3. Fixed status bar flicker on app launch on Android
  4. Fixed markdown shortcuts toggle resetting on app launch

Read the full commit history here.

#notesnook#releases
Abdullah Atta
Abdullah AttaLead developer of Notesnook
NEXT POST Notesnook v3.0.17