@@ -223,6 +223,18 @@ test("a failed final gate requires a completed owner resolution and a fresh revi
223223 state = await lifecycle . resume ( project . root , reviewEvent ( state , "final-check" , "approved" , [ ] ) ) ;
224224 assert . equal ( state . tasks [ "final-check" ] . status , "reviewing" ) ;
225225 assert . equal ( await git ( project . root , "show" , "HEAD:repair.txt" ) , "fixed" ) ;
226+ const finalReviewer = state . tasks [ "final-check" ] . reviewer_agent ! ;
227+ const prompts = ( ) => herdr . calls
228+ . filter ( ( call ) => call . command === "herdr" && call . args [ 0 ] === "agent" && call . args [ 1 ] === "prompt" && call . args [ 2 ] === finalReviewer )
229+ . map ( ( call ) => JSON . parse ( call . args [ 3 ] ) ) ;
230+ const fullPrompt = prompts ( ) . find ( ( value ) => value . type === "auto_dag_final_check" ) ;
231+ assert . equal ( fullPrompt . attempt , state . tasks [ "final-check" ] . attempts ) ;
232+ assert . equal ( fullPrompt . review_round , state . tasks [ "final-check" ] . review_rounds ) ;
233+ state = await lifecycle . resume ( project . root ) ;
234+ const compactPrompt = prompts ( ) . at ( - 1 ) ;
235+ assert . equal ( compactPrompt . type , "auto_dag_resend" ) ;
236+ assert . equal ( compactPrompt . attempt , state . tasks [ "final-check" ] . attempts ) ;
237+ assert . equal ( compactPrompt . review_round , state . tasks [ "final-check" ] . review_rounds ) ;
226238
227239 state = await lifecycle . resume ( project . root , reviewEvent ( state , "final-check" , "approved" , [ ] ) ) ;
228240 assert . equal ( state . phase , "completed" ) ;
0 commit comments