@@ -511,23 +511,39 @@ export const addUserMessage = async (
511
511
export const getMessages = async ( threadId : string ) : Promise < Message [ ] > => {
512
512
const supabase = createClient ( ) ;
513
513
514
- const { data, error } = await supabase
515
- . from ( 'messages' )
516
- . select ( '*' )
517
- . eq ( 'thread_id' , threadId )
518
- . neq ( 'type' , 'cost' )
519
- . neq ( 'type' , 'summary' )
520
- . order ( 'created_at' , { ascending : true } ) ;
514
+ let allMessages : Message [ ] = [ ] ;
515
+ let from = 0 ;
516
+ const batchSize = 1000 ;
517
+ let hasMore = true ;
521
518
522
- if ( error ) {
523
- console . error ( 'Error fetching messages:' , error ) ;
524
- handleApiError ( error , { operation : 'load messages' , resource : `messages for thread ${ threadId } ` } ) ;
525
- throw new Error ( `Error getting messages: ${ error . message } ` ) ;
519
+ while ( hasMore ) {
520
+ const { data, error } = await supabase
521
+ . from ( 'messages' )
522
+ . select ( '*' )
523
+ . eq ( 'thread_id' , threadId )
524
+ . neq ( 'type' , 'cost' )
525
+ . neq ( 'type' , 'summary' )
526
+ . order ( 'created_at' , { ascending : true } )
527
+ . range ( from , from + batchSize - 1 ) ;
528
+
529
+ if ( error ) {
530
+ console . error ( 'Error fetching messages:' , error ) ;
531
+ handleApiError ( error , { operation : 'load messages' , resource : `messages for thread ${ threadId } ` } ) ;
532
+ throw new Error ( `Error getting messages: ${ error . message } ` ) ;
533
+ }
534
+
535
+ if ( data && data . length > 0 ) {
536
+ allMessages = allMessages . concat ( data ) ;
537
+ from += batchSize ;
538
+ hasMore = data . length === batchSize ;
539
+ } else {
540
+ hasMore = false ;
541
+ }
526
542
}
527
543
528
- console . log ( '[API] Messages fetched:' , data ) ;
544
+ console . log ( '[API] Messages fetched count :' , allMessages . length ) ;
529
545
530
- return data || [ ] ;
546
+ return allMessages ;
531
547
} ;
532
548
533
549
// Agent APIs
0 commit comments