@@ -193,13 +193,13 @@ export default function useDevMode(options: UseDevModeOptions): UseDevMode {
193193 options . onEnvLoaded ?.( keys ) ;
194194 } , [ env , options . onEnvLoaded ] ) ;
195195
196- // Server
197- const currentAgentRef = useRef < Client | undefined > ( undefined ) ;
196+ // Server - always use run agent for webhook/API handling
197+ const runAgentRef = useRef < Client | undefined > ( undefined ) ;
198198 const server = useMemo ( ( ) => {
199199 return createLocalServer ( {
200200 port : 0 ,
201201 dataDirectory : join ( directory , "data" ) ,
202- getAgent : ( ) => currentAgentRef . current ,
202+ getAgent : ( ) => runAgentRef . current ,
203203 } ) ;
204204 } , [ directory ] ) ;
205205
@@ -231,30 +231,26 @@ export default function useDevMode(options: UseDevModeOptions): UseDevMode {
231231 "00000000-0000-0000-0000-000000000000"
232232 ) ;
233233
234- // Update current agent ref
234+ // Update run agent ref for server/webhook handling
235+ useEffect ( ( ) => {
236+ runAgentRef . current = agent ;
237+ } , [ agent ] ) ;
238+
239+ // Update edit agent with user agent URL and handle cleanup
235240 useEffect ( ( ) => {
236241 if ( agent ) {
237242 setUserAgentUrl ( agent . baseUrl ) ;
238243 }
239244
240- if ( mode === "run" ) {
241- if ( agent ) {
242- currentAgentRef . current = agent ;
243- } else {
244- currentAgentRef . current = undefined ;
245- const manager = server . getChatManager ( chatId ) ;
246- manager ?. stopStreaming ( ) ;
247- }
248- } else if ( mode === "edit" ) {
249- if ( editAgent ) {
250- currentAgentRef . current = editAgent ;
251- } else {
252- currentAgentRef . current = undefined ;
253- const manager = server . getChatManager ( chatId ) ;
254- manager ?. stopStreaming ( ) ;
255- }
245+ // Stop streaming when agents become unavailable
246+ if ( mode === "run" && ! agent ) {
247+ const manager = server . getChatManager ( chatId ) ;
248+ manager ?. stopStreaming ( ) ;
249+ } else if ( mode === "edit" && ! editAgent ) {
250+ const manager = server . getChatManager ( chatId ) ;
251+ manager ?. stopStreaming ( ) ;
256252 }
257- } , [ agent , editAgent , mode , chatId , server ] ) ;
253+ } , [ agent , editAgent , mode , chatId , server , setUserAgentUrl ] ) ;
258254
259255 // Keep track of selected options in a ref so we can access it in serializeMessage
260256 const selectedOptionsRef = useRef < UIOptions | undefined > ( undefined ) ;
0 commit comments