Skip to content

%ELO adaptor mislabels deltas as snapshots and strips version vectors #15

Description

@zxch3n

rust/loro-websocket-client/src/lib.rs:1114-1155

  • Each local update is wrapped as an “Snapshot” record with vvCount = 0, even though the payload is just a
    delta blob. That violates protocol-e2ee.md (DeltaSpan must carry peerId/start/end) and prevents receivers
    or the server from deduplicating or backfilling.
  • Initial join also sends a full snapshot regardless of negotiated version, re-emitting an empty VV that
    hides actual counters.
  • Fix: When exporting CRDT deltas, build a DeltaSpan header with peerId/start/end, include the doc’s version
    vector, and only emit genuine snapshots when exporting ExportMode::Snapshot. Ensure the adaptor stores and
    increments counters per peer so version negotiation works cross-language.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions