File tree Expand file tree Collapse file tree
Calamari.Tests/AiAgent/ClaudeCodeBehaviour
Calamari/AiAgent/ClaudeCodeBehaviour Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -107,6 +107,22 @@ public void RunSummaryAttributes_ArePreservedOnTheMessage()
107107 msg . GetValue ( ClaudeCodeServiceMessages . Usage . ModelUsageAttribute ) . Should ( ) . NotBeNull ( ) ;
108108 }
109109
110+ [ Test ]
111+ public void RunSummaryWithoutModelUsage_StillCarriesAnEmptyModelUsageAttribute ( )
112+ {
113+ // The server requires the attribute; a run that fails before any model round-trip has none
114+ reporter . SetRunSummary ( new ClaudeCodeRunSummary
115+ {
116+ TotalCostUsd = 0 ,
117+ DurationMs = 1234 ,
118+ NumTurns = 0 ,
119+ } ) ;
120+
121+ reporter . WriteServiceMessage ( log ) ;
122+
123+ DeserializeModelUsage ( ) . Should ( ) . BeEmpty ( ) ;
124+ }
125+
110126 ClaudeCodeModelUsage [ ] DeserializeModelUsage ( )
111127 {
112128 var msg = log . ServiceMessages . Single ( m => m . Name == ClaudeCodeServiceMessages . Usage . Name ) ;
Original file line number Diff line number Diff line change @@ -44,14 +44,13 @@ public void WriteServiceMessage(ILog log)
4444 {
4545 if ( modelUsage . Count == 0 && summaryProperties . Count == 0 )
4646 return ;
47+
48+ if ( modelUsage . Count == 0 )
49+ log . Verbose ( "Claude Code reported no per-model usage for this run." ) ;
4750
4851 var properties = new Dictionary < string , string > ( summaryProperties ) ;
49-
50- if ( modelUsage . Count > 0 )
51- {
52- var usageList = new List < ClaudeCodeModelUsage > ( modelUsage . Values ) ;
53- properties [ ClaudeCodeServiceMessages . Usage . ModelUsageAttribute ] = JsonSerializer . Serialize ( usageList ) ;
54- }
52+ var usageList = new List < ClaudeCodeModelUsage > ( modelUsage . Values ) ;
53+ properties [ ClaudeCodeServiceMessages . Usage . ModelUsageAttribute ] = JsonSerializer . Serialize ( usageList ) ;
5554
5655 log . WriteServiceMessage ( new ServiceMessage ( ClaudeCodeServiceMessages . Usage . Name , properties ) ) ;
5756 }
You can’t perform that action at this time.
0 commit comments