Browser-only PeerJS adapter for the normal opaque e2e-col transport contract.
send() resolves after the elected peerjslib browser hub accepts the bytes.
That intentionally mirrors the Signal/demo transport hand-off boundary; it
does not mean every replica has merged the update.
peerjslib's replay window is bounded. When it reports a replay gap, this
adapter marks the local receiver as needing recovery and sends a small
transport-internal checkpoint request through the lobby. Every other replica
that receives the request may ask its local DocumentSession to publish a
complete snapshot; DocumentSession itself decides whether that participant is
authorized to write. This deliberately avoids coupling recovery authority to
whichever browser happens to hold the PeerJS hub role.
Browser-only PeerJS adapter for the normal opaque e2e-col transport contract.
send()resolves after the elected peerjslib browser hub accepts the bytes. That intentionally mirrors the Signal/demo transport hand-off boundary; it does not mean every replica has merged the update.peerjslib's replay window is bounded. When it reports a replay gap, this adapter marks the local receiver as needing recovery and sends a small transport-internal checkpoint request through the lobby. Every other replica that receives the request may ask its local DocumentSession to publish a complete snapshot; DocumentSession itself decides whether that participant is authorized to write. This deliberately avoids coupling recovery authority to whichever browser happens to hold the PeerJS hub role.