commit ce8994a962f36f0d6d7d6e4c9054a97f1d96f9aa
Author: Coder Agent <coder@agents.omni>
Date: Wed Feb 18 14:07:49 2026
Limit recent-activity polling to 20 tasks
The recentActivityNewHandler filters tasks by updatedAt > sinceTime,
but on first load since=0 (epoch), so ALL tasks match. Add take 20
to cap the result count.
Task-Id: t-641
diff --git a/Omni/Task/Web/Handlers.hs b/Omni/Task/Web/Handlers.hs
index 39819884..fc391b31 100644
--- a/Omni/Task/Web/Handlers.hs
+++ b/Omni/Task/Web/Handlers.hs
@@ -396,7 +396,7 @@ server =
allTasks <- liftIO TaskCore.loadTasks
let sinceTime = maybe (posixSecondsToUTCTime 0) (posixSecondsToUTCTime <. fromIntegral) maybeSince
sortedTasks = List.sortBy (flip compare `on` TaskCore.taskUpdatedAt) allTasks
- newTasks = filter (\t -> TaskCore.taskUpdatedAt t > sinceTime) sortedTasks
+ newTasks = take 20 <| filter (\t -> TaskCore.taskUpdatedAt t > sinceTime) sortedTasks
newestTs = maybe maybeSince (Just <. taskToUnixTs) (head newTasks)
pure (RecentActivityNewPartial newTasks newestTs)