docs(actions): document first safe workspace action migration

This commit is contained in:
Masterluke77
2026-07-14 14:15:25 +02:00
parent b8478e2029
commit 9d8fb93175
@@ -0,0 +1,116 @@
# Vendoo 1.44.0 UX Slice 18: Safe Action Adapters
## Referenz
- Branch: `release/1.44.0-ux-foundation-production-update-v1`
- Ausgangs-Head: `bd87f739992085bf0d06060b9b075bb5d2219175`
- App-Ziel: Vendoo `1.44.0`
- Updater: `3.4.0`
## Ziel
Die Universal Action Registry aus Slice 17 wird erstmals mit bestehenden Vendoo-Funktionen verbunden. Der Slice migriert ausschließlich nicht destruktive Aktionen. Jeder Adapter delegiert an einen bereits vorhandenen, geprüften DOM-Handler und enthält keine neue Fach-, Netzwerk- oder Persistenzlogik.
## Migrierte Aktionen
### Module & Extensions
- `workspace:modules:refresh`
- ruft ausschließlich den vorhandenen Button `#module-manager-refresh` auf
- `workspace:modules:filter-all`
- delegiert an den vorhandenen Modulfilter `all`
- `workspace:modules:filter-problems`
- delegiert an den vorhandenen Modulfilter `problems`
### Artikel
- `workspace:articles:open-current`
- öffnet den zuletzt fokussierten oder ausgewählten Artikel über `.history-article-title`
- `workspace:articles:view-cards`
- delegiert an die bestehende Kartenansicht
- `workspace:articles:view-list`
- delegiert an die bestehende Listenansicht
### Medien
- `workspace:media:open-current-preview`
- öffnet das zuletzt fokussierte oder ausgewählte Bild über den vorhandenen Preview-Handler
- `workspace:media:density-comfortable`
- delegiert an die vorhandene mittlere Galeriedichte
- `workspace:media:reset-filters`
- delegiert an den vorhandenen Medienfilter-Reset
## Kontextmodell
Artikel- und Medienaktionen arbeiten nicht mit willkürlich gewählten Datensätzen. Der Adapter merkt sich ausschließlich den zuletzt per Fokus oder Pointer adressierten Artikel beziehungsweise die zuletzt adressierte Medienvorschau.
Falls kein solcher Kontext vorhanden ist, kann alternativ eine bereits ausgewählte Zeile beziehungsweise Medienkarte verwendet werden. Ohne eindeutigen Kontext bleibt die Action deaktiviert.
## Command-Palette-Integration
Alle neun Adapter werden über `window.VendooActions.registerMany(...)` registriert und nutzen ausschließlich die Surface `command-palette`.
Dadurch erscheinen sie in der bestehenden Ctrl+K-Palette, ohne eine zweite Command-Liste einzuführen. Sichtbarkeit und Enablement werden unmittelbar vor Darstellung und Ausführung erneut gegen den aktuellen DOM-Kontext geprüft.
## Sicherheitsgrenzen
- ausschließlich `danger: none`
- keine destruktiven oder vorsichtigen Actions
- keine Veröffentlichung
- keine Löschung
- keine Installation oder Deinstallation
- keine Modulaktivierung oder -deaktivierung
- keine Statusänderung
- keine Speicherung
- keine Datenbankänderung
- keine Migration
- keine neuen API-Aufrufe
- kein Polling
- kein `window.confirm`
- kein `innerHTML`
Die Adapter rufen nur vorhandene Buttons oder Links per `click()` auf. Serverseitige Berechtigungen, CSRF-Schutz, Validierungen und bestehende Handler bleiben unverändert maßgeblich.
## Asset-Ladereihenfolge
`public/module-extension-workspace.js` lädt jetzt in dieser Reihenfolge:
1. Command Platform
2. Universal Action Registry
3. Global Navigation
4. Safe Action Adapters
Der Adapter wartet zusätzlich auf `vendoo:actions-ready`, falls die Action Registry beim Laden noch nicht verfügbar ist.
## Verifikation
Neues Gate:
```bash
npm run verify:safe-action-adapters
```
Das Gate prüft statisch und in einer isolierten Runtime:
- alle neun stabilen Action-IDs
- ausschließliche Command-Palette-Surface
- ausschließlich Gefahrstufe `none`
- korrekte Asset-Ladereihenfolge
- Modul-Refresh-Delegation
- Modulfilter-Delegation
- Artikelansicht-Delegation
- fokussierten Artikelkontext
- fokussierten Medienkontext
- Galeriedichte und Medienfilter-Reset
- Ready-Event
- Ausschluss von Netzwerk-, Polling-, `innerHTML`-, Bestätigungs- und direkter Fachlogik
- Einbindung in `verify:all`
## Daten- und Releasegrenzen
- keine bestehenden Routen, APIs, Feld-IDs oder Modul-IDs umbenannt
- keine bestehenden Handler ersetzt
- keine persistenten Nutzdaten verändert
- kein Merge
- kein Deployment
- kein Release