0.2.6
Every file in a shared folder now syncs
Vault Rooms used to sync a fixed list of file types and silently skip everything else — an audio clip, a video, a
.docx, or a file with no extension simply never reached your teammates, with nothing in the UI saying so.
- Markdown,
.txt,.canvas,.json,.csv, and.excalidrawsync as text; everything else now syncs as
binary, including images, PDFs, audio, video, Office documents, and unrecognized or extensionless files. - Binary content counts against the server's size limit at roughly 1.33x its real size, so a large video or
Office file hits the ceiling sooner than its size on disk suggests. - Dotfiles and dotfolders never sync — any path segment starting with
., such as.envor a.secrets/
folder. Sharing a folder should not risk shipping local credentials that happen to live inside it. This is the
same rule that already excluded the vault's config folder,.git/, andnode_modules/. - Mixed versions stay safe rather than corrupting. A teammate still on 0.2.5 or older doesn't learn those new
paths exist at all, instead of receiving content their build would write to disk incorrectly. Both devices need
0.2.6 to exchange them; see the new Troubleshooting entry in the README.
Offline note creates and renames are no longer lost
Creating or renaming a Markdown note while the connection is down used to be forgotten — an already-open note kept
merging fine, but structural changes had no recovery, and restarting Obsidian discarded the intent entirely.
- The intent is now written to disk, survives a full Obsidian restart, and replays once the connection is back.
- A rename keeps the note's identity, epoch, and history at its new path.
- Rapid create → rename → delete sequences collapse to what you actually ended up with, so only the final path is
created. - A dropped acknowledgement can no longer produce a duplicate note. The relay records each structural
operation's outcome in the same transaction as the change itself, so a retry returns the original result rather
than repeating the mutation. - Access revoked while you were offline rejects the pending change instead of honouring it.
- Turning Live editing off with a pending change converts it to normal whole-file sync rather than stranding it.
- Replay needs the relay on 0.2.6 or newer. Against an older host the change stays queued and you get one notice
saying the server must be upgraded — nothing is lost in the meantime.
Live editing skips *.excalidraw.md
An .excalidraw.md file is a drawing stored as structured JSON inside a Markdown file. Merging that JSON
character by character can produce a drawing that no longer loads, so it now stays on the whole-file lane like
.canvas and .excalidraw. Ordinary Markdown notes are unaffected.
Update notifications
On load, Vault Rooms makes a single anonymous request to GitHub's public Releases API and tells you if a newer
version is out. It sends no vault content, no room or file names, and no identifier of you or your server, and it
fails silently when you're offline or the domain is blocked. Blocking api.github.com is safe and does not affect
sync. This is the only request that leaves your local network; it is documented in
SECURITY.md and can be blocked at your firewall if your environment
requires that.
Smaller fixes
- A conflict copy of a file without an extension (e.g.
LICENSE) is now recognised as a conflict copy instead
of being treated as a new file and pushed back to the server. - Room settings now have a sticky "Save room settings" row at the bottom of the modal, so the action is always
reachable without scrolling back up. - The conflict-policy setting reads "If two people save a non-live file at once" and says plainly that it does
not apply to Markdown notes using Live editing. - Binary uploads are validated before they are stored, so a malformed payload is rejected rather than recorded with
a hash that doesn't match what a receiving device would write. - Dependency:
fast-uriis pinned to a patched version (GHSA-7p8r-x3mc-p8w7). It only ever reached the optional
standalone relay through Fastify - the plugin bundle contains no Fastify at all - so nothing that ships to
Obsidian was affected.
Upgrading
Nothing to do. The database migration is additive, and existing servers, rooms, saved connections, per-room
live-editing values, and pending sync state are unchanged. Settings written by older builds load as-is; anything
unrecognized in the new pending-operation journal is discarded rather than executed.
For the two new features to work between two devices, both need 0.2.6: offline replay requires the relay side,
and the widened file types require both sides.