Repository navigation
TrewSync 0.11.0
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 indata.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.