FluxyChat

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/resolve

Resolve 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.

On this page