3.4 KiB
3.4 KiB
HANDOVER 2026-08-27 — Switcher-Paket (Bereichs-/Projekt-UX)
Ziel der nächsten Session: das per Persona-Check (Noten 4/3/2)
definierte Umbaupaket am Stück bauen. Details + Belege:
Memory workspace-switcher-persona-2026-08-27 lesen.
Reihenfolge (HOCH zuerst)
- Umschalt-Race schließen (Datenschützer, HOCH): In
lib/data/workspace.dart(switchToSealed, ~Z. 169–204) zeigt der Client nachHubService.reconnect(Z. 188) schon auf den Mandanten-Hub, bevor_activeSealedgesetzt/notifiziert ist — 2-s-Poller (runs.dart:218,audit.dart:94) können sealed-Daten UNMARKIERT rendern. Fix: expliziterswitching-Zustand VOR dem Reconnect (Identity-Bar optimistisch „Wechsle in Bereich …", Poller pausieren), Freigabe erst nachhealthy(). Wächter-Test (state_matrix-Stil): „Client-Endpoint ≠ angezeigter Kontext" darf nie vorkommen. - Filter-Restaurierung (Poweruser, HOCH):
workspace.dart:202löscht den Projekt-Slug beim Bereichseintritt ohne Prefs-Write;switchToShared(Z. 210–222) restauriert nur_sharedEndpoint. Analog den Slug merken + restaurieren. - Globaler Anker: Switcher EINMAL in die Shell (Sidebar links
oben,
main.dart), die 4 Einzel-Einbindungen raus (flows.dart:227,runs.dart:329,audit.dart:295,approvals.dart:376). Kontext damit auf allen Seiten sichtbar. - Bestätigungsdialog vor Auto-Start gestoppter Bereiche
(
workspace.dart:169–179): „Bereich ‚X' starten und verbinden?" — laufende Bereiche weiter 1 Klick. - Tooltip-Lüge fixen:
app_de.arb:1836/app_en.arb:1875„filtert diese Ansicht" → wirkt global (Flows, Läufe, Audit, Freigaben + Stempel neuer Läufe). - Aggregat erklären: Warum-Zeile an der „N abgeschottete
Bereiche"-Zeile (
chain_workspace_switcher.dart:334–390) + Link auf den Settings-Schalter. Aggregation BLEIBT (bewusste Vertraulichkeitsentscheidung, vom Datenschützer bestätigt). - Poweruser-Komfort: Cmd+K-Palette kennt Projekte/Bereiche
(
chain_search_palette.dart), Kürzel für den Switcher, Häkchen am aktiven Eintrag, Zuletzt-benutzt; Läufe-Leerzustand bei aktivem Filter ehrlich („Keine Läufe in Projekt X" stattrunsEmptyHint,runs.dart:357–369). - Beispiel-Chip (offen vom 23.08.): Hub liefert
FlowSummary.sample(Wire-Feld 6, gepusht in fai_chain4cd5122); ERST Dart-Proto-Regen im Client-SDK (fai_chain_client_sdk_dart), DANN Flows-Liste: „Beispiel"-Chip- Beispiele eingeklappt + „Beispiele importieren"-Aktion im
leeren sealed-Zustand. Alte Hubs ohne Feld → false → keine Chips
(ehrlich). Skew-Gate (
scripts/skew-smoke.sh) laufen lassen.
- Beispiele eingeklappt + „Beispiele importieren"-Aktion im
leeren sealed-Zustand. Alte Hubs ohne Feld → false → keine Chips
(ehrlich). Skew-Gate (
Prüfpflichten
Studio-Regeln: Selbstverifikation per Screenshot (hell+dunkel),
l10n DE+EN, kopierbare Fehler, Inline-Hilfe für neue Flächen
(doc_help_wiring_test), Canon-Wächter. Hub-Seite ist KOMPLETT
(sealed seedet nicht mehr, Prune live auf den echten Bereichen
verifiziert, Backfill für alte Instanz-Configs in chain project start).
Fallen
- Kundenbereichs-Slugs nie in Commit-Messages — der Security-Hook blockt (richtig so).
!-Befehle des Nutzers haben 2-min-Timeout; lange Gates selbst puschen.- Scratchpad überlebt nicht: der hermetische OpenAI-Wire-Fake
(fake_vllm.py, chunked-Encoding-Handling!) ist weg — bei Bedarf
neu aus der Beschreibung in fai_chain-Commit
ad6c772bzw. den llm.rs-Unit-Tests ableiten.