@@ -172,9 +172,10 @@ export function useObjectChat(options: UseObjectChatOptions = {}): UseObjectChat
172172 content : msg . content ,
173173 } ) ) ;
174174
175- // --- @ai-sdk/react useChat (always called, but only active in API mode) ---
175+ // --- @ai-sdk/react useChat (always called to satisfy Rules of Hooks, but only active in API mode) ---
176+ // When in local mode, useChat is initialized with minimal config and its results are ignored.
176177 const chatResult = useChat ( {
177- api : isApiMode ? api ! : '/noop' ,
178+ api : isApiMode ? api ! : '/api/ noop' ,
178179 initialMessages : isApiMode && aiInitialMessages . length > 0 ? aiInitialMessages : undefined ,
179180 headers : isApiMode ? {
180181 ...headers ,
@@ -232,7 +233,7 @@ export function useObjectChat(options: UseObjectChatOptions = {}): UseObjectChat
232233 streaming : isLoading && msg . id === aiMessages [ aiMessages . length - 1 ] ?. id && msg . role === 'assistant' ,
233234 } ) ) ;
234235
235- const sendMessage = ( content : string ) => {
236+ const sendMessage = useCallback ( ( content : string ) => {
236237 const trimmed = content . trim ( ) ;
237238 if ( ! trimmed ) return ;
238239
@@ -251,11 +252,11 @@ export function useObjectChat(options: UseObjectChatOptions = {}): UseObjectChat
251252
252253 append ( newMsg ) ;
253254 onSend ?.( trimmed , nextMessages ) ;
254- } ;
255+ } , [ append , onSend , messages ] ) ;
255256
256- const clear = ( ) => {
257+ const clear = useCallback ( ( ) => {
257258 setMessages ( [ ] ) ;
258- } ;
259+ } , [ setMessages ] ) ;
259260
260261 return {
261262 messages,
0 commit comments