feat: Experimental Matrix Support + Configuration for Native Rocket.Chat Homeserver Integration #1131
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.
Closes #1029
Description
This PR introduces experimental support for connecting EmbeddedChat directly to a Matrix homeserver, including the new Rocket.Chat native Matrix homeserver (see RocketChat/homeserver).
Key goals achieved:
This is marked experimental due to partial feature parity (many Rocket.Chat-specific features like edits, deletes, threads, pinning, reactions, search, etc., are stubbed or return "not supported" in Matrix mode). Future iterations can close the gap.
Acceptance Criteria Fulfillment
modeprop ('rocketchat'|'matrix')MatrixProviderusingmatrix-js-sdkChanges Summary
modeprop on<EmbeddedChat />(defaults to'rocketchat')mode="matrix", requireshost(Matrix homeserver URL) androomIdMatrixProviderclass implementingIChatProviderinterface (590+ lines)matrix-js-sdk@^39.3.0-rc.0for client creation, sync, room join, timeline listening, sending messages, typing@embeddedchat/authbut passes token to Matrix client)IChatProviderinterface for clean abstraction between Rocket.Chat and Matrix implementationsEmbeddedChatApibased onmodeChatInputfor Matrix mode (relies on real-time timeline events to avoid duplicates)matrix-js-sdk@^39.3.0-rc.0Limitations (Experimental Phase)
How to Test
modeprop ormode="rocketchat") → should work as before