Skip to content

Validation run 2026-09-21: user-journey scenarios on 1.0.3, then 1.0.4

Second device run on the private-connectivity route class, one day after the 2026-09-20 run. That run proved pairing and the two basic edit directions over the private route. This run works through what a person does with a vault in a day: creating, editing, renaming, moving and deleting notes and folders on either device, closing and reopening the app, large attachments, and recovery. It also carries the in-app plugin update: 1.0.4 published during the run, both devices took it from the community directory, and the two rename journeys that failed on 1.0.3 were re-run against it. Every scenario ran on real devices against a running server on that route, with disposable content in one test folder.

Scope, route and platform coverage are stated by class, as in the previous record. Nothing about the deployment's configuration, addresses, device identity or the user's notes is recorded here.

Devices and versions

Role Platform class Plugin
Desktop macOS desktop 1.0.3 at the start; updated in-app to 1.0.4 during the run
Phone iOS phone 1.0.1 at the start of the run; updated in-app to 1.0.4 during the run

Both devices sync the whole vault. The route is the private connectivity path described in kubernetes.md. The deployment's own configuration is private (requirement 11).

Results

Outcome vocabulary: PASS (behaved as documented), PASS with finding (correct end state, issue filed for the path), FAIL (data loss or wrong end state), NOT RUN (with the reason).

# Scenario Outcome Note
S1 Create a note on the desktop PASS On the phone within seconds
S2 Create a note on the phone PASS On the desktop within seconds, body intact
S3 Rename the phone vault PASS with finding iOS shows its first-open trust prompt again; the plugin stays off until "Trust author and enable plugins" is accepted. Obsidian behaviour, documented in troubleshooting
S4 Append on the desktop PASS
S5 Append on the phone PASS
S7 Delete a note on the desktop PASS Gone from the phone; desktop copy in the system trash
S8 Delete a note on the phone PASS Desktop copy gone in about 30 s and in the desktop's system trash
S9 Restore a deleted note from history (desktop) NOT RUN to completion The dialog steps oldest-first, 20 versions per click, no running total; the note sat hundreds of steps into the journal. #102
S10 Create a folder with 7 notes on the desktop PASS
S11 Move a note into a subfolder from outside Obsidian (desktop) PASS with finding Correct end state after about 4 minutes; edits made the same way take seconds. #101
S12 Rename a note on the phone FAIL The desktop, receiving the rename, trashed both the old and the new name within about 10 s and the note left the phone. Same defect as J4 from the other side; both copies sit in the desktop's system trash. #96, fixed in 1.0.4
S13a 172 MB video from the desktop (under the phone ceiling) PASS About 2 minutes over the private route; opens on the phone
S13b 874 MB video from the desktop (over the phone ceiling) PASS with findings Desktop converged on the full file (about 1.2 MB/s). Phone lists it under "Show remote-only files" with a Fetch button, as designed. A mid-copy snapshot was published as an intermediate version (#99) and the phone kept that truncated copy on disk after the final version went remote-only (#100)
S19 Unicode and emoji in a note name PASS
S20 .obsidian configuration is not synced PASS by design
S21 Nested folders with special characters, three levels PASS
S22 Delete a 300-note folder on the desktop PASS Obsidian warns the folder is not empty; 300 tombstones published in about 15 s; the folder and all 300 notes are in the desktop's system trash
S23 Delete a folder on the phone NOT RUN The test rig could not reach the folder sheet's Delete row on iOS; phone-originated deletion is covered by S8 and the sync path is per file either way
S24 Same-name race: both devices create the same path while the desktop app is closed FAIL On relaunch the desktop's file was replaced by the phone's version. No conflict copy, nothing in the trash, never uploaded. #98
S25 Concurrent edit: desktop edits a note while its app is closed, the phone edits the same note, desktop relaunches FAIL The desktop's line was replaced by the phone's version with no conflict copy. #98
S26 Desktop relaunch after a note was created while the app was closed PASS Pushed within seconds of relaunch by the startup reconcile
S27 Phone app in the background while the desktop creates a note PASS Appeared about 5 s after the app returned to the foreground
S28 Twenty rapid saves on the desktop PASS Phone converged on the final body, no conflict copy
S32 PNG attachment with an embed PASS
S33 Empty note PASS
S34 180-character note name PASS
S35 Dotfile inside the vault PASS by design Never tracked
S36 Symlink inside the vault PASS by design Never tracked
S39 300 notes created at once on the desktop PASS All 300 on the phone
J4 Rename a synced note (desktop) FAIL Deleted on every device. #96, fixed in 1.0.4
U1 In-app plugin update on the phone (Community plugins, Check for updates, Update all) PASS 1.0.1 to 1.0.4 found and installed within about 20 s of the directory pointer moving; the plugin stayed enabled
U2 In-app plugin update on the desktop PASS 1.0.3 to 1.0.4; Obsidian appends a small nosourcemap marker to the installed main.js, so a byte comparison with the release asset differs by that trailer only
J4 (1.0.4) Rename a synced note on the desktop, both devices on 1.0.4 PASS Body intact, tracked under the new name within about 10 s, nothing trashed; the phone shows the renamed note
S12 (1.0.4) Rename a synced note on the phone, both devices on 1.0.4 PASS The desktop followed within about 10 s with the body intact. Observation: the receiving device keeps the old-name copy in its system trash. #108

Observations outside the numbered scenarios:

  • Closing the vault window on the desktop stops sync for that vault with no notice; the dashboard's last-seen time is the only signal. Obsidian plugins only run while their vault is open. Documented in troubleshooting.
  • While the history dialog was open, the status bar reported a repair error that pointed the user at connectivity and the server's scrub report; the server's scrub was clean and the cause was a device-side scheduling collision. #103
  • Folders are not objects to sync. Creating an empty folder on one device never creates it on the other, and deleting a folder leaves its empty tree behind on the other device once its notes are gone. #104; the user ruled this a defect rather than a documented limit.
  • The newer-version toast names the plugin last, after the version numbers, and cannot be tapped to reach Community plugins, so a reader on a phone has to find the update by hand. #105
  • A delete arriving from another device is applied over a local edit that has not been pushed yet, and the edit goes to the trash with the file. Found by the 1.0.5 lane while working #98, from the same unpushed-local-content mechanism. #106

What this run proves and does not prove

Proven: create, edit, delete and bulk operations converge in both directions within seconds over the private route; large files take the documented per-platform path; the startup reconcile pushes work done while the app was closed; hidden paths and links stay out of sync; the in-app update path from the community directory works on both platform classes; and, with both devices on 1.0.4, renaming a synced note is a move and not a deletion in either direction.

Not proven: recovery through the history dialog on a journal of this size; folder deletion originating on the phone; behaviour with the phone offline (airplane mode was not exercised); any scenario on Android, Windows or Linux.

Findings filed from this run

  • 96 rename deletes the note on every device (P0, fixed in 1.0.4)

  • 98 offline edits overwritten silently on relaunch (P0, fix in progress)

  • 99 growing-file guard published a mid-copy snapshot

  • 100 remote-only classification leaves a stale local copy in place

  • 101 external move takes minutes to sync

  • 102 restore-from-history pacing

  • 103 false repair error during the history dialog

  • 104 empty folders are neither created nor removed on the other device

  • 105 the newer-version toast names the plugin last and cannot be tapped

  • 106 a remote delete is applied over an unpushed local edit

  • 108 the receiving device keeps the old-name copy in its system trash after

    a rename

Update every device to 1.0.4 or later before renaming notes; a device still on 1.0.3 or earlier will delete a note that another device renames. Until the fix for #98 ships, open the app on a device before editing there if the same notes were edited elsewhere while it was closed.