@@ -1160,6 +1160,27 @@ test("buildOpenAIMessages preserves a real failed tool result", () => {
11601160 assert . doesNotMatch ( openAIMessages [ 1 ] ?. content ?? "" , / P r e v i o u s t o o l c a l l d i d n o t c o m p l e t e / ) ;
11611161} ) ;
11621162
1163+ test ( "UpdatePlan tool params only show explanation when provided" , ( ) => {
1164+ const manager = createSessionManager ( process . cwd ( ) , "machine-id-update-plan-params" ) ;
1165+ const plan = "## Task List\n\n- [ ] Inspect project" ;
1166+
1167+ const withExplanation = ( manager as any ) . buildToolMessage (
1168+ "session-1" ,
1169+ "call-plan-1" ,
1170+ JSON . stringify ( { ok : true , name : "UpdatePlan" , output : "Plan updated." } ) ,
1171+ { name : "UpdatePlan" , arguments : JSON . stringify ( { plan, explanation : "Start planning" } ) }
1172+ ) as SessionMessage ;
1173+ const withoutExplanation = ( manager as any ) . buildToolMessage (
1174+ "session-1" ,
1175+ "call-plan-2" ,
1176+ JSON . stringify ( { ok : true , name : "UpdatePlan" , output : "Plan updated." } ) ,
1177+ { name : "UpdatePlan" , arguments : JSON . stringify ( { plan } ) }
1178+ ) as SessionMessage ;
1179+
1180+ assert . equal ( withExplanation . meta ?. paramsMd , "Start planning" ) ;
1181+ assert . equal ( withoutExplanation . meta ?. paramsMd , "" ) ;
1182+ } ) ;
1183+
11631184test ( "buildOpenAIMessages repairs mixed missing duplicate and orphan tool messages" , ( ) => {
11641185 const manager = createSessionManager ( process . cwd ( ) , "machine-id-mixed-tool-badcase" ) ;
11651186 const assistantMessage = ( manager as any ) . buildAssistantMessage (
0 commit comments