fix(cli): resolve duplicate assistant text printing after 'Done' in non-compact text mode
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
Direzione di ricerca
Inizia in rust/crates/rusty-claude-cli/src/main.rs, all’interno di LiveCli::run_turn, e verifica come interagiscono il testo trasmesso, final_assistant_text e spinner.finish nella modalità testo non compatta. Esegui claw in questa modalità con una risposta, quindi verifica che il testo dell’assistente appaia una sola volta, che la riga finale venga preservata e che lo stato Done continui a essere visualizzato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
When running claw in non-compact text mode, the entire assistant response is printed twice.
- First, the text chunks are streamed and printed in real-time during the API call.
- Second, after
✔ ✨ Doneis printed, the full assistant text (final_text) is printed again.
This causes a large amount of redundant output in the console, especially for long responses.
Cause
In LiveCli::run_turn (inside main.rs), spinner.finish("✨ Done") is called right after the conversation stream finishes.
Because spinner.finish moves the cursor to column 0 and clears the current line, it would erase the last line of the streamed text if we do not print a newline first.
To prevent this, the previous commit introduced a secondary full-text reprint:
let final_text = final_assistant_text(&summary);
if !final_text.is_empty() {
let renderer = TerminalRenderer::new();
println!("{}", renderer.markdown_to_ansi(&final_text));
}
However, this reprints the entire assistant message instead of just protecting the last line, causing the duplicate response.
Solution
- Print a newline before
spinner.finishif thefinal_textis not empty. This moves the cursor to a new line, ensuring the line-clearing operation inspinner.finishonly clears the empty line and does not corrupt the last line of the streamed text. - Remove the redundant
final_textreprint logic inrun_turn.
Here is the proposed diff in rust/crates/rusty-claude-cli/src/main.rs:
@@ -7763,15 +7763,15 @@
match result {
Ok(summary) => {
self.replace_runtime(runtime)?;
- spinner.finish(
- "✨ Done",
- TerminalRenderer::new().color_theme(),
- &mut stdout,
- )?;
let final_text = final_assistant_text(&summary);
if !final_text.is_empty() {
- let renderer = TerminalRenderer::new();
- println!("{}", renderer.markdown_to_ansi(&final_text));
- }
+ println!();
+ }
+ spinner.finish(
+ "✨ Done",
+ TerminalRenderer::new().color_theme(),
+ &mut stdout,
+ )?;
println!();
if let Some(event) = summary.auto_compaction {
- Lingua principale
- Rust
- Stelle
- 195k
- Fork
- 108k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ultraworkers/claw-code
-
Fix markdown formatting issues in TUI streaming: block-level element newline omission and consecutive empty line accumulationForse di nuovo libera @Aditaya08 l’ha presa 52 giorni fa e non c’è nessuna pull request aperta. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ultraworkers/claw-code#3259 · 7 commenti ·
-
bug: Missing newlines before paragraphs and code blocks in streamed Markdown renderingForse già presa @nankingjing l’ha presa 91 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ultraworkers/claw-code#3257 · 2 commenti ·
-
[CRITICAL][SECURITY] Untrusted project hooks bypass read-only mode for arbitrary command executionAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
ultraworkers/claw-code#3301 · 4 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
ultraworkers/claw-code#3300 · 2 commenti ·
-
Pin all third-party GitHub Actions to immutable commit SHAs across CI workflowsForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
ultraworkers/claw-code#3287 · 6 commenti · 1 reazione ·
Tutte le issue di ultraworkers/claw-code
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
rescript-lang/rescript#8765 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
chroma-core/chroma#7879 ·
I maintainer di solito rispondono entro 1 giorno
-
priority middle
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
KATO-Hiro/AtCoderClans#12838 ·
I maintainer di solito rispondono entro 1 giorno
-
clap_complete env (PowerShell): values after a space don't complete in Windows PowerShell 5.1Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno