chain-studio/HANDOVER-2026-08-27.md
flemming-it f6f52cc830
Some checks failed
Security / Security check (push) Failing after 2s
docs: handover — switcher package delivered
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-08-28 00:29:27 +02:00

3.8 KiB
Raw Permalink Blame History

HANDOVER 2026-08-27 — Switcher-Paket (Bereichs-/Projekt-UX)

ERLEDIGT 2026-08-28, alle 8 Punkte, gepusht. Studio 0.82.0 (afe782e / 64c2a77 / d69277d / 10f38be), Editor v0.26.0, Dart-SDK 5759ce4. Wächter: workspace_switch_race_test, workspace_switcher_test (Anker), flow_list_samples_test (Editor); Skew-Gate grün; Screenshots hell+dunkel in build/workspace-shots/. Beifang gefixt: der Editor listete im sealed-Bereich die Flows des GETEILTEN Hubs (flowsDir jetzt verbindungsabhängig, Editor-State fällt beim Verbindungswechsel). Details im Memory.

Ursprünglicher Auftrag (Referenz):

Reihenfolge (HOCH zuerst)

  1. Umschalt-Race schließen (Datenschützer, HOCH): In lib/data/workspace.dart (switchToSealed, ~Z. 169204) 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. 210222) 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:169179): „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:334390) + 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:357369).
  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.