Some checks failed
Security / Security check (push) Failing after 2s
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
75 lines
3.8 KiB
Markdown
75 lines
3.8 KiB
Markdown
# 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. 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.
|