CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Test (windows-latest) (push) Canceled after 0s
CI / Storage tests on PostgreSQL (push) Canceled after 0s
CI / Complement (federation off) (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
CI / Smoke test the binary (push) Canceled after 0s
CI / Admin panel (push) Canceled after 0s
CI / Web client (push) Canceled after 0s
Every call in the web client now goes through MatrixRTC with a LiveKit
SFU, the model Element Call and Element X use; the legacy 1:1 m.call.*
calls are gone. In a room of two the other person is rung and can answer
or decline; in a bigger room a banner offers to join the call. Calls show
a grid of participant tiles with mute, camera, screen sharing and leave,
and media is end-to-end encrypted in encrypted rooms.
Server:
- MSC4140 delayed events (send/state with a delay, plus the
delayed_events list/restart/cancel/send API), stored and scheduled, so
a member whose client drops off is taken out of the call.
- POST /user/{userId}/openid/request_token, which lk-jwt-service uses to
hand out LiveKit tokens.
- org.matrix.msc4143.rtc_foci in /.well-known/matrix/client, configured
under client_api.rtc.
- Room presets let members send call membership state.
- Migration 0014 for both SQL dialects.
Deploy: LiveKit and lk-jwt-service in compose (calls.yml) and the helm
chart. Docs: docs/calls.md, configuration and deployment.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Documentation
| Document | What |
|---|---|
| configuration.md | every setting, and its environment variable |
| development.md | building, testing, Complement, adding a migration |
| event-core.md | internal/matrix: canonical JSON, events, auth rules, state resolution |
| rooms.md | internal/roomserver: the input pipeline, room storage, known gaps |
| sync.md | internal/syncapi: stream tokens, long polling, filters, the ephemeral streams, Simplified Sliding Sync |
| relations.md | threads, edits, reactions and references: /relations, /threads and unsigned.m.relations |
| spaces.md | /hierarchy across servers, and room_summary |
| search.md | /search on FTS5 and tsvector |
| federation.md | the Server-Server API: discovery, keys, taking in events, joins across servers, the outbound queue, the switch |
| media.md | internal/mediaapi: uploads, downloads, thumbnails, other servers' media, where the files go |
| e2ee.md | internal/keyserver: device and one-time keys, cross-signing, device list tracking, key backup |
| calls.md | voice and video calls with MatrixRTC and LiveKit: ringing, delayed events, OpenID, the JWT service, deploying it |
| push.md | internal/pushrules and internal/pushserver: push rules, notification counts, pushers, the push gateway client |
| appservices.md | internal/appservice: registration files, namespaces, acting as users, delivering events to bridges |
| admin-api.md | /_warp/admin/v1: the operator API behind the admin panel |
| deployment.md | storage drivers, the image, Compose, Helm, metrics and the dashboard, tracing, load testing |
The design and roadmap are in PLAN.md at the repository root.