From 7cbc2ee385322f20b6e63200013d47b6afc1f08e Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 22 Oct 2025 07:03:10 +0000 Subject: [PATCH] Fix the accidentally dual-keyspaced cf from conduit. Signed-off-by: Jason Volk --- src/database/maps.rs | 4 ++++ src/service/rooms/user/mod.rs | 3 ++- src/service/sync/mod.rs | 3 +++ src/service/sync/watch.rs | 5 +++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/database/maps.rs b/src/database/maps.rs index 2347326e..338cfe2f 100644 --- a/src/database/maps.rs +++ b/src/database/maps.rs @@ -200,6 +200,10 @@ pub(super) static MAPS: &[Descriptor] = &[ name: "roomuserid_lastprivatereadupdate", ..descriptor::RANDOM_SMALL }, + Descriptor { + name: "roomuserid_lastnotificationread", + ..descriptor::RANDOM_SMALL + }, Descriptor { name: "roomuserid_leftcount", val_size_hint: Some(8), diff --git a/src/service/rooms/user/mod.rs b/src/service/rooms/user/mod.rs index 68b29ca2..87ca2780 100644 --- a/src/service/rooms/user/mod.rs +++ b/src/service/rooms/user/mod.rs @@ -24,7 +24,8 @@ impl crate::Service for Service { db: Data { userroomid_notificationcount: args.db["userroomid_notificationcount"].clone(), userroomid_highlightcount: args.db["userroomid_highlightcount"].clone(), - roomuserid_lastnotificationread: args.db["userroomid_highlightcount"].clone(), + roomuserid_lastnotificationread: args.db["roomuserid_lastnotificationread"] + .clone(), }, services: args.services.clone(), })) diff --git a/src/service/sync/mod.rs b/src/service/sync/mod.rs index c37d2ade..a7b3eaac 100644 --- a/src/service/sync/mod.rs +++ b/src/service/sync/mod.rs @@ -37,6 +37,7 @@ pub struct Data { roomusertype_roomuserdataid: Arc, readreceiptid_readreceipt: Arc, userid_lastonetimekeyupdate: Arc, + roomuserid_lastnotificationread: Arc, } #[derive(Debug, Default)] @@ -81,6 +82,8 @@ impl crate::Service for Service { roomusertype_roomuserdataid: args.db["roomusertype_roomuserdataid"].clone(), readreceiptid_readreceipt: args.db["readreceiptid_readreceipt"].clone(), userid_lastonetimekeyupdate: args.db["userid_lastonetimekeyupdate"].clone(), + roomuserid_lastnotificationread: args.db["roomuserid_lastnotificationread"] + .clone(), }, services: args.services.clone(), connections: Default::default(), diff --git a/src/service/sync/watch.rs b/src/service/sync/watch.rs index 699f9382..69fe1616 100644 --- a/src/service/sync/watch.rs +++ b/src/service/sync/watch.rs @@ -85,6 +85,11 @@ where let roomuser_prefix = (room_id, user_id); let typing_room_id = room_id.to_owned(); let watchers = [ + // Notification clearance + self.db + .roomuserid_lastnotificationread + .watch_prefix(&roomuser_prefix) + .boxed(), // Key changes self.db .keychangeid_userid