@@ -285,6 +285,7 @@ describe("AgentService", () => {
285285 lastActivityAt : Date . now ( ) ,
286286 config : { } ,
287287 promptPending : false ,
288+ inFlightMcpToolCalls : new Map ( ) ,
288289 ...overrides ,
289290 } ) ;
290291 }
@@ -375,6 +376,34 @@ describe("AgentService", () => {
375376 expect ( getIdleTimeouts ( service ) . has ( "run-1" ) ) . toBe ( true ) ;
376377 } ) ;
377378
379+ it ( "reschedules when inFlightMcpToolCalls is non-empty at timeout" , ( ) => {
380+ const toolCalls = new Map ( [ [ "tool-1" , "some-mcp-tool" ] ] ) ;
381+ injectSession ( service , "run-1" , { inFlightMcpToolCalls : toolCalls } ) ;
382+ service . recordActivity ( "run-1" ) ;
383+
384+ vi . advanceTimersByTime ( 15 * 60 * 1000 ) ;
385+
386+ expect ( service . emit ) . not . toHaveBeenCalledWith (
387+ "session-idle-killed" ,
388+ expect . anything ( ) ,
389+ ) ;
390+ expect ( getIdleTimeouts ( service ) . has ( "run-1" ) ) . toBe ( true ) ;
391+ } ) ;
392+
393+ it ( "kills session when inFlightMcpToolCalls is empty" , ( ) => {
394+ injectSession ( service , "run-1" , {
395+ inFlightMcpToolCalls : new Map ( ) ,
396+ } ) ;
397+ service . recordActivity ( "run-1" ) ;
398+
399+ vi . advanceTimersByTime ( 15 * 60 * 1000 ) ;
400+
401+ expect ( service . emit ) . toHaveBeenCalledWith (
402+ "session-idle-killed" ,
403+ expect . objectContaining ( { taskRunId : "run-1" } ) ,
404+ ) ;
405+ } ) ;
406+
378407 it ( "checkIdleDeadlines kills expired sessions on resume" , ( ) => {
379408 injectSession ( service , "run-1" ) ;
380409 service . recordActivity ( "run-1" ) ;
0 commit comments