Repository navigation
feat(sidebar): KI-Sessions und KI-Konten als eigene Sidebar-Ansichten trennen #504
Description
Ziel
Das Sidebar-Element „Cockpit“ wird in zwei eigenständige, sichtbar beschriftete Sidebar-Ansichten im vorhandenen horizontalen Toolbelt getrennt:
- KI-Sessions – der Live-Baum
Host → Projekt → PTY-Session → Agent - 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.htmlund 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:
LeftPanelDisplayedTabundFrom(app/src/app_state.rs:708-733), Rückabbildungapp/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::Gridbei: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_contentmit Scroll-, Karten-, Flottenwert- und Rescan-Zustand (app/src/cockpit/panel.rs:1670-1748), gespeist vom bestehendenCockpitModel - 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_viewsaccounts_view_does_not_depend_on_session_countpersisted_cockpit_selection_maps_to_sessions_viewwaiting_signal_visible_on_sessions_entry_while_accounts_activeaccounts_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
iret77 commentedon Oct 6, 2026
Die Lesbarkeit des Session-Baums (Feedback 1a) ist #505.
iret77 commentedon Oct 6, 2026
Umsetzung in #529. Abweichung von der Abnahme „Mockup und Referenzbilder nachgezogen“: Der 155-KB-Export
docs/ui/premium-workspace.htmlund seine PNGs sind nicht geändert. Stattdessen gibt es die neue anonymisierte Referenzdocs/ui/cockpit-sessions-tree.html(Regeln#spec V1–V3,B1–B9, zwei Referenzansichten).docs/ui/README.mdlegt fest, dass sie für die Sidebar-Aufteilung und die Baumdarstellung Vorrang vor dem Mockup hat.Merge pull request #529 from byte5ai/feat/sidebar-sessions-accounts
iret77 commentedon Oct 9, 2026
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:
toolbelt_has_separate_sessions_and_accounts_views,waiting_signal_visible_on_sessions_entry_while_accounts_active: vorhanden (feat(sidebar): KI-Sessions/KI-Konten trennen und Session-Baum nach B+ (#504, #505) #529).persisted_cockpit_selection_maps_to_sessions_view: ergänzt in fix(cockpit): Restlücken aus #160 schließen und ci-batch-Blocker beheben #537.accounts_loading_or_error_is_not_zero_accounts_in_accounts_view: abgedeckt durchaccount_scan_error_is_not_rendered_as_zero_accounts; dieselbe Funktion steuert den Kopf der Kontenansicht (accounts_panel.rs).accounts_view_does_not_depend_on_session_count: nicht als Test geschrieben. Das ist eine Darstellungseigenschaft: Die Kontenansicht ist eine eigene View und liest keine Sessionliste.Abweichung wie bereits notiert: Der große Mockup-Export
premium-workspace.htmlist nicht geändert;cockpit-sessions-tree.htmlhat Vorrang.Nicht verifiziert: Compile, Clippy, Tests und Screenshots laufen erst im nächsten gebündelten ci-batch. Der letzte Lauf auf
b813a4759war aus den zwei in #537 behobenen Gründen rot.