@@ -41,10 +41,6 @@ export function useThreadData(threadId: string, projectId: string): UseThreadDat
41
41
const agentRunsCheckedRef = useRef ( false ) ;
42
42
const hasInitiallyScrolled = useRef < boolean > ( false ) ;
43
43
44
- // Store messages by thread ID to preserve across navigation
45
- const threadMessagesRef = useRef < Map < string , UnifiedMessage [ ] > > ( new Map ( ) ) ;
46
- // Track the last active thread id to correctly cache on navigation
47
- const lastThreadIdRef = useRef < string > ( threadId ) ;
48
44
49
45
const threadQuery = useThreadQuery ( threadId ) ;
50
46
const messagesQuery = useMessagesQuery ( threadId ) ;
@@ -56,28 +52,13 @@ export function useThreadData(threadId: string, projectId: string): UseThreadDat
56
52
useEffect ( ( ) => {
57
53
let isMounted = true ;
58
54
59
- // Store current messages before switching threads using the actual last thread id
60
- const previousThreadId = lastThreadIdRef . current ;
61
- if ( previousThreadId && previousThreadId !== threadId && messages . length > 0 ) {
62
- threadMessagesRef . current . set ( previousThreadId , [ ...messages ] ) ;
63
- }
64
-
65
55
// Reset refs when thread changes
66
- // (debug logs removed)
67
56
agentRunsCheckedRef . current = false ;
68
57
messagesLoadedRef . current = false ;
69
58
initialLoadCompleted . current = false ;
70
59
71
- // Restore cached messages for this thread if available
72
- const cachedMessages = threadMessagesRef . current . get ( threadId ) ;
73
- if ( cachedMessages && cachedMessages . length > 0 ) {
74
- setMessages ( cachedMessages ) ;
75
- } else {
76
- setMessages ( [ ] ) ;
77
- }
78
-
79
- // Update last thread id tracker to the new thread
80
- lastThreadIdRef . current = threadId ;
60
+ // Clear messages on thread change; fresh data will set messages
61
+ setMessages ( [ ] ) ;
81
62
82
63
async function initializeData ( ) {
83
64
if ( ! initialLoadCompleted . current ) setIsLoading ( true ) ;
@@ -136,9 +117,7 @@ export function useThreadData(threadId: string, projectId: string): UseThreadDat
136
117
} ) ;
137
118
138
119
setMessages ( mergedMessages ) ;
139
- // Update cache for this thread
140
- threadMessagesRef . current . set ( threadId , [ ...mergedMessages ] ) ;
141
- // (debug logs removed)
120
+ // Messages set only from server merge; no cross-thread cache
142
121
messagesLoadedRef . current = true ;
143
122
144
123
if ( ! hasInitiallyScrolled . current ) {
@@ -257,9 +236,7 @@ export function useThreadData(threadId: string, projectId: string): UseThreadDat
257
236
return aTime - bTime ;
258
237
} ) ;
259
238
260
- // Update cache for this thread
261
- threadMessagesRef . current . set ( threadId , [ ...merged ] ) ;
262
- // (debug logs removed)
239
+ // Messages set only from server merge; no cross-thread cache
263
240
return merged ;
264
241
} ) ;
265
242
} else {
@@ -268,19 +245,9 @@ export function useThreadData(threadId: string, projectId: string): UseThreadDat
268
245
}
269
246
} , [ messagesQuery . data , messagesQuery . status , isLoading , messages . length , threadId ] ) ;
270
247
271
- // Wrap setMessages to also update the cache
272
- const setMessagesWithCache = ( messagesOrUpdater : UnifiedMessage [ ] | ( ( prev : UnifiedMessage [ ] ) => UnifiedMessage [ ] ) ) => {
273
- setMessages ( ( prev ) => {
274
- const newMessages = typeof messagesOrUpdater === 'function' ? messagesOrUpdater ( prev ) : messagesOrUpdater ;
275
- // Update cache whenever messages change
276
- threadMessagesRef . current . set ( threadId , [ ...newMessages ] ) ;
277
- return newMessages ;
278
- } ) ;
279
- } ;
280
-
281
248
return {
282
249
messages,
283
- setMessages : setMessagesWithCache ,
250
+ setMessages,
284
251
project,
285
252
sandboxId,
286
253
projectName,
0 commit comments