**The database will be migrated. Sync protocol has been updated, which means all instances in sync cluster must be updated as well.**
The main feature of this release is configurable left launchbar. You can open it in Main Menu -> Configure Launchbar. There you can drag & drop launchers between visible and available, create new launchers etc. To make this happen, a lot of foundational work has been done on the "hidden subtree" which will be leveraged in the future.
Other changes:
* Options and Backend log are not dialogs anymore, they are converted to "content widgets"
* fix reopening the very last tab, closes 3397
* mobile frontend now contains the launchbar as well and has access to more functionality (e.g. Edit button in read-only notes)
* deajan/fix-powershell-exec-policy 3406
* label update should trigger parent resort, fixes 3366
* upgrades - ckeditor 35.4.0, mermaid 9.3.0, excalidraw 0.13.0
* added watchdog for CKEditor to recover from crashes, fixes 3227
* quick search shows search errors 3221
* improve compatibility with common js, 3436
* create new `runOnNoteContentChange` event, 3436
* allow access to share api root note only if there's share index, 3434
* edit button grows and shakes on the first display 2483
* apply color label also on note map, 3443
* added a "script executor" ribbon widget
* fix old migration to avoid unique constraints problems, closes 3447
* allow configuration of log, backup etc. directories per env variables, closes 3446
* fix cursor in the textarea, closes 3459
* fix ZIP import without metadata
* fix sorting after cloning/moving notes into sorted parent, closes 3453
* create new sortNotes backend API method and deprecate old sortNotesByTitle
* fix missing doc resources for launchers, closes 3455
* fix assuming that trilium is exposed on the root path, closes 3452
* fix context menu in browser for launchers, closes 3454
* export root note fix, 2346
* fix inclusion of the image into the correct position in ENEX import, closes 3468
* search hit with exact note title match gets a strong score boost
* make utils.normalize null-safe, 3469
* Evernote import - use pageUrl attribute for enex source-url by contributor
* ETAPI method to create note revision, 3509
* update content should parse out links 3509
* ancestorDepth should be treated as string in ETAPI, fixes 3510
* TOC fixes
* expand regex to account for more attributes in en-media tag in ENEX import, fixes 3503
* sender route should respect inbox, 3502
* note content renderer should load reference link titles, fixes 3499
* fix creation date in ENEX import for mac files, closes 3496
* fix order by note content size, closes 3488
* don't use alert, 3483 Nriver
Script API changes
Frontend API's `addButtonToToolbar()` has been deprecated. The API still works - it creates a launcher, but it may be misplaced. The launcher order can be configured via GUI (Main Menu -> Configure Launchbar). The same place should be used to create new launchers.