Features
Merge conflicts (CRDT)
Resolve ambiguous CRDT conflicts with a git-style two-column UI instead of silent last-write-wins.
Merge conflicts (CRDT)
When offline sync or federation produces two different contents for the same logical slot, FluxyChat surfaces a merge panel instead of silently picking a winner.
In chat
The Merge conflict banner appears when message-crdt-yjs detects ambiguous candidates. Open MergeConflictPanel to compare side by side:
- Keep version A
- Keep version B
- Merge both (concatenate with separator)
Resolved content is broadcast to all connected clients.
Console component
apps/dashboard/components/ui/merge-conflict-compare.tsx is the two-column diff UI used from the room view when conflicts are pending.
API
GET /rooms/:roomId/merge-conflicts?status=pending
POST /rooms/:roomId/merge-conflicts/:id/resolveResolve body: { resolution: "keep_a" | "keep_b" | "merge_both" }.
SDK
Conflict events arrive on the WebSocket as deliveryConflict. Subscribe and render your own resolve UI, or reuse the dashboard panel pattern.
Related
- Connection state: CRDT replay and offline sync