• v0.3.0 55d62572a6

    v0.3.0
    All checks were successful
    CI / deny (push) Successful in 2m25s
    CI / test (push) Successful in 4m50s
    Release / release (push) Successful in 6m2s
    Stable

    jack released this 2026-10-12 20:42:15 -04:00 | 0 commits to main since this release

    A 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.json is 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, %20 encoding, #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 .git are
        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.
    • 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.
    • 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, \t and \u escapes, and the
        words true and null as 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 #tag glued to bold or code is no longer coloured as a tag.
      • Link targets accept .MD and \ separators; renaming a tag works when lowercasing changes a
        character's length.
    • 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. See docs/testing.md.
    • CI checks formatting, builds with --locked, runs more property cases, and a weekly job checks
      dependency advisories.
    Downloads
  • v0.2.1 129263c008

    v0.2.1
    All checks were successful
    CI / deny (push) Successful in 1m51s
    CI / test (push) Successful in 4m16s
    Release / release (push) Successful in 11m18s
    Stable

    jack released this 2026-10-03 20:15:52 -04:00 | 56 commits to main since this release

    Fixes 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) and mailto: 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.json or workspace file is now copied to a .bak file and you are told,
      instead of being silently reset. Settings from a newer version are kept when you save.

    Security

    • Markdown images (![](path)) 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 (note to Note) 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. See docs/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
  • v0.2.0 c8a808417c

    v0.2.0
    Some checks failed
    CI / test (push) Successful in 3m46s
    CI / deny (push) Successful in 1m46s
    Release / release (push) Failing after 4m39s
    Stable

    jack released this 2026-10-03 00:38:31 -04:00 | 72 commits to main since this release

    Added

    • 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 # Title followed 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
  • v0.1.1 5fa1cde373

    v0.1.1
    All checks were successful
    CI / deny (push) Successful in 1m49s
    CI / test (push) Successful in 3m29s
    Release / release (push) Successful in 4m16s
    Stable

    jack released this 2026-10-03 00:25:44 -04:00 | 95 commits to main since this release

    Fixed

    • 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-body needs 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