From 906290f445a83f168102401607f41ff3cd2ac13d Mon Sep 17 00:00:00 2001 From: flemming-it Date: Thu, 27 Aug 2026 23:38:16 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20handover=20=E2=80=94=20workspace-switch?= =?UTF-8?q?er=20rebuild=20package=20from=20persona=20review?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: flemming-it --- HANDOVER-2026-08-27.md | 68 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 HANDOVER-2026-08-27.md diff --git a/HANDOVER-2026-08-27.md b/HANDOVER-2026-08-27.md new file mode 100644 index 0000000..90228af --- /dev/null +++ b/HANDOVER-2026-08-27.md @@ -0,0 +1,68 @@ +# 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) + +1. **Umschalt-Race schließen** (Datenschützer, HOCH): In + `lib/data/workspace.dart` (`switchToSealed`, ~Z. 169–204) zeigt + der Client nach `HubService.reconnect` (Z. 188) schon auf den + Mandanten-Hub, bevor `_activeSealed` gesetzt/notifiziert ist — + 2-s-Poller (`runs.dart:218`, `audit.dart:94`) können sealed-Daten + UNMARKIERT rendern. Fix: expliziter `switching`-Zustand VOR dem + Reconnect (Identity-Bar optimistisch „Wechsle in Bereich …", + Poller pausieren), Freigabe erst nach `healthy()`. + Wächter-Test (state_matrix-Stil): „Client-Endpoint ≠ angezeigter + Kontext" darf nie vorkommen. +2. **Filter-Restaurierung** (Poweruser, HOCH): `workspace.dart:202` + löscht den Projekt-Slug beim Bereichseintritt ohne Prefs-Write; + `switchToShared` (Z. 210–222) restauriert nur `_sharedEndpoint`. + Analog den Slug merken + restaurieren. +3. **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. +4. **Bestätigungsdialog** vor Auto-Start gestoppter Bereiche + (`workspace.dart:169–179`): „Bereich ‚X' starten und verbinden?" + — laufende Bereiche weiter 1 Klick. +5. **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). +6. **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). +7. **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" statt + `runsEmptyHint`, `runs.dart:357–369`). +8. **Beispiel-Chip** (offen vom 23.08.): Hub liefert + `FlowSummary.sample` (Wire-Feld 6, gepusht in fai_chain + `4cd5122`); 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. + +## 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 `ad6c772` bzw. den + llm.rs-Unit-Tests ableiten.