Hide short worked-for label in final separator (#10452)

- Hide the "Worked for" label in the final message separator unless
elapsed time is over one minute.\n- Update/add tests to cover both
hidden (<60s) and shown (>=61s) behavior.
This commit is contained in:
Ahmed Ibrahim 2026-02-02 18:29:20 -08:00 committed by GitHub
parent 8dd41e229b
commit 97ff090104
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2147,6 +2147,7 @@ impl HistoryCell for FinalMessageSeparator {
let mut label_parts = Vec::new();
if let Some(elapsed_seconds) = self
.elapsed_seconds
.filter(|seconds| *seconds > 60)
.map(super::status_indicator_widget::fmt_elapsed_compact)
{
label_parts.push(format!("Worked for {elapsed_seconds}"));
@ -2358,7 +2359,7 @@ mod tests {
}
#[test]
fn final_message_separator_includes_runtime_metrics() {
fn final_message_separator_hides_short_worked_label_and_includes_runtime_metrics() {
let summary = RuntimeMetricsSummary {
tool_calls: RuntimeMetricTotals {
count: 3,
@ -2385,7 +2386,7 @@ mod tests {
let rendered = render_lines(&cell.display_lines(200));
assert_eq!(rendered.len(), 1);
assert!(rendered[0].contains("Worked for 12s"));
assert!(!rendered[0].contains("Worked for"));
assert!(rendered[0].contains("Local tools: 3 calls (2.5s)"));
assert!(rendered[0].contains("Inference: 2 calls (1.2s)"));
assert!(rendered[0].contains("WebSocket: 1 events send (700ms)"));
@ -2393,6 +2394,15 @@ mod tests {
assert!(rendered[0].contains("4 events received (1.2s)"));
}
#[test]
fn final_message_separator_includes_worked_label_after_one_minute() {
let cell = FinalMessageSeparator::new(Some(61), None);
let rendered = render_lines(&cell.display_lines(200));
assert_eq!(rendered.len(), 1);
assert!(rendered[0].contains("Worked for"));
}
#[test]
fn ps_output_empty_snapshot() {
let cell = new_unified_exec_processes_output(Vec::new());