Skip to content

fix(ui): Sessionliste unter Verbindungen lesbar und responsiv darstellen #455

Closed

Description

@iret77

Problem

Unter „Verbindungen“ ist die aufgeklappte Sessionliste eines verbundenen Hosts bei schmaler Sidebar schlecht lesbar. In der Nutzeraufnahme läuft die Zeile „Zaplex-Session · …“ bis an den rechten Rand und wird abgeschnitten. Abschnittstitel, Host-RAM, Zaplex-Session und die zweizeilige tmux/byobu-Zeile wirken uneinheitlich eingerückt und dicht zusammengedrängt. Die Metadaten der Multiplexer-Zeile werden ebenfalls stark abgeschnitten.

Priorität: P2 (Darstellung und Bedienbarkeit). Konkreter Fehlerbericht zum übergeordneten Sidebar-Vertrag #160; kein Ersatz für dessen Gesamtabnahme.

Reproduktion laut Nutzerbericht

  1. Zaplex unter macOS öffnen und einen Host mit persistenter Zaplex-Session verbinden.
  2. Links „Verbindungen“ auswählen.
  3. Unter dem verbundenen Host „Zaplex-Sessions“, RAM-Anzeige und vorhandene tmux/byobu-Sessions anzeigen lassen.
  4. Die Liste bei schmaler bzw. üblicher Sidebarbreite betrachten; längere Sessiontitel und IDs verwenden.

Erwartung und Abnahme

  • Klare Hierarchie und konsistente Einrückung für Host, Gruppen, Sessiontitel und ergänzende Metadaten gemäß refactor(cockpit): Sidebar, Verbindungen und Konten entdoppeln #160 und der bestehenden UI-Spezifikation.
  • Titel kürzen innerhalb ihrer verfügbaren Breite mit Ellipse; kein Abschneiden am Panelrand, kein Überlagern von Aktionen oder RAM-Angaben.
  • Vorhandene Aktionen bleiben sichtbar, ausgerichtet und anklickbar; Metadaten verdrängen den Sessiontitel nicht vollständig.
  • Native Darstellung bei minimaler, üblicher und vergrößerter Sidebarbreite prüfen; lange und fehlende Titel sowie Zaplex- und tmux/byobu-Sessions abdecken.
  • Visuellen Nachweis der korrigierten Zustände zur Abnahme hinterlegen; ein Modelltest allein belegt das Layout nicht.

Befund und Einstiegspunkte

Nutzerbeobachtung mit Screenshot vom 18.09.2026; kein eigener Laufzeit-Repro auf dem betroffenen Mac. Die genaue Build-SHA ist im Screenshot nicht erkennbar. Das später bereitgestellte DMG aus #454 ist für diesen Fehler noch nicht als geprüft belegt.

Am geprüften Quellstand d8b48b65af917ff2868c8c761603b98370ce1bf0 liegen die Zeilen in app/src/ssh_manager/panel.rs, insbesondere render_session_rows (ab Zeile 2588) und daemon_session_title (ab Zeile 196). Beim Sessiontitel ist bereits ClipConfig::ellipsis() gesetzt: die Breitenweitergabe in den verschachtelten Flex-/Shrinkable-Elementen und die Platzreservierung für Metadaten prüfen, nicht lediglich ein weiteres Ellipsis-Flag ergänzen. Dies ist ein Untersuchungshinweis, noch keine bewiesene Ursache.

Spezifikation: docs/ui/cockpit-sidebar-connections.html. Die Rohaufnahmen enthalten Kontodaten und private Hostbezeichnungen; dieser öffentliche Bericht beschreibt den Befund anonymisiert.

