From 905a9a0bee337cc5240a90d1ce0dc277992b49ea Mon Sep 17 00:00:00 2001 From: Ricardo Garim Date: Thu, 2 Oct 2025 18:21:31 -0300 Subject: [PATCH 1/2] import types from federation-sdk --- .../federation-matrix/src/FederationMatrix.ts | 14 ++------------ .../src/types/IFederationMatrixService.ts | 4 ++-- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/ee/packages/federation-matrix/src/FederationMatrix.ts b/ee/packages/federation-matrix/src/FederationMatrix.ts index 03136b2775a68..fdf2a1045e921 100644 --- a/ee/packages/federation-matrix/src/FederationMatrix.ts +++ b/ee/packages/federation-matrix/src/FederationMatrix.ts @@ -729,18 +729,8 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS } } - async getEventById(eventId: EventID): Promise { - if (!this.homeserverServices) { - this.logger.warn('Homeserver services not available'); - return null; - } - - try { - return await this.homeserverServices.event.getEventById(eventId); - } catch (error) { - this.logger.error('Failed to get event by ID:', error); - throw error; - } + async getEventById(eventId: EventID) { + return this.homeserverServices.event.getEventById(eventId); } async leaveRoom(roomId: string, user: IUser): Promise { diff --git a/packages/core-services/src/types/IFederationMatrixService.ts b/packages/core-services/src/types/IFederationMatrixService.ts index 889dee75c768e..fcf0278299ebc 100644 --- a/packages/core-services/src/types/IFederationMatrixService.ts +++ b/packages/core-services/src/types/IFederationMatrixService.ts @@ -1,5 +1,5 @@ import type { IMessage, IRoomFederated, IRoomNativeFederated, IUser } from '@rocket.chat/core-typings'; -import type { EventID, PduForType } from '@rocket.chat/federation-sdk'; +import type { EventID, PduForType, EventStore } from '@rocket.chat/federation-sdk'; export interface IFederationMatrixService { createRoom(room: IRoomFederated, owner: IUser, members: string[]): Promise<{ room_id: string; event_id: string }>; @@ -9,7 +9,7 @@ export interface IFederationMatrixService { deleteMessage(matrixRoomId: string, message: IMessage): Promise; sendReaction(messageId: string, reaction: string, user: IUser): Promise; removeReaction(messageId: string, reaction: string, user: IUser, oldMessage: IMessage): Promise; - getEventById(eventId: string): Promise; + getEventById(eventId: string): Promise; leaveRoom(rid: IRoomFederated['_id'], user: IUser): Promise; kickUser(room: IRoomNativeFederated, removedUser: IUser, userWhoRemoved: IUser): Promise; updateMessage(room: IRoomNativeFederated, message: IMessage): Promise; From 56b0c9bf2effe0f0afe835cfddb6d9205ab9a145 Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Wed, 8 Oct 2025 17:43:19 -0300 Subject: [PATCH 2/2] fix(federation-matrix): correct event type check for message events in message handler --- ee/packages/federation-matrix/src/events/message.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/packages/federation-matrix/src/events/message.ts b/ee/packages/federation-matrix/src/events/message.ts index e56cdb40a2a23..e487f17b464ac 100644 --- a/ee/packages/federation-matrix/src/events/message.ts +++ b/ee/packages/federation-matrix/src/events/message.ts @@ -276,7 +276,7 @@ export function message(emitter: Emitter, serverName: } const messageEvent = await FederationMatrix.getEventById(redactedEventId); - if (!messageEvent || messageEvent.type !== 'm.room.message') { + if (!messageEvent || messageEvent.event.type !== 'm.room.message') { logger.debug(`Event ${redactedEventId} is not a message event`); return; }