← Back to suites
device-handoff zero-budget semantic-index

Multi-device and workspace handoff

Prove the cross-device guarantees: edits made on device A reach device B over realtime, Y.Text merges char-by-char (not last-write-wins), the IndexedDB replay survives a kill on either device, leader election keeps exactly one tab as the workqueue claimer, lazy WebSocket opens only when needed (no idle ping storms), offline drains preserve op order, presence fans out across devices, kanban drag converges, PDF render works on both device classes, and a brand-new collaborator joining via shared link sees the full workspace state. The read-only link variant proves the planned /view/ read-only surface gates writes.

Behaviours 0 Tests 15 Graph 49 nodes · 77 edges Runner - CircleCI browser_device_handoff Source qa/suites/device-handoff.yaml

Test witnesses

These tests belong to the suite. Missing implementation links stay visible until a code-backed graph claim records them.

TestStatusImplementationOpen
[family collaborator] edits on one device appear on the other device
@cv/ui · playwright · stories/device/multi-device.edit-converges-across-devices.spec.ts
catalog
cv ui dashboard
graph-proven · graph-checks-edge
cv ui realtime client
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
dashboard sse pathway
graph-proven · graph-checks-edge
realtime connection impl
graph-proven · graph-checks-edge
workspace client sdk
graph-proven · graph-checks-edge
Test
[family collaborator] an edit survives a tab kill and reappears on reopen
@cv/ui · playwright · stories/device/multi-device.idb-replay-survives-kill.spec.ts
catalog
cv op catalog applier
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
op catalog dedup
graph-proven · graph-checks-edge
workspace client sdk
graph-proven · graph-checks-edge
y indexeddb persistence
graph-proven · graph-checks-edge
Test
[family collaborator] the app opens a live connection only when collaboration starts
@cv/ui · playwright · stories/device/multi-device.lazy-ws-only-when-needed.spec.ts
catalog
cv ui realtime client
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
realtime connection impl
graph-proven · graph-checks-edge
ws required surfaces
graph-proven · graph-checks-edge
Test
[family collaborator] one tab takes over when the primary tab dies
@cv/ui · playwright · stories/device/multi-device.leader-election-handoff.spec.ts
catalog
cv ui realtime client
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
realtime connection impl
graph-proven · graph-checks-edge
tab coordinator
graph-proven · graph-checks-edge
Test
[family collaborator] offline edits drain in order when the network returns
@cv/ui · playwright · stories/device/multi-device.offline-drain-preserves-order.spec.ts
catalog
cv op catalog applier
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
op catalog dedup
graph-proven · graph-checks-edge
pending op idb queue
graph-proven · graph-checks-edge
workspace client sdk
graph-proven · graph-checks-edge
Test
[family collaborator] two devices editing the same bullet both keep their changes
@cv/ui · playwright · stories/device/multi-device.ytext-merges-across-devices.spec.ts
catalog
cv document model helpers
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
workspace client sdk
graph-proven · graph-checks-edge
ytext bullet merge
graph-proven · graph-checks-edge
Test
[family collaborator] see consistent presence semantics across two browser contexts of the same workspace
@cv/ui · playwright · stories/device/p6-g10-s1-multi-device-presence.spec.ts
catalog
awareness presence projection
graph-proven · graph-checks-edge
cv server workspace storage
graph-proven · graph-checks-edge
cv ui realtime client
graph-proven · graph-checks-edge
realtime connection impl
graph-proven · graph-checks-edge
Test
phone DOM shows the new status within 2 s of the laptop move
@cv/ui · playwright · stories/device/p6-g5-s1-multi-device-kanban-drag.spec.ts
catalog
cv ui dashboard
graph-proven · graph-checks-edge
cv ui kanban
graph-proven · graph-checks-edge
dashboard sse pathway
graph-proven · graph-checks-edge
kanban status injector
graph-proven · graph-checks-edge
Test
exactly one tab wins the claim for a queued process_request
@cv/ui · playwright · stories/device/p6-g6-s2-leader-election-prevents-double-claim.spec.ts
catalog
cv server process requests
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
process request claim broker
graph-proven · graph-checks-edge
tab coordinator
graph-proven · graph-checks-edge
Test
[family collaborator] render the same Typst source to matching layouts across two browser contexts
@cv/ui · playwright · stories/device/p6-g7-s1-pdf-render-cross-device.spec.ts
catalog
cv typst rendering
graph-proven · graph-checks-edge
node to typst serializer
graph-proven · graph-checks-edge
typst worker bridge
graph-proven · graph-checks-edge
Test
[family collaborator] a new collaborator's edit reaches the original owner live
@cv/ui · playwright · stories/device/workspace-handoff.bob-edit-reaches-alice.spec.ts
catalog
cv ui dashboard
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
dashboard sse pathway
graph-proven · graph-checks-edge
workspace client sdk
graph-proven · graph-checks-edge
Test
[family collaborator] leaving and rejoining the workspace preserves my identity
@cv/ui · playwright · stories/device/workspace-handoff.bob-rejoins-without-duplicate-identity.spec.ts
catalog
cv ui realtime client
graph-proven · graph-checks-edge
cv workspace client sdk
graph-proven · graph-checks-edge
realtime connection impl
graph-proven · graph-checks-edge
workspace device identity
graph-proven · graph-checks-edge
Test
[family collaborator] open a shared workspace cold and see the full state
@cv/ui · playwright · stories/device/workspace-handoff.cold-join-sees-state.spec.ts
catalog
cv ui app shell
graph-proven · graph-checks-edge
cv ui dashboard
graph-proven · graph-checks-edge
dashboard cold load
graph-proven · graph-checks-edge
link is identity access
graph-proven · graph-checks-edge
Test
[family collaborator] a new collaborator sees the quarry exactly as the owner built it
@cv/ui · playwright · stories/device/workspace-handoff.quarry-visible-to-new-collaborator.spec.ts
catalog
cv document model helpers
graph-proven · graph-checks-edge
cv ui cvl editor
graph-proven · graph-checks-edge
cvl editor cold load
graph-proven · graph-checks-edge
node tree quarry
graph-proven · graph-checks-edge
Test
[read-only viewer] a read-only link lets viewers see but not edit
@cv/ui · playwright · stories/device/workspace-handoff.readonly-link-blocks-writes.spec.ts
catalog
cv api workspace router
graph-proven · graph-checks-edge
live mirror workspace
graph-proven · graph-checks-edge
read only view route
graph-proven · graph-checks-edge
Test