watershed Collaborative data structures for Gleam

One checklist.
Two replicas. Order survives the race.

Both replicas below run watershed's production SharedTree kernel against an in-page sluice. This page starts from a seeded native container, so it can focus on optimistic edits, server order, and convergence without asking Floodgate to create or host the document.

The SharedTree checklist Lustre example is the hosted-service counterpart: it creates the container through Floodgate and lets two browser tabs collaborate on the same document.

SharedTree checklist, live

Two replicas run watershed's production SharedTree kernel against one in-page sluice. Edit, check, add, or move an item and the local row turns magenta while its op is unsequenced. Once the sluice stamps and delivers it, the row returns to ink.

Race edit vs. reorder keeps the current checklist intact: Client A revises publish-survey while Client B moves inspect-spillway down. Both writes leave before either reaches the sequencer. Step the deliveries or settle them all: every replica lands on the same text and order.

Client A

0 pending
    Canonical order []

    Client B

    0 pending
      Canonical order []
      Sequencer SN 0

        Converged all replicas identical · nothing pending

        Jitter changes simulated hop timing; animation speed changes playback only. The step control delivers one queued broadcast wave. Settle drains every queued frame immediately.