New Features
- 🧱 Block side menu — the drag handle now opens a fuller menu to change a block's type or colour, duplicate it with ⌘D, move it to another note, delete it, or leave a comment.
- 🪟 Minimize to tray — turn on Window Behavior in Settings → General and closing the window keeps Memry running in the system tray.
- ✅ Obsidian task import — checklist lines written with the Obsidian Tasks plugin now come in as real Memry tasks.
- 🔤 System font picker — the Font Family setting lists every font installed on your computer, each shown in its own typeface with a search box, replacing the old custom font field.
- 🎨 Canvas links in Related — you can now link canvases from a task's Related picker.
- 📐 Collapsible sidebar navigation — the top navigation block in the sidebar can be folded away.
Improvements
- 🚀 Much faster new-device setup — your vault opens in seconds instead of minutes while notes and attachments download in the background.
- 🔡 Font size slider — interface font size is now a pixel slider you drag instead of three fixed sizes, and your current size carries over.
- ⚡ Faster first sync — seeding a vault no longer pays a round trip per note.
- 🔔 Quieter updates — release notes now open in a background tab instead of stealing focus.
Fixes
- 🛡️ Windows updates can't destroy your install — a failed or interrupted update now restores the previous version automatically, and updates no longer apply while Windows is shutting down.
- 📄 Your markdown stays yours — notes written in another app are no longer rewritten, keeping bullets, emphasis, headings, rules, line breaks, reference links, and code fences exactly as their author wrote them.
- 🔄 Sync no longer stalls on big backlogs — when the server refuses a large batch the client retries with smaller ones until it drains.
- 💬 Quotes survive saving — multi-paragraph and nested blockquotes are written back intact instead of being flattened.
- 🗂️ Toggles keep their shape — blank lines around a collapsible section are preserved, hand-written
<details>blocks are left alone, and fold state is remembered. - 📅 One day boundary everywhere — the Journal day panel, search date filters, the Home board and the calendar widget now agree on which day an event belongs to, using your local time.
- 🕐 Live calendar widget — the Home calendar stays current in a background tab and counts only the items it actually shows.
- 🖼️ Images in exports — exported PDFs show embedded images and exported HTML keeps them after you move or send the file.
- ↔️ Alignment sticks — centre, right and justified text stays put when you leave a note and restart the app.
- ⌨️ Multi-block indenting — Tab and Shift+Tab indent or outdent every block in a selection, and one undo reverts the whole step.
- 📊 Table columns remember their width — a dragged column width now survives reopening the note, and inline content inside table cells stays intact.
- 🚫 Invalid task dates refused — an imported line with a date the calendar does not have is left as written and a message names the refused date.
- ☑️ Honest checkboxes — an imported checklist line with no matching task stays a plain checkbox instead of pretending to be an uneditable task.
- 🔢 Correct project task counts — subtasks count under their parent, tasks with a deleted status appear in the project's first status, and delete dialogs no longer push the confirm button off screen.
- 🏷️ Property fixes — you can type spaces in property values again, and options stop being dropped or duplicated.
- ⏰ Reminders replace, not pile up — changing a journal or note reminder's time moves the one you had, and the picker lets you remove it.
- 📁 Leave a project from its chips — remove a file from a project via the chips under its title, without deleting either.
- 🧩 Sidebar remembers itself — a closed sidebar stays closed across restarts and vault switches.
- 🔖 Tag hub creates tags — the New tag button now actually makes one.
- 🔗 Links and mentions survive reload — inline mentions, link references, date pills, callouts and CriticMarkup stay intact through external edits and reopening.
- ✍️ Spell-check in context — spelling suggestions appear in the right-click menu, with one menu per secondary click.
- 💠 Nested quotes keep their level — a lazily nested quote is no longer deleted on save.
- 🎛️ Task drawer closes cleanly — the task detail drawer now unmounts when dismissed.
- 🎨 Styles load reliably — the app resolves its base stylesheet correctly regardless of where it was launched from.
Changelog
Full Changelog: v2026-08-25...v2026-09-03
#1932 ci: run changed Electron E2E tests on pull requests @h4yfans
#1856 ci(sync-server): add a manual dispatch trigger to the staging deploy @h4yfans
#1974 feat(editor): Notion-style block side menu @h4yfans
#1968 feat(landing): rebuild /compare as a real comparison hub @h4yfans
#1966 feat(landing): link all comparison pages from a sitewide footer block @h4yfans
#1965 feat(docs): add robots.txt, sitemap, and per-page canonicals @h4yfans
#1903 feat(sidebar): fold the top navigation block away @h4yfans
#1922 feat(tasks): import Obsidian Tasks plugin lines as first-class Memry tasks @h4yfans
#1905 feat(desktop): minimize to tray @h4yfans
#1888 feat(mobile): Paper 01 auth screens @h4yfans
#1879 feat(tasks): link canvases from the Related picker @h4yfans
#1863 feat(mobile): UI foundation and the four search screens @h4yfans
#1859 feat(mobile): Phase 4 / US2 — edit notes anywhere, offline first @h4yfans
#1969 fix(desktop): resolve base.css from import.meta.url, not process.cwd() @h4yfans
#1972 fix(home): count only the calendar items the widget renders @h4yfans
#1971 fix(sync): refresh link references and CriticMarkup on external-edit feed @h4yfans
#1970 fix(tests): stop faking timezone coverage on the vitest threads pool @h4yfans
#1967 fix(landing): lengthen thin SEO titles, trim long meta descriptions @h4yfans
#1964 fix(journal): give the day panel and the Home board one day boundary @h4yfans
#1963 fix(sync): halve the push batch when the server refuses it @h4yfans
#1952 fix(scripts): scan class lists, not whole renderer files, for physical Tailwind classes @h4yfans
#1960 fix(editor): keep the author's markdown spelling for everything the user did not edit @h4yfans
#1953 fix(home): give the calendar widget and the header one day boundary @h4yfans
#1951 fix(tasks): refuse a due or start date the calendar does not have @h4yfans
#1962 fix(settings): make the interface font size a pixel slider @h4yfans
#1950 fix(tasks): unmount the task detail drawer when it is closed @h4yfans
#1949 fix(editor): persist a dragged table column width as a sidecar marker @h4yfans
#1948 fix(export): keep embedded images in exported PDF and HTML @h4yfans
#1947 fix(editor): persist text alignment as a sidecar marker in the markdown @h4yfans
#1946 fix(editor): indent every block of a multi-block selection on Tab @h4yfans
#1945 test(home): pin the calendar widget fixture clock to today's real date @h4yfans
#1944 fix(projects): let an item leave a project from its project chips @h4yfans
#1943 fix(reminders): replace a journal or note reminder instead of adding a second @h4yfans
#1942 fix(sidebar): persist the open state in localStorage instead of a cookie @h4yfans
#1919 fix(tasks): never dress a checkbox with no task row as a task @h4yfans
#1916 fix(home): keep the calendar widget current when the board is a background tab @h4yfans
#1918 fix(sync): stop rewriting markdown files Memry did not author @h4yfans
#1917 fix(tags): make the tag hub's New tag actually create a tag @h4yfans
#1904 fix(editor-schema): keep inline nodes intact inside table cells @h4yfans
#1901 fix(editor): keep the bytes around a toggle and the ones a declined toggle owns @h4yfans
#1895 fix(properties): stop the property row eating the space bar @h4yfans
#1894 fix(editor): keep a lazily nested quote's level instead of deleting it @h4yfans
#1893 fix(properties): stop dropping and duplicating property options @h4yfans
#1898 fix(updater): open the release-notes tab in the background @h4yfans
#1886 fix(editor): keep a blockquote's blank line and its nesting on the way back @h4yfans
#1882 fix(ci): stop the mobile boundary gate from auditing build-time configs @h4yfans
#1867 fix(editor): close the link-mention token alphabet so mentions survive reload @h4yfans
#1876 fix(editor): persist toggle fold state in the document @h4yfans
#1875 fix(sync): keep callouts intact through the main-path write-back @h4yfans
#1880 fix(tasks): count the rows a project lists, and let dialogs shrink @h4yfans
#1866 fix(editor): restore inline date pills on the collaborative open path; legible fired reminders @h4yfans
#1864 fix(editor): spelling suggestions in the context menu; one menu per secondary click @h4yfans
#1855 fix(installer): never let a failed Windows update destroy the existing install @h4yfans
#1854 perf(landing): fix broken LCP image, hydrate the prerender, split the bundle @h4yfans
#1958 test(notes-tree): mount a viewport of rows in the folder-rename suite @h4yfans
#1961 Replace the custom font field with a system font picker @h4yfans
#1885 test(sync): probe what the write-back round-trip does to raw HTML @h4yfans
#1874 test(editor): golden round-trip conformance suite across both serializers @h4yfans
#1858 perf(sync): batch CRDT snapshot pushes so seeding stops paying per-note round trips @h4yfans
#1842 Bootstrap Sync epic (#1828): control-plane Worker, presigned R2 data plane, cursor-range packs @h4yfans
#1860 docs(mobile): UI design reference for the Figma screen inventory @h4yfans