fix(cli): stop reprinting streamed assistant text after 'Done'

This commit is contained in:
黄云龙 2026-07-11 17:45:50 +08:00
parent 4ea31c1bc9
commit 1a66da4eb3
1 changed files with 9 additions and 4 deletions

View File

@ -7763,15 +7763,20 @@ impl LiveCli {
match result {
Ok(summary) => {
self.replace_runtime(runtime)?;
// The assistant response was already streamed to the terminal live
// during the turn (emit_output = true), so reprinting the full text
// here would duplicate the entire message. When text was streamed,
// emit a newline first so `spinner.finish`'s line-clear lands on a
// fresh line instead of erasing the last streamed line.
let final_text = final_assistant_text(&summary);
if !final_text.is_empty() {
println!();
}
spinner.finish(
"✨ Done",
TerminalRenderer::new().color_theme(),
&mut stdout,
)?;
let final_text = final_assistant_text(&summary);
if !final_text.is_empty() {
println!("{final_text}");
}
println!();
if let Some(event) = summary.auto_compaction {
println!(