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

75 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.