Excalidraw support #64
Labels
No labels
area:docs
area:identity
area:ops
area:plugin
area:server
channel:community
channel:direct
channel:owned
channel:press
channel:social
e2ee-constrained
gate:at-ga
gate:pre-ga
marketing
parity
relay:absent
relay:planned
relay:requested
relay:supported
risk:additive
risk:contract
risk:none
usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda#64
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #37.
What Relay does
Broken, and unfixed. Their issue #105, open since June 2026: "Relay
synchronization causes data corruption and merge conflicts in Excalidraw files."
The only workaround is Excalidraw's legacy mode. Their proposed fix, open PR
#107, gives up on merging and treats Excalidraw as an opaque attachment.
Excalidraw collaboration sits under Considering on their roadmap.
What we do today
.excalidraw.mdis markdown containing a large embedded JSON payload, so itsyncs as text and merges character-wise — the exact hazard
blob-policy.tsdocuments for JSON.
This is a live data-safety question, not a feature request. It is worth
checking whether we already corrupt these files, before deciding whether to
support them properly.
Options, in increasing cost
.excalidraw.mdas a blob — last-writer-wins with a visibleconflict copy. Honest, cheap, and per
CLAUDE.mddisagreement beats a filethat opens wrong. This is effectively Relay's PR #107.
not small.
Recommendation: do (1) now as a safety fix, and treat (2) as a genuine
feature later.
Risk
risk:none.Verification
Two vaults edit one Excalidraw file concurrently. Today's behaviour is the first
thing to measure — if it corrupts, this stops being backlog.
Moved to the Vikunja board as NEC-41: https://projectron.nerchure.com/tasks/41