Canvas live in-view multiplayer #46
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#46
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. Depends on canvas structural merge; a separate decision, not implied by it.
What Relay does
Cursors, viewports, selections and in-progress connections on a shared canvas.
Note their own implementation sits behind a
labsflagenableCanvasPresencethat defaults to off (
src/flags.ts, read 21 Sep 2026) — the merge shippeddefault-on, the presence did not.
The cost to weigh
This requires patching
leaf.view.canvas, which is undocumented Obsidianinternals. It will break on Obsidian releases, and our
minAppVersionisdeliberately conservative (
1.13.7, the one version the suite runs nightly).That is a standing maintenance obligation, not a one-off build.
Recommendation
Do the merge first and ship it. Take this one only if users ask for it after the
merge lands — the merge is what makes canvas collaboration work; this makes it
feel live.
Risk
risk:noneto the server; high upkeep in the client.Verification
Pin the Obsidian version the internals were read against, and fail loudly rather
than silently when the shape changes.
Moved to the Vikunja board as NEC-23: https://projectron.nerchure.com/tasks/23