Skip to content

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

@zxch3n

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.

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