Vault Rooms 0.2.7
This release improves binary storage, offline editing reliability, LAN address recovery, and Obsidian settings compatibility.
Highlights
Binary storage and retention
- Whole-file content is now stored as immutable, content-addressed blobs outside SQLite.
- Superseded versions and unreferenced blobs are collected automatically.
- Binary files are stored as raw bytes instead of base64 inside the relay database.
- A default 256 MiB stored-content limit prevents unbounded relay growth.
- Existing content is migrated resumably in the background.
- Storage usage is visible per room and for the whole relay.
- Added Vault Rooms: Reclaim relay database space to return unused SQLite pages to disk.
If an existing relay is already over the new limit, reads, deletes, cleanup, and replacements that reduce usage remain available. Only writes that increase storage are rejected until usage is reduced or the owner raises the limit.
More reliable offline Markdown editing
- Markdown edits made before the relay starts are preserved when the connection becomes available.
- One-sided and concurrent offline edits no longer roll back during reconnect.
- Offline Markdown create and rename operations replay exactly once across reconnects and restarts.
- Document identity and CRDT history are preserved through offline renames.
- Old paths are no longer resurrected after an offline rename.
Live editing remains limited to Markdown notes and excludes *.excalidraw.md. Other files continue using whole-file synchronization.
DHCP-safe LAN recovery
- Hosts can advertise an existing
.localhostname or an IP address. - Existing IP and hostname connections continue working without migration.
- Changing the advertised address does not recreate the server, rooms, accounts, mounts, teams, or friendships.
- Pinned-TLS clients can use Find server on LAN to recover the same server after its DHCP address changes.
- Discovery runs only when the user presses the button.
- Every discovered endpoint is verified against the saved TLS identity, server ID, user ID, and device ID before it is stored.
- Legacy HTTP connections continue using manual Update address.
For the host’s own embedded server, change the advertised endpoint through Public URL override. The local owner connection remains loopback-only.
Obsidian UI improvements
- Settings now render as a normal vertical list in Obsidian 1.13 instead of overflowing horizontally.
- The local embedded-server card no longer shows misleading Test connection or Update address actions.
- Hosting status, LAN reachability, and discovery availability are shown separately.
- Remote saved servers retain their connection test and address-recovery actions.
Compatibility
- Existing rooms, permissions, accounts, mounts, teams, friendships, and device identities are preserved.
- Existing IP-based connections are not rewritten automatically.
- Existing hostname-based connections continue using normal DNS or mDNS resolution.
- Older clients remain compatible with their existing saved endpoint.
- Secure LAN discovery requires pinned TLS.
Known limitations
- Binary file synchronization still uses base64 over the current JSON/WebSocket wire format, adding roughly 33% transient transport overhead.
- Raw binary sync framing remains future work.
- LAN discovery is manual and does not run during automatic reconnect.
- SQLite only returns reclaimed pages to the filesystem after running the explicit reclaim command.