Repository navigation
fix(ui): Pane-Identität im Dateimanager-Modus und bei Hostwechsel - #536
Merged
Merged
Conversation
Collaborator
Author
ReviewEigenes Review: Ich habe Schichtgrenzen, Lock-Reihenfolge, Sichtbarkeiten und Testpfade geprüft. Neue Codex-Zweitreview (read-only, gpt-6-astra, Effort high) auf
Compile, Clippy und Tests: nicht gelaufen, sie folgen im nächsten gebündelten ci-batch. |
Der Dateimanager-Modus zeigt dieselbe Identität `Host · Verzeichnis` wie die Terminal-Pane, lokal und remote, über die zentrale Ableitung `terminal_identity`. Die Pane-Gruppe löst Kollisionen auch für Dateimanager-Panes auf; nur eine echte Kollision zeigt den vollen Pfad. Das gebundene Hostlabel gilt nur, solange die aktive Shell die eigene Shell der Pane ist. Ein manuelles `ssh` oder `exit` benennt den Host, den die aktive Shell beim Bootstrap meldet; ein Sessionwechsel mit gleichem Verzeichnis aktualisiert die Anzeige. Ein interaktives `ssh` ohne Shell-Integration zeigt ehrlich `Remote-Session · Terminal`. Regressionstests, CI-Testauswahl und Spezifikation (GH-160, HTML-Spec P3) nachgezogen. Compile und Tests nicht gelaufen; sie folgen im nächsten gebündelten ci-batch. Refs #461
Zweitreview-Finding: Terminal und Dateimanager schrieben dasselbe lokale Verzeichnis unterschiedlich (~ gegenüber absolutem Pfad). Der lokale Dateimanager nutzt jetzt dieselbe Schreibweise; Test und TECH-Spezifikation ergänzt. Refs #461
iret77
force-pushed
the
fix/461-pane-identitaet-host
branch
from
October 9, 2026 16:51
a0991a3 to
b0e82de
Compare
8 tasks
iret77
added a commit
that referenced
this pull request
Oct 9, 2026
… nach #536) Seit #536 heißt der Pane-Kopf eines Dateimanagers `Host · Verzeichnis` mit dem SSH-Host des Registry-Eintrags (der Anzeigename nur ersatzweise), lokal mit dem Label der lokalen Terminal-Pane und `~` für das Home-Verzeichnis. Die Ziel-Labels nutzten noch den Anzeigenamen und "lokal" – Fußzeile und Pane-Kopf hätten dieselbe Pane verschieden benannt. - Ziel-Labels übernehmen jetzt genau das Host-Label des Pane-Kopfs und schreiben ein lokales Home als `~`. - Nach dem Rebase hätte die eigene Host-Variable im Konstruktor die aus #536 überschattet und vor `set_identity_host` verschoben (Compile- Fehler); der Konstruktor nutzt jetzt das Host-Label aus #536 für beide. - Beim (Re-)Connect setzen Ziel-Label und Pane-Kopf den Host aus dem Server-Snapshot der tatsächlichen Verbindung. - Nicht mehr genutzte Schlüssel `fm-label-local` und `fm-label-remote-host` entfernt; der unbekannte Host heißt wie bei Terminal-Panes. - Der native Nachweis prüft die Fußzeile über den eindeutigen Verzeichnisnamen, unabhängig von der `~`-Kürzung.
This was referenced Oct 9, 2026
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.
Worum es geht
Schließt die zwei offenen Lücken aus #461 (Codebefund vom 06.10.). Beide Punkte bestanden auf
main(0ba54c049) unverändert.1. Dateimanager-Modus zeigt
Host · VerzeichnisSftpBrowserViewbindet beim Erzeugen ein Hostlabel wie eine Terminal-Pane (PaneConfiguration::terminal_identity_host): lokalLokal, remoteSshServerInfo.hostdes Registry-Knotens. Das ist dasselbe Feld, das Terminal-Panes überbind_ssh_pane_nodeerhalten. Ersatzweise gilt der Knotenname, sonstRemote-Session.terminal_identity(host, cwd, fallback). Die Signatur ist unverändert, damit die Sessionliste unter Verbindungen sie weiter nutzen kann.SFTP: /pfadentfällt mitsamt den i18n-Schlüsselnfm-title-sftpundsftp-local-file-manager-title.PaneGroup::refresh_terminal_titlesnimmt sichtbare Dateimanager-Panes mit ihrer eigenen Identität in die Kollisionsauflösung auf. Nur eine echte Kollision zeigt den vollen Pfad. Als Suffix-Schlüssel dient über einer Terminal-Pane deren persistente Session; ein eigenständiger Dateimanager nutzt seine Pane-ID.2. Hostwechsel in der Shell bindet das Host-Label neu
Ich habe keinen eigenen Detektor gebaut, sondern vorhandene Signale verwendet (
TerminalView::identity_host_and_directory):classic_ssh_root_session_idbzw. lokale Shell ohne Subshell.sshmit Shell-Integration (Zaplexify, Legacy-SSH) benennt denhostname, den die neue Shell beim Bootstrap meldet.exitzeigt wiederLokalbzw. das gebundene Label.sshohne Shell-Integration meldet weder Host noch Verzeichnis. Die Pane zeigt dannRemote-Session · TerminalstattLokal · <alter Ordner>. Erkannt wird das über die vorhandene Zaplexify-Erkennungparse_interactive_ssh_command. Andere Werkzeuge wiemoshund Sprünge innerhalb einer solchen Sitzung bleiben unsichtbar. Eine klassische SSH-Pane, deren eigene Verbindung nie bootstrappt, behält ihr gebundenes Label.Tests und Spezifikation
pane_identity_follows_the_shell_across_a_manual_ssh_hop_and_exitundbound_host_names_only_the_panes_own_shell(Terminal-View, über echte Precmd-Events), außerdemfile_manager_mode_keeps_the_host_and_directory_identity(Workspace: zwei Dateimanager mit gleichem Basename, Kollision und Auflösung). Alle drei sind in der Testauswahl vonpr-check.ymleingetragen.specs/GH-160/PRODUCT.mdundTECH.mdsind um einen Abschnitt zu fix(ui): Pane-Identität aus Host und Verzeichnis, Tabtitel aus aktivem Pane #461 ergänzt,docs/ui/cockpit-sidebar-connections.html#spec P3nachgezogen.Verifikation
main.rustfmt --checkauf den geänderten Dateien (nur eigene Hunks) undgit diff --check.Refs #461
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.