diff --git a/lib/shared/farcaster/farcaster-hooks.js b/lib/shared/farcaster/farcaster-hooks.js --- a/lib/shared/farcaster/farcaster-hooks.js +++ b/lib/shared/farcaster/farcaster-hooks.js @@ -48,6 +48,7 @@ import sleep from '../../utils/sleep.js'; import { conversationIDFromFarcasterThreadID, + farcasterThreadIDFromConversationID, userIDFromFID, } from '../id-utils.js'; @@ -502,7 +503,7 @@ while (true) { try { - let input = { limit: 20, category }; + let input = { limit: 50, category }; if (currentCursor) { input = { ...input, @@ -587,6 +588,16 @@ return; } + const threadIDs = new Set(Object.keys(threadInfos)); + const newConversations = new Set( + conversations.filter( + conversationID => + !threadIDs.has( + farcasterThreadIDFromConversationID(conversationID), + ), + ), + ); + onProgress?.(0, conversations.length); await processInBatchesWithReduxBatching( conversations, @@ -594,7 +605,9 @@ (conversationID, batchedUpdates) => fetchConversationWithMessages( conversationID, - limit, + newConversations.has(conversationID) + ? Number.POSITIVE_INFINITY + : limit, batchedUpdates, ), dispatch, @@ -613,6 +626,7 @@ fetchInboxes, removeDeadThreads, setFarcasterDCsLoaded, + threadInfos, ], ); }