From 1bd5f28c6d8c93ad66fe6c559458f2f12f62c298 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Tue, 10 Mar 2026 17:18:00 -0400 Subject: [PATCH] Fix read receipts sometimes not correctly applying --- lib/controllers/client_controller.dart | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/controllers/client_controller.dart b/lib/controllers/client_controller.dart index 780439d..4569a3f 100644 --- a/lib/controllers/client_controller.dart +++ b/lib/controllers/client_controller.dart @@ -201,11 +201,15 @@ class ClientController extends AsyncNotifier { _sendCommand("report_event", report.toJson()); Future markRead(Room room) async { - if (room.events.isEmpty || room.metadata == null) return; + final event = room.events.firstWhereOrNull( + (event) => event.rowId == room.timeline.last.eventRowId, + ); + if (event == null || room.metadata == null) return; + await _sendCommand("mark_read", { - "room_id": room.metadata?.id, + "room_id": room.metadata!.id, "receipt_type": "m.read", - "event_id": room.events.last.eventId, + "event_id": event.eventId, }); }