WIP: Vendoo 1.44.0 – UX Foundation & Guided Workspaces #29

Draft
Masterluke77 wants to merge 284 commits from release/1.44.0-ux-foundation-production-update-v1 into main
Showing only changes of commit ba59752e04 - Show all commits
@@ -59,9 +59,31 @@ Wiederkehrende Button-Delegationen werden jetzt über `buttonAction(...)` beschr
Dadurch bleiben Action-Metadaten und technische Delegation zentral, einheitlich und leichter prüfbar. Artikel- und Medienkontextaktionen behalten ihre spezialisierten Handler.
## Öffentliche Navigation API
Bei der Härtung wurde festgestellt, dass die Safe Action Adapter bereits optional `window.VendooNavigation.currentView` berücksichtigten, die globale Navigation dieses API aber noch nicht veröffentlichte.
`public/navigation-api.js` schließt diese Vertragslücke und stellt jetzt ein schreibgeschütztes API bereit:
- `window.VendooNavigation.currentView`
- dynamischer Getter für die tatsächlich aktive Vendoo-Ansicht
- `window.VendooNavigation.canOpen(view)`
- prüft vorhandenen, sichtbaren und aktivierbaren Navigationseintrag
- `window.VendooNavigation.open(view)`
- delegiert ausschließlich per `click()` an den vorhandenen Navigationseintrag
Das API führt keine eigene History-, Routing- oder URL-Logik ein. Die bestehende globale Navigation bleibt alleinige Quelle dieser Abläufe.
Zusätzlich werden folgende Lifecycle-Events veröffentlicht:
- `vendoo:navigation-api-ready`
- `vendoo:navigation-changed`
Der Navigation-Observer reagiert ausschließlich auf Änderungen von `class`, `hidden`, `aria-hidden` und `aria-disabled` und wird bei `beforeunload` sauber getrennt.
## Workspace-Grenzen
Sichtbarkeit wird weiterhin gegen `window.VendooNavigation.currentView` und den zugehörigen DOM-Bereich geprüft:
Sichtbarkeit wird gegen `window.VendooNavigation.currentView` und den zugehörigen DOM-Bereich geprüft:
- Modulaktionen: `admin`
- Extension-Aktionen: `extensions`
@@ -70,6 +92,18 @@ Sichtbarkeit wird weiterhin gegen `window.VendooNavigation.currentView` und den
Actions eines inaktiven Arbeitsbereichs erscheinen nicht in der Command Palette.
## Asset-Ladereihenfolge
Die Plattformassets werden jetzt in folgender Reihenfolge geladen:
1. Command Platform
2. Universal Action Registry
3. Global Navigation
4. Navigation API
5. Safe Action Adapters
Damit ist der öffentliche Navigationsvertrag vor der ersten Action-Auswertung verfügbar.
## Sicherheitsgrenzen
Alle 21 Actions erfüllen denselben Vertrag:
@@ -89,7 +123,9 @@ Alle 21 Actions erfüllen denselben Vertrag:
- kein `window.confirm`
- kein `innerHTML`
## Abnahme-Gate
Auch die Navigation API führt keine Netzwerkaufrufe, externe Navigation oder eigene Browser-History-Manipulation aus.
## Abnahme-Gates
Das vorhandene Gate `npm run verify:safe-action-adapters` wurde auf den vollständigen 21-Action-Vertrag erweitert.
@@ -108,6 +144,24 @@ Es prüft jetzt zusätzlich:
- `baselineCount: 9`
- `expansionCount: 12`
Neues Navigation-API-Gate:
```bash
npm run verify:navigation-api
```
Es prüft:
- schreibgeschütztes öffentliches API
- dynamischen `currentView`-Getter
- `canOpen` für sichtbare, versteckte und unbekannte Ansichten
- kontrollierte Delegation von `open()`
- vollständige Lifecycle-Events
- Observer-Aufbau und Cleanup
- Asset-Ladereihenfolge
- Ausschluss eigener History-, Netzwerk-, Polling- und externer Navigationslogik
- Einbindung in `verify:all`
## Releasegrenzen
- keine bestehenden Handler ersetzt