Skip to content

fix(connections): Zaplex-Sessions mit Tab-Namen und Offen-Status statt Hex-IDs anzeigen #509

Closed

Description

@iret77

Problem — P1

Unter Verbindungen → Host → Zaplex-Sessions steht jede Session nur als <host> · Session · <8 Hex-Zeichen>. Der Nutzer kann nicht erkennen,

  • welche dieser Sessions gerade in einem Zaplex-Tab offen ist, und
  • welche Session zu welchem Tab gehört. Der Tab heißt zum Beispiel <host> · <projekt>, die Liste zeigt aber nur die ID.

Owner-Feedback: „Wieso sehe ich hier nicht, welche Sessions ich gerade in zaplex offen habe? Wieso sehe ich dort nicht den Namen, der mir im Session-Tab angezeigt wird? Das ist völlig unbrauchbar, wenn da einfach nur Hex-IDs stehen.“

Beobachtet mit Client 9ce5af67c: Bei 2 offenen Tabs zeigte die Liste 8 gleich aussehende Zeilen. Davon waren 6 verwaiste Sessions eines älteren Daemons, siehe #510. In allen 8 lief claude.

Beleg

Die Ursachenkette:

  • Für normale Tabs sendet der Client beim Öffnen kein Verzeichnis: cwd wird nur für verwaltete Starts gesetzt (app/src/workspace/view.rs:1703).
  • Der Daemon setzt session.cwd nur beim Start der Shell (app/src/remote_server/server_model.rs:6044, 6169) und aktualisiert es nie. Es gibt im Code keine Abfrage von aktuellem Verzeichnis oder Vordergrundprozess einer PTY.
  • Der Titel ist sowohl beim Daemon (server_model.rs:6787-6809) als auch beim Client (app/src/remote_server/headless_connect.rs:201-215) leer.
  • daemon_session_identity fällt deshalb auf workspace-left-panel-ssh-manager-session-fallback = „Session · { $id }“ zurück (app/src/ssh_manager/panel.rs:236-252). Die Zeile bekommt keine Metadaten (panel.rs:3107, None).
  • Ein Provider-Titel wie „Claude · …“ entsteht erst durch BindAgentPty von einem verbundenen Client-Pane. Getrennte Sessions bekommen ihn nie.
  • Dabei kennt der Client die Zuordnung für seine eigenen Tabs bereits. daemon_pty_claim liefert für eine Daemon-PTY das besitzende Pane, und ein Klick fokussiert dieses vorhandene Pane (app/src/workspace/view.rs:13405-13431). Die Liste nutzt diese Information nicht für Titel und Status.

Die Spezifikation verlangt Host · Projekt-oder-Verzeichnis und den neutralen Fallback nur bei fehlenden Metadaten (specs/GH-160/PRODUCT.md:223-225). Der Fallback selbst ist also spezifikationskonform. Der Fehler ist, dass die Metadaten fehlen und vorhandenes Client-Wissen nicht genutzt wird.

Erwartung / Abnahme

Regressionstests

  • connections_row_uses_pane_identity_for_locally_open_session
  • connections_row_marks_locally_open_session
  • detached_session_row_uses_daemon_live_cwd_and_foreground_command
  • old_daemon_without_live_metadata_falls_back_honestly

Bezug: #455 (Zeilenlayout), #461 (Pane-Identität), #160, #508 (Ablauf getrennter Sessions), #510 (verwaiste Sessions nach Daemon-Update). Zeilenangaben beziehen sich auf 9ce5af67c. Kein Build und kein Test ausgeführt.

Activity

  1. added 2 commits that reference this issue on Oct 9, 2026
  2. iret77 commented on Oct 9, 2026

    @iret77
    CollaboratorAuthor

    Behoben und in main gemergt, in zwei Teilen:

    Noch nicht verifiziert:

    Nach dem geänderten Vorgehen gilt: gemergt heißt geschlossen. Tritt das Problem weiter auf, bitte das Issue wieder öffnen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions