Skip to content

Commit b5b27d2

Browse files
committed
fix(claude): keep sidechain metadata in daily progress
Propagate isSidechain from Claude AgentProgress lines into the daily summary path instead of dropping it during normalization. This closes the CodeRabbit review gap and keeps the sidechain dedupe behaviour consistent for both direct and AgentProgress daily records.
1 parent 909fb98 commit b5b27d2

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

  • rust/crates/ccusage/src/adapter/claude

‎rust/crates/ccusage/src/adapter/claude/daily.rs‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ impl DailyUsageLine {
149149
session_id: None,
150150
cost_usd: entry.data.message.cost_usd,
151151
request_id: entry.data.message.request_id,
152-
is_sidechain: None,
152+
is_sidechain: entry.data.message.is_sidechain,
153153
},
154154
}
155155
}
@@ -173,6 +173,7 @@ struct DailyAgentProgressMessage {
173173
#[serde(rename = "costUSD")]
174174
cost_usd: Option<f64>,
175175
request_id: Option<String>,
176+
is_sidechain: Option<bool>,
176177
}
177178

178179
#[derive(Debug, Deserialize)]
@@ -546,6 +547,17 @@ mod tests {
546547
assert_eq!(deduped[1].usage.cache_read_input_tokens, 700);
547548
}
548549

550+
#[test]
551+
fn propagates_sidechain_metadata_from_agent_progress_lines() {
552+
let data = serde_json::from_str::<super::DailyUsageLine>(
553+
r#"{"data":{"message":{"timestamp":"2026-03-29T07:00:00.000Z","requestId":"req-sidechain","isSidechain":true,"message":{"usage":{"input_tokens":0,"output_tokens":10,"cache_creation_input_tokens":0,"cache_read_input_tokens":20},"model":"claude-sonnet-4-20250514","id":"msg-sidechain"}}}}"#,
554+
)
555+
.unwrap()
556+
.into_entry();
557+
558+
assert_eq!(data.is_sidechain, Some(true));
559+
}
560+
549561
struct DailyEntryFixture {
550562
message_id: &'static str,
551563
request_id: &'static str,

0 commit comments

Comments
 (0)