Skip to content

feat(sidebar): KI-Sessions und KI-Konten als eigene Sidebar-Ansichten trennen #504

Closed

Description

@iret77

Ziel

Das Sidebar-Element „Cockpit“ wird in zwei eigenständige, sichtbar beschriftete Sidebar-Ansichten im vorhandenen horizontalen Toolbelt getrennt:

  1. KI-Sessions – der Live-Baum Host → Projekt → PTY-Session → Agent
  2. KI-Konten – die Kontokarten mit 5-h- und Wochenverbrauch sowie „Alle Konten“

Jede Ansicht nutzt die volle Sidebarhöhe und hat ihre eigene Scrollfläche. Die Kontenübersicht ist unabhängig von der Länge der Sessionliste immer mit einem Klick erreichbar.

Herkunft der Entscheidung

Owner-Feedback nach dem ersten Build mit der überarbeiteten UI (nach #465), Punkt 1b:

„Die Agent-Übersicht ist nun soweit unten, dass die niemand mehr findet. Dafür brauchen wir eine grundsätzliche Lösung. Entweder ist die Sessionliste in einem Container mit fester Höhe, so dass die Agentenübersicht immer ohne Scrollen sichtbar ist. Oder wir trennen Sessionliste und Agentenübersicht auf eigene Sidebar-Anzeigen.“

Entschieden wurde die zweite Variante: eigene, sichtbar beschriftete Sidebar-Ansichten „Sessions“ und „KI-Konten“. Begründung: Eine feste Höhe schafft auf kleinen Fenstern zwei beengte Bereiche, und die Sessionliste kann sehr lang werden. Getrennte Ansichten geben beiden Aufgaben genug Platz.

Zu dieser Entscheidung wurde nie ein Issue angelegt. Stattdessen hat d2183ba1b („fix: UI-Abweichungen zur Workspace-Referenz korrigieren“, gemergt über #477) die verworfene erste Variante umgesetzt: Die Sessionfläche ist auf höchstens drei Fünftel der Höhe begrenzt, und beide Bereiche scrollen getrennt (app/src/cockpit/panel.rs:1750-1784). Diese Variante wurde dabei auch in Spezifikation und Doku festgeschrieben.

Abgelöste Vorgaben

Diese Stellen werden durch dieses Issue ersetzt und sind im Implementierungs-PR mit zu ändern:

  • docs/ui/cockpit-sidebar-connections.html:40: „Sessionbaum und Konten bleiben zwei unabhängig scrollbare Bereiche derselben Sidebar …“
  • specs/GH-160/TECH.md:405-408: „The two Cockpit sections retain independent scroll state and bounded flexible height … at most three fifths …“
  • docs/ui/README.md:69-71: Absatz „Sessionbaum und Konten behalten ihre beiden Bereiche und scrollen unabhängig …“
  • Mockup docs/ui/premium-workspace.html und die Referenzbilder: Sie zeigen beide Karten in einem Element. Sie werden auf zwei Toolbelt-Einträge aktualisiert, ohne dass sich sonst etwas an der Referenz ändert.

Unverändert gültig bleiben #spec C3 („keine neue vertikale Symbolleiste“) und specs/GH-160/PRODUCT.md:35 („No new app-wide icon rail or navigation system“). Dieses Issue führt keine neue Navigation ein. Es ergänzt das bestehende horizontale Toolbelt um genau einen weiteren Eintrag, so wie es dort bereits für Cockpit und Verbindungen geschieht. Die Regel „vorhandene Sidebar-Navigation bleibt unverändert“ wird nur insoweit angepasst, als ein Eintrag hinzukommt.

Anforderungen

  • Zwei Toolbelt-Einträge mit eigenem Icon, Tooltip und zugänglichem Namen: „KI-Sessions“ und „KI-Konten“, direkt nebeneinander. Verbindungen folgt unverändert.
  • Beide Ansichten nutzen dieselben Header-, Raster- und Zeilenregeln wie bisher (refactor(cockpit): Sidebar, Verbindungen und Konten entdoppeln #160, [UI-Implementierung] Abgestimmten Premium-Entwurf für Sidebar, Sessions und Mehrhost-Panes umsetzen #459). Der Sessions-Header trägt die Wartesumme (Glyph plus Zahl), der Konten-Header den Flottenwert „Alle Konten · heute …“.
  • Aufmerksamkeit geht beim Ansichtswechsel nicht verloren. Ist „KI-Konten“ aktiv und wartet eine Session, zeigt der Toolbelt-Eintrag „KI-Sessions“ das amberne Wartesignal, ohne Text und ohne Layoutänderung. Amber bleibt ausschließlich für „wartet auf dich“ reserviert.
  • Konto-Klick (Detailpane hinzufügen oder fokussieren) und Session-Klick verhalten sich unverändert.
  • Gespeicherte Sidebar-Auswahl: Ein bisher gespeichertes „Cockpit“ wird auf „KI-Sessions“ abgebildet. Die zuletzt gewählte Ansicht wird wie bei anderen Toolbelt-Panels wiederhergestellt.
  • Bestehende Tastenkürzel und Command-Palette-Einträge für das Cockpit führen weiter zu „KI-Sessions“. „KI-Konten“ erhält einen eigenen Eintrag.
  • Die 3/5-Höhenbegrenzung und der zweite Scrollbereich im Cockpit entfallen.
  • Lade-, Fehler- und Degraded-Zustände der Konten erscheinen in der Konten-Ansicht nicht als „0 Konten“ (refactor(cockpit): Sidebar, Verbindungen und Konten entdoppeln #160).
  • Alle Texte in Deutsch und Englisch über i18n.

Nicht-Ziele

  • Keine vertikale Icon-Leiste, keine globalen Feature-Tabs, keine weitere Navigationsebene.
  • Keine Änderung an Hierarchie oder Darstellung des Session-Baums. Die Lesbarkeit des Baums (Feedback 1a) ist ein eigenes Issue.
  • Keine Änderung an Kontenerkennung, Usage-Berechnung oder Override-Mechanismus.

Einstiegspunkte (Hinweise, kein Design)

  • Enums: ToolPanelView (app/src/workspace/view/left_panel.rs:172), LeftPanelAction (:87)
  • Persistenz: LeftPanelDisplayedTab und From (app/src/app_state.rs:708-733), Rückabbildung app/src/workspace/view.rs:5542-5551
  • Registrierung: primary_host_navigation_views (app/src/workspace/view.rs:2444), compute_left_panel_views (:29066)
  • Toolbelt-Plumbing in left_panel.rs: Button-Konfiguration (Icon::Grid bei :688), Mouse-Handles (:1431-1441), Content-Match (:1524), Fokus (:978), Aktiv-Prüfung (:1158), Aktionen (:1310)
  • Tooltips: app/src/workspace/view.rs:26254-26275, :26324-26345
  • Kontenbereich, der in eine eigene View wandert: account_content mit Scroll-, Karten-, Flottenwert- und Rescan-Zustand (app/src/cockpit/panel.rs:1670-1748), gespeist vom bestehenden CockpitModel
  • Vorhandene Icons: Users, CoinsStacked (crates/warp_core/src/ui/icons.rs:173-174)
  • Tests, die das heutige Layout festschreiben und angepasst werden müssen: app/src/workspace/view_test.rs:1889-1902 (genau zwei primäre Views), left_panel_tests.rs:4-56

Abnahme

  • Toolbelt zeigt „KI-Sessions“ und „KI-Konten“ als getrennte Einträge mit Tooltip und zugänglichem Namen.
  • Bei 50 und mehr Sessions ist die Kontenübersicht mit einem Klick vollständig sichtbar, ohne Scrollen zu ihrer Überschrift.
  • Beide Ansichten nutzen die volle Sidebarhöhe mit eigenem Scrollzustand, der beim Wechsel erhalten bleibt.
  • Wartet eine Session, während „KI-Konten“ aktiv ist, ist das am Eintrag „KI-Sessions“ amber erkennbar. Bei Reduced Motion ist es statisch.
  • Ein gespeicherter Cockpit-Zustand öffnet nach dem Update „KI-Sessions“.
  • Spezifikation, README, Mockup und Referenzbilder sind im selben PR nachgezogen. Keine der oben abgelösten Stellen beschreibt mehr die 3/5-Variante.
  • Native Screenshots beider Ansichten bei normaler und minimaler Sidebarbreite, hell und dunkel.

Regressionstests

  • toolbelt_has_separate_sessions_and_accounts_views
  • accounts_view_does_not_depend_on_session_count
  • persisted_cockpit_selection_maps_to_sessions_view
  • waiting_signal_visible_on_sessions_entry_while_accounts_active
  • accounts_loading_or_error_is_not_zero_accounts_in_accounts_view

Bezug: #160 (gemeinsame Sidebar-/Konto-UI), #459 (Premium-UI-Abnahme), #477 (Herkunft der abgelösten Variante). Zeilenangaben beziehen sich auf 9ce5af67c. Kein Build und kein Test ausgeführt.

Activity

  1. iret77 commented on Oct 6, 2026

    @iret77
    CollaboratorAuthor

    Die Lesbarkeit des Session-Baums (Feedback 1a) ist #505.

  2. iret77 commented on Oct 6, 2026

    @iret77
    CollaboratorAuthor

    Umsetzung in #529. Abweichung von der Abnahme „Mockup und Referenzbilder nachgezogen“: Der 155-KB-Export docs/ui/premium-workspace.html und seine PNGs sind nicht geändert. Stattdessen gibt es die neue anonymisierte Referenz docs/ui/cockpit-sessions-tree.html (Regeln #spec V1–V3, B1–B9, zwei Referenzansichten). docs/ui/README.md legt fest, dass sie für die Sidebar-Aufteilung und die Baumdarstellung Vorrang vor dem Mockup hat.

  3. added a commit that references this issue on Oct 8, 2026
  4. iret77 commented on Oct 9, 2026

    @iret77
    CollaboratorAuthor

    Abschluss

    Erledigt: Umgesetzt mit #529 (Merge b813a4759). Die Abnahmematrix in #160 bestätigt die Umsetzung: zwei Toolbelt-Einträge „KI-Sessions“ und „KI-Konten“ mit voller Höhe und eigenem Scrollbereich, Wartemarke am Sessions-Eintrag, ein gespeichertes „Cockpit“ öffnet den Session-Baum. Die Desktop-Referenz trennt Konten- und Agent-Sidebar ebenso (Paritätsaudit Stage 9).

    #529 hat einen statischen Guard gebrochen, wodurch der ci-batch vor den Tests abbrach. Das ist mit #537 (Merge ac693dbd1) behoben.

    Regressionstests:

    Abweichung wie bereits notiert: Der große Mockup-Export premium-workspace.html ist nicht geändert; cockpit-sessions-tree.html hat Vorrang.

    Nicht verifiziert: Compile, Clippy, Tests und Screenshots laufen erst im nächsten gebündelten ci-batch. Der letzte Lauf auf b813a4759 war aus den zwei in #537 behobenen Gründen rot.

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions