feat(matrix): Matrix rooms as Talk conversations - #19214
Draft
karlitschek wants to merge 1 commit into
Draft
Conversation
Talk can now act as a Matrix client: users link a Matrix account on an admin-configured homeserver and their Matrix rooms appear as ordinary Talk conversations - in the web UI as well as in the unchanged mobile and desktop apps. Protocol layer: new standalone, framework-free library nextcloud/matrix-client-php under matrix-client/ (PSR-18/17, no OCP imports, own test suite) including a pure-PHP implementation of the Matrix end-to-end encryption stack (Olm, Megolm, SAS verification, key backup) that is verified byte-for-byte against Element's vodozemac in an interop harness. Talk integration under lib/Matrix/: background /sync with per-account locks and opportunistic foreground sync, ingestion of messages, state, membership and power levels into Talk rooms/attendees (new actor type 'matrix', object type 'matrix'), decrypt-on-ingest with placeholder replacement, key sharing/requests and device verification (emoji), room key backup restore, media proxy with thumbnails and Save-to-Nextcloud, uploads as (encrypted) Matrix attachments, reactions/edits/deletions/ threads/read receipts in both directions, room creation/DM/join-by-address and the public room directory, invitations through the existing federation invitation API, per-room capability detection exposed as matrixCapabilities, admin settings (homeservers, policies, sync health), occ commands (talk:matrix:*) and documentation (docs/matrix.md, full specification in docs/matrix/SPEC.md). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Member
Author
|
I only wanted to play around with this as an experiment. I didn't expect that it just works. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Talk can act as a Matrix client: users link a Matrix account on an admin-configured homeserver and their Matrix rooms appear as ordinary Talk conversations β in the web UI as well as in the unchanged mobile and desktop apps (Matrix conversations are regular conversations at the OCS API level, plus additive
matrixRoomId/matrixCapabilitiesfields).Protocol layer
nextcloud/matrix-client-phpundermatrix-client/(PSR-18/17/3/20, noOCPimports β CI-enforced, own test suite, works against a plain Synapse:examples/echo-bot.php)tests/interop/vodozemac_check.py, 39 checks)Talk integration (
lib/Matrix/)/syncper linked account (per-account locks, adaptive interval) + opportunistic foreground sync while a conversation is viewed; history backfill with lazy scroll-backmatrixfor members without a Nextcloud account (names, avatars, mentions)#alias,!id, matrix.to,matrix:), public room directory, knock; invitations reuse the existing federation-invitation APItalk:matrix:*), docs (docs/matrix.md) and the full specification incl. decision log (docs/matrix/SPEC.md,docs/matrix/PROMPTS.md)Test coverage
tests/php/Matrix/(17 tests)Status
π§ Draft. Working end-to-end against matrix.org (36 rooms, E2EE, media) on our devel instance. Open points are listed in the spec's implementation-status section (Behat/Synapse CI wiring, OpenAPI regeneration, mobile smoke test, appservice push source, library extraction to its own repository).
π€ Generated with Claude Code