@@ -794,6 +794,35 @@ describe("SubAgentDirector incomplete-report wiring", () => {
794794 expect ( reply . content ) . toContain ( "read-1.ts" ) ;
795795 } ) ;
796796
797+ test ( "tool-using turns reset the tool-less narration count (CL-7788)" , async ( ) => {
798+ const director = new SubAgentDirector ( "system" , [ ] , undefined , 30 ) ;
799+ const caps = capabilities ( ) ;
800+
801+ await director . decide (
802+ inferenceDoneText ( "Still looking at the files..." ) ,
803+ state ,
804+ caps ,
805+ ) ;
806+ await director . decide ( inferenceDone ( [ "read-1" ] ) , state , caps ) ;
807+ await director . decide ( toolDone ( "read-1" ) , state , caps ) ;
808+ await director . decide ( inferenceDone ( [ "read-2" ] ) , state , caps ) ;
809+ await director . decide ( toolDone ( "read-2" ) , state , caps ) ;
810+
811+ const result = actions (
812+ await director . decide (
813+ inferenceDoneText ( "Still narrating, no envelope." ) ,
814+ state ,
815+ caps ,
816+ ) ,
817+ ) ;
818+ expect ( result ) . toContainEqual ( {
819+ type : "checkpoint" ,
820+ message : "subagent-incomplete-report-nudge" ,
821+ } ) ;
822+ expect ( result . some ( ( action ) => action . type === "reply" ) ) . toBe ( false ) ;
823+ expect ( result . some ( ( action ) => action . type === "infer" ) ) . toBe ( true ) ;
824+ } ) ;
825+
797826 test ( "tool-less turn with the four headings completes normally" , async ( ) => {
798827 const director = new SubAgentDirector ( "system" , [ ] , undefined , 30 ) ;
799828 const caps = capabilities ( ) ;
0 commit comments