Repository navigation
fix(terminal): Echo von In-Band-Generatoren aus Replay-Hintergrundausgabe entfernen - #533
Merged
Merged
Conversation
…gabe entfernen Beim Re-Attach einer Daemon-Session wird die PTY-Ausgabe ohne die clientseitige In-Band-Markierung (start_active_block_for_in_band_command) erneut geparst. Das Shell-Echo von `warp_run_generator_command …` landete dadurch als Hintergrundausgabe in einem sichtbaren Block. BlockList::preexec entfernt bei einem In-Band-Kommando jetzt einen laufenden, unfertigen Hintergrundblock, dessen getrimmter Inhalt exakt der Echo-Zeile des Kommandos entspricht. Andere Hintergrundausgabe bleibt unverändert; das Live-Verhalten ändert sich nicht.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Nach einem Reconnect zeigte ein devhost-Pane einen sichtbaren Block mit dem internen Completion-Generator:
Die ID entspricht 2026-10-07T23:01:27Z, zwei Sekunden nach dem Öffnen der betroffenen Daemon-Session. Diese Session wurde nach einem App-Neustart mit
replay 270927 bytes from seq 0wieder angehängt. Der Block ist also das nachgespielte ursprüngliche Echo.Live startet der Client den aktiven Block vor dem Schreiben (
start_active_block_for_in_band_commandüberbefore_write_fn), sodass das Echo im versteckten In-Band-Block landet. Beim Replay fehlt diese clientseitige Markierung. Das Echo wird zu Hintergrundausgabe.EarlyOutput::preexecholt es nur unter engen Bedingungen zurück (Typeahead-Modus, Bootstrap, Blockzustand), undfinalize_block_and_advance_listschließt den Hintergrundblock bei In-Band-Blöcken nicht ab. Der Block bleibt sichtbar.Änderung
BlockList::remove_echoed_in_band_command(terminal/model/blocks.rs).BlockList::preexecruft sie bei einem In-Band-Kommando auf. Entfernt wird nur ein laufender, unfertiger Hintergrundblock, dessen getrimmter Inhalt exakt die Echo-Zeile des Kommandos ist. Andere Hintergrundausgabe bleibt unverändert.Tests
blocks_test.rs:preexecundcommand_finished_and_precmd. Erwartet: Der Hintergrundblock ist weg, der aktive Block ist In-Band, und kein sichtbarer Block enthält den Generator.[1]+ Done …) bleibt beim In-Band-preexecerhalten.Restrisiken und Abgrenzung
$BASH_COMMANDvom Echo ab (Spacing, Readline-Redraw), wird nichts entfernt. Das ist die sichere Richtung.Verifikation
rustfmt --check,git diff --checkundscript/check-v1-release-readiness --phase-asind sauber.ci-batch.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.