@@ -1328,11 +1328,9 @@ handleListMessages = \offset authorization clientIp respond -> do
1328 {messages: [], authorized: True {}, count: 0, error: "rate_limited"} (\pubkey -> do
1328 {messages: [], authorized: True {}, count: 0, error: "rate_limited"} (\pubkey -> do
1329 msgs <- *messages
1329 msgs <- *messages
1330 let myMsgs = sortBy (\m -> m.receivedAt) (filter msgs (\m -> m.toKey == pubkey && m.expiresAt > t))
1330 let myMsgs = sortBy (\m -> m.receivedAt) (filter msgs (\m -> m.toKey == pubkey && m.expiresAt > t))
1331− let total = count myMsgs
1331+ let after = drop (clamp 0 (count myMsgs) offset) myMsgs
1332− let effectiveOffset = clamp 0 total offset
1333− let after = mapWhere (withIndex myMsgs) (\p -> p.i >= effectiveOffset) (\p -> p.v)
1334 let result = pluck (takeRelation maxPollEvents after) (\m -> {messageId: m.messageId, timestamp: m.timestamp, receivedAt: m.receivedAt})
1332 let result = pluck (takeRelation maxPollEvents after) (\m -> {messageId: m.messageId, timestamp: m.timestamp, receivedAt: m.receivedAt})
1335− yield (respond {messages: result, authorized: True {}, count: total, error: ""}))
1333+ yield (respond {messages: result, authorized: True {}, count: count myMsgs, error: ""}))
1337handleDeleteMessages = \messageIds authorization clientIp respond -> do
1335handleDeleteMessages = \messageIds authorization clientIp respond -> do
1338 t <- now
1336 t <- now
@@ -1562,8 +1560,7 @@ handleFederationBatchCancel = \cancels fromServer requestTimestamp correlationId
1562 case findFirst msgs (\m -> matches m && m.originServer == fromServer) of
1560 case findFirst msgs (\m -> matches m && m.originServer == fromServer) of
1563 Nothing {} -> yield False
1561 Nothing {} -> yield False
1564 Just {} -> do
1562 Just {} -> do
1565− set *messages = removeWhere msgs matches
1563+ _ <- applyCancel msgs matches e.toKey e.messageId t
1566− pruneRef forwards (\f -> not (matches f))
1567 yield True
1564 yield True
1568 yield {messageId: e.messageId, cancelled: cancelled})
1565 yield {messageId: e.messageId, cancelled: cancelled})
1569 yield (respond {ok: True {}, error: "", results: results, retryAfterMs: 0}))
1566 yield (respond {ok: True {}, error: "", results: results, retryAfterMs: 0}))