Repository navigation
obsync 1.0.5
obsync 1.0.5
Known issues in 1.0.5, and the releases that fix them
Found on real devices after this release shipped. In the cases we reproduced,
none of these lost note content. Items 1 and 3 are fixed in 1.0.6 (pull request #112, in review now);
item 2 is fixed in 1.0.7 (issue #113), which follows immediately. Update every
device that syncs the vault as each release appears.
1. Editing the same note on two open devices can loop. When two devices
that are both open edit the same note at nearly the same time, each merges the
other's edit correctly, and then they keep sending the same merged text back
and forth: a stream of "obsync merged concurrent edits to ..." notices, one a
second or faster, and the note's version history grows without end. The note's
text was correct on both devices throughout the case we reproduced. To stop
it: quit Obsidian on one of the two devices, or close that vault window;
the other device may still publish a few more versions before it settles.
Update every device before opening the vault on both again. Until then, avoid
editing one note on two open devices at the same moment. Fixed in 1.0.6 (#112).
2. Two notes created under one name keep making conflict copies. When two
devices each create a note under the same name while one of them is closed,
1.0.5 keeps both, as it should, but the two then compete for that name: every
later edit of that note on one device writes another (conflict from ...)
copy on the other. Content is kept; the copies pile up. Workaround: rename
one of the two notes; the copies stop. Fixed in 1.0.7 (#113).
3. Writing a conflict copy can leave a hidden temporary file named
.obsync-restore-<id>.tmp in the vault folder on desktop, one per copy. It is
a plain second name for the same note, inside your vault folder, never
uploaded. Delete it. Fixed in 1.0.6 (#112).
The fix for the offline-edit loss below stands and is unchanged.
What changed
A note you wrote or edited while Obsidian was closed could be replaced by
another device's version when you opened it again. Update every device that
syncs this vault. That is the whole release; nothing else changes.
What happened. In 1.0.0, 1.0.1, 1.0.2, 1.0.3 and 1.0.4, if you edited a
note while Obsidian was closed on one device, and the same note also changed on
another device in the meantime, opening Obsidian again replaced your version
with the other device's within a few seconds. Writing a NEW note while the app
was closed did the same when another device happened to create a different note
under that same name. No (conflict from ...) copy was written and nothing was
moved to the trash. A note that changed on only one device was never affected,
and a note you wrote while the app was closed with no counterpart on another
device was uploaded correctly.
Content lost this way cannot be brought back. This is not like 1.0.4's
deletions, where the note's content was still on the server and Restore from
history could return it. Here the replaced text had never left the device --
obsync had not uploaded it yet -- so the server never held it, and neither
Restore from history nor the dashboard nor your operator's backups can
produce something that was never sent. If Obsidian's own File recovery
(Settings, Core plugins) was on, its periodic snapshots of that note are the
one place left to look.
What happens now. When a version arrives from another device for a note
this device has changed and not yet uploaded, obsync keeps your file exactly as
it is, writes the other device's version beside it as
<note> (conflict from <device>, <date>).md, tells you it kept both, and then
uploads yours. Where the two sides only added lines in different places, they
are merged into one note, as concurrent edits always were. A conflict copy is
never written over something already at that name either, so a copy you have
opened and edited is kept and the new one takes the next free name.
obsync recognises a note you have changed by its size and its modification
time, compared with what it recorded when it last uploaded that note — the
same check it has always used at startup to decide what to upload. An edit that
leaves both of those exactly as they were is invisible to that check, on this
release and on every earlier one.
Why every device. The device that loses the edit is the one that was
closed, so updating one device protects only that device. Update them all.
Install or update
In Obsidian: Settings -> Community plugins -> Browse -> Self Hosted Private Sync,
or Check for updates if it is already installed. Obsidian takes the plugin
files from this Release.
The server is a separate upgrade and nothing forces it: deploy the image below
BY DIGEST, keeping both volumes, and the journal replays into the new binary.
Supply-chain evidence
| Artifact | Reference |
|---|---|
| Image | ghcr.io/snaraj/obsync:v1.0.5@sha256:25f23d08e7093db432f0fbdd4eb3a2b30f3f17daf584fe538ec3831824587275 |
| Chart | ghcr.io/snaraj/charts/obsync:1.0.5@sha256:e4848758d9a0cd9d4206d8008ee708be08a703b0164a2f84214a72f593a24f4c |
| Plugin | obsync-plugin-1.0.5.zip (sha256:e92538081f59c6088b03f5c8508f1a7b2cacfba9bfd28c88a147aa8f8d85e84e) |
Image and chart are signed with keyless Cosign by this workflow identity.
Publication evidence: obsync-1.0.5-release-manifest.json (sha256:5d344d2d6f2b67d173ec3fd965a5e90310a433ab88bf6c647de775e6658a1569).