Skip to content
Added
- Enhanced notes: custom blocks (tabs, timeline, split-view) now have ↑/↓
buttons in their header so they can be reordered without drag-and-drop.
- Backup: “Export (plain)” button downloads a plain
.tar archive even when the
server is configured with a public key, making it easy to get an unencrypted
backup without managing RSA keys. The existing “Export backup” button
continues to produce an encrypted archive when a key is configured.
- Backup:
GET /api/backup/export?plain=true query param added to the export
endpoint to bypass encryption on demand.
Fixed
- Sidenav fullscreen toggle: the toggle button was throwing
NotFoundError: The object can not be found here when opening sidepanels
where the close button is nested inside a flex container (e.g. C4 diagram
sidenav). Fixed by inserting relative to closeBtn.parentElement instead of
the header element directly.
- Task sidenav:
_populateSidenavSelects is not a function error thrown when
the project field changed. The method was renamed to populateSelects in a
previous refactor but the event listener was not updated.
- Task sidenav: the “Time Entries” section was always hidden because the sidenav
never showed it or loaded data when opening a task. The section is now
revealed automatically for existing tasks, time entries are loaded from the
API, and
App.editingTask is kept in sync so saving and deleting entries
works correctly.
- Fuzzy autocomplete: clicking an empty project/category field showed no
suggestions. The dropdown now opens on focus regardless of whether the field
has a value, showing all available options immediately.