Conflict differ UI #42

Closed
opened 2026-09-21 18:03:02 +01:00 by cruelacid · 1 comment
Owner

Part of #37.

What Relay does

A diff/merge resolution view since 0.3.3, opened proactively from a "stack" icon,
themed to match Obsidian, with guides for resolving conflicts and working through
a backlog of them. Note their own issue #134 complains the differ mislabels which
side is which — theirs is not exemplary, it is merely present.

What we do today

We write a conflict copy and show a Notice — "<name> (conflicted copy <stamp>)<ext>"
(file-sync.ts:446, blob-sync.ts:365). That is the safer behaviour and
CLAUDE.md is right to prefer it: disagreement is visible and recoverable where
silent convergence is not. But nothing helps the user afterwards.

Why this is more than polish

.nectenda-backups/ is a dot-directory, and Obsidian's vault index excludes
it
— the same fact recorded in CLAUDE.md as having once made backups look
missing. docs/sync-limitations.md warns testers about it. Users have the same
problem and no workaround: first-sync backups exist and are effectively
unreachable from inside Obsidian.

So this is a live hole in the claim the product leads with. Both inputs are
already on disk; nothing surfaces them.

What changes

A differ over the conflict copy and its original, plus a browser for
.nectenda-backups/ that reads through the adapter rather than the vault index.

Risk

risk:none.

Verification

Assert through an API that can actually observe dot-directories — CLAUDE.md
records that using the vault index here produced a wrong conclusion once already.

Part of #37. ## What Relay does A diff/merge resolution view since 0.3.3, opened proactively from a "stack" icon, themed to match Obsidian, with guides for resolving conflicts and working through a backlog of them. Note their own issue #134 complains the differ mislabels which side is which — theirs is not exemplary, it is merely present. ## What we do today We write a conflict copy and show a Notice — `"<name> (conflicted copy <stamp>)<ext>"` (`file-sync.ts:446`, `blob-sync.ts:365`). That is the **safer** behaviour and `CLAUDE.md` is right to prefer it: disagreement is visible and recoverable where silent convergence is not. But nothing helps the user afterwards. ## Why this is more than polish `.nectenda-backups/` is a **dot-directory, and Obsidian's vault index excludes it** — the same fact recorded in `CLAUDE.md` as having once made backups look missing. `docs/sync-limitations.md` warns testers about it. Users have the same problem and no workaround: first-sync backups exist and are effectively unreachable from inside Obsidian. So this is a live hole in the claim the product leads with. Both inputs are already on disk; nothing surfaces them. ## What changes A differ over the conflict copy and its original, plus a browser for `.nectenda-backups/` that reads through the adapter rather than the vault index. ## Risk `risk:none`. ## Verification Assert through an API that can actually observe dot-directories — `CLAUDE.md` records that using the vault index here produced a wrong conclusion once already.
Author
Owner

Moved to the Vikunja board as NEC-19: https://projectron.nerchure.com/tasks/19

Moved to the Vikunja board as **NEC-19**: https://projectron.nerchure.com/tasks/19
Sign in to join this conversation.
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Nectenda/nectenda#42
No description provided.