Files
Warp/apps
tajniak81andClaude Opus 5.5 7d13d4fcfd Mobile: Simplified Sliding Sync (MSC4186)
The famedly SDK only knows /sync, but its sync loop asks Client.sync for
each response. WarpClient answers that with a sliding sync request and
rewrites the response into the /sync shape (slidingToSyncJson), so
decryption, the database, timelines and notifications work unchanged.

- Two lists, rooms and direct chats (with all their members, so DM names
  come out right), over a window that starts at the 20 most recent rooms
  for a quick first screen and widens to every room (up to 1000).
- The state the screens and encryption need, $LAZY members and $ME, and
  call memberships; timeline_limit 10, with prev_batch for history.
- Extensions: to_device (its since rides in the token), e2ee, account
  data, receipts, typing.
- Rooms the user left while the connection was open become leaves;
  invite_state and knock_state become invites and knocks.
- The SDK's token is ss1|<pos>|<to-device since>. A classic token, none, or
  M_UNKNOWN_POS starts a new connection; a server without
  org.matrix.simplified_msc3575 gets plain /sync.

Tested against Warp: first sync, encryption setup (account data and
oneShotSync through the connection), live messages, unread counts and
typing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 23:22:01 +02:00
..

Clients

Directory What State
ui/ shared Vue 3 + Tailwind design system: tokens, fonts, icons, components in use by admin and web
admin/ admin web panel, served by its own optional warp-admin binary done for the current admin API
web/ web client (Vue SPA on matrix-js-sdk), served by its own optional warp-web binary rooms, timeline, sending text and files, invites; E2EE next
desktop/ Wails v3 shell reusing the web frontend next: web has a timeline
mobile/ Flutter app on the famedly Matrix SDK, Android first sign-in, rooms, timeline, files, E2EE with verification, push

The frontend packages are a pnpm workspace (pnpm-workspace.yaml at the repository root); the Go hosts join go.work.

pnpm install
pnpm admin:dev
pnpm web:dev