-
v0.3.0
Stablereleased this
2026-10-12 20:42:15 -04:00 | 0 commits to main since this releaseA vault you keep in sync with Syncthing, Dropbox or similar is now a supported way to use robsidian:
changes arriving from other devices are applied without freezing the window and without
overwriting anything, and nothing a sync tool leaves behind shows up as a note. Alongside that:
Markdown links, a much faster editor on large notes, and a long list of editing fixes.Upgrading
- Open tabs and recent notes are now kept per device, in your config directory, instead of in
<vault>/.notebook/workspace.json. The old file is read once as a starting point; you can delete
it.<vault>/.notebook/settings.jsonis unchanged and still travels with the vault. - Building from source needs Rust 1.91 or newer.
Added
- Markdown links to notes (
[text](Note.md), relative paths,%20encoding,#heading) count
as links: they appear in backlinks, and renaming or moving a note rewrites them, as it does for
[[wikilinks]]. Moving a note also keeps its own relative links and images pointing at the same
files. - Outline tab in the sidebar lists the open note's headings and jumps to them. The preview pane
follows the editor's scroll position. - Link suggestions while you type. The list of matching notes opens by itself after
[[; click
one or press Tab to complete it, Esc to dismiss it. - Preview: task boxes are clickable and tick the box in the note; callout headers
(> [!note] Title) show as a bold title; raw HTML shows its text instead of vanishing (<br>is a
line break, comments stay hidden). - Editing: Tab and Shift+Tab indent and outdent every selected line (they used to replace the
selection with a tab character). Ctrl+Left and Ctrl+Right move every cursor by a word when you
have several. Ctrl++ works on keyboard layouts where+has its own key. - First run: the welcome screen lists recently opened vaults, and a folder path that does not
exist yet can be created as a new vault with a short welcome note (nothing existing is ever
overwritten). - Chinese, Japanese and Korean text is drawn with a common system font instead of boxes (found
at start-up, used only for characters the built-in fonts lack). - Screen readers: the interface now exposes an accessibility tree (AccessKit). It has not been
tested with a screen reader yet; reports are welcome. - The tab close button has a subtle background of its own.
Changed
- Files dropped on the window are copied in the background, so a large PDF or video no longer
freezes the window. - Accented names match whether they are stored composed or decomposed, so a note synced from a Mac
matches[[Café]]typed on Linux or Windows. File names are never changed. - Tables line up by display width: CJK characters and emoji count as two columns.
- The "skipped" notice says "items" and now includes folders that could not be listed (a flaky
mount used to give a silently smaller vault). - A configuration file that cannot be read is reported rather than treated as missing, and every
damaged file is kept as its own backup (.bak,.bak2, ...) instead of replacing the last one. - Crash recovery keeps an unanswered older recovery when another is written, and offers it next.
Fixed
- Sync safety.
- Creating, moving, renaming, trashing and undoing never overwrite a note that appeared at the
destination a moment earlier. - A burst of file changes (a sync run, a repository pull) is applied as one batch, so the app
stays responsive instead of re-indexing the vault for every file. - A note that cannot be read for a moment (a sync tool or antivirus holding it) stays in the vault,
keeps its open tab and its links, and is retried every few seconds. - Sync tool temporary files (
.syncthing.*.tmp,~syncthing~*) and folders such as.gitare
ignored; conflict copies (*.sync-conflict-*) are shown in the file tree in the warning colour. - Temporary files left by an interrupted save are removed when a vault opens, and notes with very
long (or CJK) names can be saved. - On Windows a save is retried briefly when antivirus or an indexer holds the file.
- Creating, moving, renaming, trashing and undoing never overwrite a note that appeared at the
- Data safety.
- Moving or creating a note in an excluded, hidden or symlinked folder, or outside the vault, is
refused with a reason instead of making the note vanish and leaving links broken. - A note that cannot be read is never deleted for good, and undoing a trash never recreates an
empty note. - If a vault-wide replace fails and its rollback does too, the changes that remain are still
undoable. Undoing a case-only rename works on case-insensitive filesystems. - Attachments are written without ever replacing an existing file.
- Moving or creating a note in an excluded, hidden or symlinked folder, or outside the vault, is
- Performance: a 1 MB note took about 1.7 seconds to lay out and now takes about 17 ms.
- Editing and rendering.
- Enter, Tab and Ctrl+Space no longer act on list syntax inside code fences, keep CRLF line
endings, work inside block quotes, and ignore* * *rules. - Code fences are recognised the same way everywhere (tilde, longer and indented fences).
- Properties: a byte order mark, a list spread over several lines,
\tand\uescapes, and the
wordstrueandnullas text are now handled correctly. - A cursor between the CR and LF of a CRLF line could crash the table editor.
- After completing a link with several cursors, the other cursors no longer point at the wrong
text; a#tagglued to bold or code is no longer coloured as a tag. - Link targets accept
.MDand\separators; renaming a tag works when lowercasing changes a
character's length.
- Enter, Tab and Ctrl+Space no longer act on list syntax inside code fences, keep CRLF line
- The space between tabs is drawn in the background colour (it carried the tab colour, so tabs
looked wider than they were).
For contributors
- A hardening ledger (
docs/LEDGER.md) records every item, decision and finding. - New test layers: property tests over the text modules, fault injection for multi-file
operations, end-to-end GUI flows, and performance measurements. Seedocs/testing.md. - CI checks formatting, builds with
--locked, runs more property cases, and a weekly job checks
dependency advisories.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Open tabs and recent notes are now kept per device, in your config directory, instead of in
-
v0.2.1
Stablereleased this
2026-10-03 20:15:52 -04:00 | 56 commits to main since this releaseFixes from a review of 0.2.0: links, edits that could be lost when the app missed a file change,
and a few ways an untrusted notes folder could misbehave.Fixed
- Links in the preview did nothing when clicked. Web (
http,https) andmailto:links now
open in your browser or mail client, and a link to a file inside the vault opens that file.
Anything else (file:,javascript:, network paths, custom schemes) is blocked, with a
"Blocked link" message instead of silently doing nothing. - On Linux the interface kept repainting while a vault was open, using CPU even when idle. The
app was reacting to its own reads of your files. - Opening a note whose file had changed on disk before the app noticed could show the old text,
and saving then overwrote the newer version without a warning. The text and the file's state now
come from the same read. - Renaming or moving a note, or renaming a tag, now refuses (and says which file) if a note it
needs to rewrite changed on disk, instead of overwriting that change. - Vault-wide replace re-checks every file just before writing it, only rolls back files it still
owns, and new notes, renames, moves, trash, undo and autosave wait until it finishes. - A sync tool or backup touching a file without changing it no longer raises an "edited
elsewhere" conflict on a note you are editing. - If file watching cannot start, or it loses events, the app now tells you, re-checks the open
note every few seconds, and rescans the vault. There is also a Rescan button in the toolbar. - A damaged
config.jsonor workspace file is now copied to a.bakfile and you are told,
instead of being silently reset. Settings from a newer version are kept when you save.
Security
- Markdown images (
) can no longer load files from outside the vault, whether by..,
an absolute path or a symlink. Images over 50 megapixels or 50 MiB are not decoded. - Notes over 32 MiB are not read into memory.
- Note names that Windows cannot handle (
CON,NUL, trailing dots or spaces, control or
direction-override characters, over-long names) are rejected, and so are such names for
pasted or dropped attachments.
Changed
- Files the app cannot index (too large, not UTF-8, unreadable) are now counted in the status bar,
with the names in a tooltip, instead of being skipped silently. Symlinks to note files are now
indexed; symlinked folders are still not followed. - Renaming a note to change only its capitalisation (
notetoNote) is supported on Windows
and macOS. This path could not be tested on Linux.
Build
- A headless GUI test suite (25 tests) drives the real app: typing, switching notes, undo, the
conflict banner, table and list keys, search, and crash recovery. Seedocs/testing.md. - Release workflows now fail if the tag does not match the version in
Cargo.toml, and run
clippy and the tests before building.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Links in the preview did nothing when clicked. Web (
-
v0.2.0
Stablereleased this
2026-10-03 00:38:31 -04:00 | 72 commits to main since this releaseAdded
- Tables. The preview shows pipe tables as a grid whose columns fit their content, with column
alignment honoured. In the editor, Tab and Shift+Tab move between cells (Tab in the last cell
adds a row), Enter moves down a row, and the table is re-aligned as you navigate. Ctrl+Alt+T
(rebindable) formats the table at the cursor. - Wrapped list items now hang under their text, in both the editor and the preview.
- The vault scan shows a note count while it runs.
Changed
- Notes you edit are saved with exactly one trailing newline (an empty note stays empty, and CRLF
notes keep CRLF). Opening a note, or a vault-wide replace, never rewrites files you did not edit.
New notes start as# Titlefollowed by a single newline. - Vault-wide replace runs in the background, and refuses to write if a matched file changed on
disk after the search, instead of overwriting it. - Long notes are faster to scroll in the preview, which now draws only what is on screen.
- Links and tags are found using a CommonMark parser, so ones inside indented code, HTML or math
are ignored, and escaped ones (\[[x]],\#tag) are not matched. Known gaps: a wikilink whose
text contains emphasis markers ([[a*b*]]),[[a]](b), and[x]: [[a]]are not recognised. - Wikilinks written with an escaped pipe inside tables (
[[Note\|alias]]) now work for links,
backlinks and renames.
Fixed
- Ctrl+Z and Ctrl+Y undid into the wrong note after switching notes. Each note now has its own
undo history. - "Undid …" was cleared immediately after undoing a deleted note, and an undo with no vault open
discarded its entry. - Several crashes on unusual input: image paths such as
%aé, find matches that were stale while
typing, a stale tab index, and a start-up crash within the first minute after a machine boots.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Tables. The preview shows pipe tables as a grid whose columns fit their content, with column
-
v0.1.1
Stablereleased this
2026-10-03 00:25:44 -04:00 | 95 commits to main since this releaseFixed
- Switching away from a note you had just edited and back showed the old text. The file on disk
was correct, but the editor reloaded a stale in-memory copy. Saving now updates the vault's copy
straight away, which also keeps backlinks and tags current for a note you have just edited. - A flaky test that depended on file timestamps.
Build
- The Forgejo release workflow no longer fails when publishing on a runner with an older curl
(--fail-with-bodyneeds curl 7.76). It now checks the HTTP status itself and prints the
server's error message if the release or an upload is rejected.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Switching away from a note you had just edited and back showed the old text. The file on disk