From aae5df728cc844a27d2d3539f1b342d2a7d8c927 Mon Sep 17 00:00:00 2001 From: luccast <2213102+luccast@users.noreply.github.com> Date: Mon, 26 Jan 2026 22:53:52 -0500 Subject: [PATCH] Fix duplicate messages on hydration Use addAction() during hydration to apply aggregation logic --- src/integrations/clawdbot/collections.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/integrations/clawdbot/collections.ts b/src/integrations/clawdbot/collections.ts index 7246a0b..9531be9 100644 --- a/src/integrations/clawdbot/collections.ts +++ b/src/integrations/clawdbot/collections.ts @@ -172,12 +172,10 @@ export function hydrateFromServer( sessionsCollection.insert(session) } - // Insert all actions (rebuild runSessionMap as we go) - for (const action of actions) { - // Learn runId → sessionKey mapping - if (action.sessionKey && !action.sessionKey.includes('lifecycle')) { - runSessionMap.set(action.runId, action.sessionKey) - } - actionsCollection.insert(action) + // Replay actions through addAction to apply aggregation logic + // Sort by timestamp to ensure correct order + const sortedActions = [...actions].sort((a, b) => a.timestamp - b.timestamp) + for (const action of sortedActions) { + addAction(action) } }