Activity

  1. iret77 commented on Sep 20, 2026

    @iret77
    CollaboratorAuthor

    Abgrenzung für GPT-5.6 Sol / UI-Implementierungsplan #459

    Dieses Issue wird weiterverwendet, nicht dupliziert. Gemeinsame visuelle Sprache und Kontenflächen verbleiben bei #160.

    Zusätzliche/aktualisierte Akzeptanz:

    • Puffer-/RAM-Werte stehen nicht mehr in der normalen Sessionliste, sondern in expliziten Verbindungsdetails; korrekte Pufferbezeichnung statt irreführendem Host-Gesamt-RAM.
    • Sessionidentität kurz und kontextuell, nicht ausschließlich „Zaplex-Session · UUID“; verfügbare echte Projekt-/CWD-Metadata nutzen, ehrlicher Fallback bei unbekannter Metadata. Stabile ID fürs Routing bleibt erhalten.
    • Section-Überschrift, Host, Session und sekundäre Angaben klar hierarchisch; gemeinsame Einrückung/Aktionsslots mit Cockpit nach refactor(cockpit): Sidebar, Verbindungen und Konten entdoppeln #160.
    • Lange Identitäten bei kleinster unterstützter Breite: Restbreite für Identität, keine durch wiederholte Aktionswörter verdrängten Titel; Hover ohne Reflow.
    • Tab-/Pane-Titelregeln werden zentral in fix(ui): Pane-Identität aus Host und Verzeichnis, Tabtitel aus aktivem Pane #461 umgesetzt und hier wiederverwendet, nicht separat erfunden.

    Ältere Anforderung, Metadaten gegen dauerhaft sichtbare RAM-Zeilen auszubalancieren, wird damit ersetzt. Kein eigener Host- oder Favoritenstore.

  2. iret77 commented on Sep 26, 2026

    @iret77
    CollaboratorAuthor

    Prüfung von main nach #465: Die Tests für Sessionzeilen und Tab-Identität laufen jetzt in der PR-CI (#474).

    Offen: empty_titles_show_a_short_identity_within_the_zaplex_session_group (panel_tests.rs) legt fest, dass trotz bekanntem cwd nur „Session · “ angezeigt wird. Der Issue-Kommentar und PRODUCT §218 verlangen dagegen vorhandene Projekt-/CWD-Metadaten. Zudem wird terminal_identity (#461) im Panel nicht wiederverwendet.

  3. iret77 commented on Sep 28, 2026

    @iret77
    CollaboratorAuthor

    Statusabgleich vom 28.09.2026: status: blocked.

    Sessionzeilen-/Identitätskorrekturen und native Szenarien für zwei Themes und drei Breiten liegen im gemeinsamen #477. Offen ist der erfolgreiche aktuelle native Layout-/Screenshotnachweis mit langen/fehlenden Titeln und sichtbaren Aktionen.

    Aktueller technischer Blocker: Der gemeinsame Abnahme-PR #477 ist Draft und enthält laut PR-Beschreibung die Änderungen dieses Issues. Sein aktueller HEAD 5c9c445ba961671583c09981450a7fb79b9c9cfd hat im vollständigen Prüflauf 36354992553 den Status failure: Die Schritte „Rust workspace coverage tests“ und „Export coverage and execution evidence“ sind fehlgeschlagen; die separate Nicht-Rust-Suite ist erfolgreich. Eine grüne vollständige Baseline ist damit weiterhin nicht belegt.

    Der letzte PR-Prüflauf 36353993130 auf dem Vorgänger 710faa3e8 scheiterte an Linux-Clippy und „Native subscription Agent layout evidence“ auf macOS. Spätere Quellkorrekturen sind dokumentiert, ein grüner Ersatz für diese Pflichtprüfungen ist beim Statusabgleich nicht vorhanden. Das bedeutet nicht, dass jedes einzelne Issue den gemeinsamen Fehler verursacht.

    Nächster Schritt: Die fehlgeschlagenen gemeinsamen Prüfungen korrigieren und auf dem aktuellen Stand erfolgreich nachweisen; anschließend die oben genannte individuelle Restabnahme abschließen. Solange technische Gates fehlen, ist dies weder ready noch ausschließlich needs-user. Dieser Eintrag aktualisiert den Status; er startet keinen Build und schließt das Issue nicht.

  4. added
    status: blockedTechnisch blockiert: fehlgeschlagene CI/Abnahme oder externe Abhängigkeit
    status: in-progressIn Bearbeitung; Verifikation noch nicht abgeschlossen
    status: needs-userWartet auf Entscheidung, Test oder Freigabe durch Christian
    and removed
    status: blockedTechnisch blockiert: fehlgeschlagene CI/Abnahme oder externe Abhängigkeit
    status: in-progressIn Bearbeitung; Verifikation noch nicht abgeschlossen
    on Sep 28, 2026
  5. iret77 commented on Oct 1, 2026

    @iret77
    CollaboratorAuthor

    Mit #477 auf main gemergt (Merge-Commit c0af4484e). Wartet auf Christians Freigabe des ersten Batch-Laufs (release-approve "ci-batch.yml --ref main") und danach auf die native bzw. Laufzeit-Abnahme.

  6. added theissue type on Oct 1, 2026
  7. iret77 commented on Oct 4, 2026

    @iret77
    CollaboratorAuthor

    Enthalten im Test-DMG aus Lauf 37208729131 (9ce5af67c), wartet auf Christians Abnahme.

  8. iret77 commented on Oct 6, 2026

    @iret77
    CollaboratorAuthor

    Ergänzend zum Layout: Die Zeilen selbst sind derzeit unbrauchbar. Es stehen nur Hex-IDs da, ohne Tab-Namen und Offen-Status (#509). Dazu kommt ein falscher tmux-Fehler, wenn kein tmux-Server läuft (#512).

  9. iret77 commented on Oct 9, 2026

    @iret77
    CollaboratorAuthor

    Aus der Abnahmematrix in #160 (UI-Nachtrag vom 20.09., Punkt 1 und 9), Bereich Verbindungen:

    • Verbindungen hat keinen Sektionskopf und keine Karte wie „KI-Sessions“ (Muster „VERBINDUNGEN n“ in docs/ui/premium-workspace.html). Beleg: app/src/ssh_manager/panel.rs rendert die Liste ohne render_zone_header.
    • Puffer-/RAM-Angaben gehören nur in die expliziten Verbindungsdetails, nicht in die Sessionzeilen (PRODUCT §2).

    Ich setze das nicht in #160 um, weil app/src/ssh_manager/** hier bearbeitet wird.

  10. iret77 commented on Oct 9, 2026

    @iret77
    CollaboratorAuthor

    Erledigt mit #539 (Merge-Commit 000dff3e0).

    Behoben

    • Zeileninhalt: Eine Session, die in einer Pane dieses Fensters offen ist, zeigt genau den Titel dieser Pane (Pane-/Tab-Identität aus fix(ui): Pane-Identität aus Host und Verzeichnis, Tabtitel aus aktivem Pane #461). Davor steht eine Akzent-Marke in der festen Einrückungsspalte, ohne Layoutsprung. Das Terminal-Icon zeigt dann „Tab anzeigen“.
    • Übrige Sessions zeigen ihre Daemon-Identität und darunter einen festen Metadaten-Slot („zuletzt geöffnet vor …“). Die Hex-ID steht nicht mehr im sichtbaren Titel, nur noch im Tooltip. Ohne Identität lautet der Titel „Host · Terminal“.
    • Reihenfolge: hier offene Sessions zuerst, dann nach letztem Attach. Pfeiltasten und Enter folgen derselben Reihenfolge.
    • Auf main geprüft und unverändert gültig: Hierarchie, Einrückung, Ellipse, feste Aktionsslots und kein Hover-Reflow bei 250/320/480 px (session_rows_keep_flexible_identity_fixed_actions_and_only_semantic_metadata, seit feat: Premium-Workspace-UI und Mehrhost-Sessions (#459) #465/fix: Offene Issues zu SSH, Cockpit und Wiederherstellung absichern #477). Puffer- und RAM-Werte stehen nur in der Laufzeitdiagnose der Verbindungsdetails und sind korrekt benannt (Ausgabering). Der Befund vom 26.09. ist erledigt: Der Test nutzt bekannte CWD-Metadaten, und das Panel verwendet terminal_identity.
    • Spezifikation nachgezogen: #spec C6/C7 in docs/ui/cockpit-sidebar-connections.html, die Fixture connections-session-rows.html, PRODUCT §2 und TECH.

    Nicht verifiziert

    • Compile, Clippy und Tests sind noch nicht gelaufen. Sie kommen mit dem nächsten gebündelten ci-batch auf main. Die neuen Tests sind im Filter von pr-check.yml eingetragen.

    Offen, nicht in diesem Issue

  11. removed
    status: needs-userWartet auf Entscheidung, Test oder Freigabe durch Christian
    on Oct 9, 2026
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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions