Simplified sliding sync (MSC4186) #5

Open
opened 2026-10-04 20:18:48 +00:00 by robocub · 0 comments
Owner

Why

Cold start and room-list loading on large accounts are a real reason people bounce off Matrix. Sliding sync is the fix Element X uses.

Constraints (checked 2026-10-03)

  • Commet pins its own fork of the Dart SDK at upstream-v6.1.1 (commetchat/matrix-dart-sdk) plus its own drift database (matrix-dart-sdk-drift-db). famedly's upstream is at v13. Sliding sync landing upstream would not reach Commet until Commet rebases, which is the Commet maintainer's call.
  • The accepted MSC4186 shape (/v4/sync, pos/timeout in the body, range, include/exclude required_state) is not deployed by any server yet. Tuwunel, Synapse develop and Element X speak the experimental dialect (unstable path, ranges, tuple required_state with $LAZY/$ME). nether.im advertises org.matrix.simplified_msc3575, so we can test against it.
  • Extension MSCs (to-device, e2ee, account data, receipts) are still open; typing is merged.
  • Code written in this fork never goes to famedly or Commet. A human-owned upstream effort is being pursued separately; this fork can supply measurements, not code.

Plan

  1. Measure first: cold start and time-to-room-list on a big account with the current sync. Without numbers this is guesswork.
  2. Fork commetchat's SDK fork under nether.codes; implement the experimental dialect behind a flag; avoid changing the DatabaseApi surface so the drift database keeps working.
  3. Reference design: matrix-rust-sdk's room-list + encryption connections and its default required_state.
  4. Keep a fallback to /sync when the server lacks support.

Acceptance

On a large account, measurably faster cold start and room list, with E2EE (to-device and device lists) still working.


Filed with LLM assistance. This is a fork-only issue; never refile it on Commet's tracker.

## Why Cold start and room-list loading on large accounts are a real reason people bounce off Matrix. Sliding sync is the fix Element X uses. ## Constraints (checked 2026-10-03) - Commet pins its own fork of the Dart SDK at `upstream-v6.1.1` (`commetchat/matrix-dart-sdk`) plus its own drift database (`matrix-dart-sdk-drift-db`). famedly's upstream is at v13. Sliding sync landing upstream would not reach Commet until Commet rebases, which is the Commet maintainer's call. - The accepted MSC4186 shape (`/v4/sync`, `pos`/`timeout` in the body, `range`, include/exclude required_state) is not deployed by any server yet. Tuwunel, Synapse develop and Element X speak the experimental dialect (unstable path, `ranges`, tuple required_state with `$LAZY`/`$ME`). nether.im advertises `org.matrix.simplified_msc3575`, so we can test against it. - Extension MSCs (to-device, e2ee, account data, receipts) are still open; typing is merged. - Code written in this fork never goes to famedly or Commet. A human-owned upstream effort is being pursued separately; this fork can supply measurements, not code. ## Plan 1. Measure first: cold start and time-to-room-list on a big account with the current sync. Without numbers this is guesswork. 2. Fork commetchat's SDK fork under nether.codes; implement the experimental dialect behind a flag; avoid changing the `DatabaseApi` surface so the drift database keeps working. 3. Reference design: matrix-rust-sdk's `room-list` + `encryption` connections and its default required_state. 4. Keep a fallback to `/sync` when the server lacks support. ## Acceptance On a large account, measurably faster cold start and room list, with E2EE (to-device and device lists) still working. --- _Filed with LLM assistance. This is a fork-only issue; never refile it on Commet's tracker._
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robocub/vommet#5
No description provided.