Repository navigation
fix(remote): kein Shell-Start-Banner bei Daemon-Verbindungsfehlern - #532
Merged
Merged
Conversation
Scheitert die Verbindung eines Daemon-Panes, bevor die Remote-Shell gebootstrappt ist (z. B. Tailscale aus: "Network is unreachable"), beendet der Daemon-Pfad das Terminalmodell. Der View zeigte daraufhin zusätzlich zur korrekten Remote-Meldung mit "Erneut versuchen" das rote Banner "Shell-Prozess wurde vorzeitig beendet", das das Zaplexify-Skript verantwortlich macht und auf "Issue melden" verweist. Für Daemon-Panes vor dem Bootstrap entfällt dieses Banner samt Telemetrieereignis; klassische SSH- und lokale Panes sind unverändert.
3 of 6 tasks
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
Verliert ein Daemon-Pane die Verbindung, bevor die Remote-Shell gebootstrappt ist, zeigte Zaplex zwei Meldungen übereinander. Auslöser war am 2026-10-08 ein beendetes Tailscale auf dem Mac:
ControlMaster setup failed: ssh: connect to host … port 22: Network is unreachable.Das zweite Banner ist doppelt und führt in die Irre. Es macht das Bootstrap-Skript für ein Netzwerkproblem verantwortlich und lädt dazu ein, ein Issue für einen Verbindungsausfall zu melden.
Die Kette:
on_connect_failedschreibt die Remote-Meldung.finish_failed_startupmodel.exit(ExitReason::PtyDisconnected)auf (daemon_tty/event_loop.rs).ModelEvent::Exitinterminal/view.rsfügt daraufhin unbedingtTerminationType::Prematureein und sendet das TelemetrieereignisShellTerminatedPrematurely.Änderung
ModelEvent::Exitüberspringt das Banner für Daemon-Panes, also Panes mit gebundenerremote_input_session_id, die noch nicht gebootstrappt sind. Das Telemetrieereignis entfällt ebenfalls, ein Netzwerkausfall zählt damit nicht mehr als Bootstrap-Fehler.model.exitauslösen, setzen vorher die PhaseFailed. Damit zeigt die Remote-Meldung immer eine Erklärung, mindestens die generische.Tests
view_test.rs: Ein Daemon-Pane erhält einen Verbindungsfehler vor dem Bootstrap und danachExit. Erwartet:Failed,Der bestehende Test
cancelled_remote_restore_teardown_shows_no_shell_failure_bannerbleibt gültig. Er setztis_login_shell_bootstrapped = true.Verifikation
rustfmt --check(für die geänderten Hunks),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.