Skip to content

TrewSync 0.11.0

Choose a tag to compare

@waynehoover waynehoover released this 03 Oct 00:43
· 242 commits to main since this release

The first release of the TrewSync plugin, forked from Basalt Sync 0.10.0. It is a fresh start rather than an upgrade: a Basalt device, invite or recovery key does not work with a TrewSync server, and moving a vault is a new pairing. Upgrade the server first; this plugin needs a trewd that speaks protocol 2 for undo, and works against protocol 1 for everything else.

Changed from Basalt Sync

  • No end-to-end encryption. The server stores notes, their history and their names in plaintext, which is what makes its agent endpoint possible. There is no recovery key, root secret or key rotation. Put the server's data directory and backups on encrypted storage (Privacy).
  • Pairing from an invite. Every device, the first included, pairs from a single-use trew1i_ invite (trewd invite) that carries the server's address and the vault's name.
  • The device token lives in Obsidian's keychain on Obsidian 1.11.4 and later, not in data.json, so a backup or synced copy of the vault cannot connect as the device. Older Obsidian keeps it in data.json. A copied or renamed vault, or a cleared keychain, asks to pair again and loses no note.
  • Refused paths are shown, not logged. A path Obsidian could not hold everywhere, or one that differs from another live path only by letter case, stays on its device and is listed in the panel with its reason.

Added

  • Undo this change in a note's version history, beside Restore, for a version an agent wrote. It refuses rather than overwrites if the note has been edited since.
  • The conflict notice opens the review. When both versions of a file were kept, tapping the notice opens "Review conflicts", which compares them and keeps either, a combined edit, or both (Obsidian 1.8.7 and later; on older versions the notice names the command).
  • Conflict copies are named after the author of the bytes they hold: the agent's label for an agent's edit, the other device's name for its text.
  • Windows and iOS pair, with a standing notice in the panel that Windows is not supported and iOS is untested; names Windows cannot hold are listed as needing attention instead of syncing.

Install

Download main.js, manifest.json and styles.css into .obsidian/plugins/trew-sync/ in the vault, or point BRAT at this repository. Check them against SHA256SUMS, or with gh attestation verify FILE --repo waynehoover/trewsync.