docs(ux): document command palette registry migration
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# Vendoo 1.44.0 – UX Slice 16: Command Palette Registry Migration
|
||||
|
||||
## Referenz
|
||||
|
||||
- Branch: `release/1.44.0-ux-foundation-production-update-v1`
|
||||
- Ausgangs-Head: `eabbafbebd9288a258971c0a0a8abbeb27c9ea20`
|
||||
- App-Ziel: Vendoo `1.44.0`
|
||||
- Updater: `3.4.0`
|
||||
|
||||
## Problem
|
||||
|
||||
Die globale Ctrl+K-Palette führte vor diesem Slice mit `VIEW_LABELS` und `collectCommands()` eine zweite statische Command-Quelle. Dadurch konnten Registry-Metadaten, Modulregistrierungen, Aliase, Berechtigungen, deaktivierte Zustände, Favoriten und zuletzt geöffnete Bereiche nicht vollständig und konsistent ausgewertet werden.
|
||||
|
||||
## Umsetzung
|
||||
|
||||
- `window.VendooCommands` bleibt alleinige Datenquelle der Palette.
|
||||
- Der bestehende Command-Vertrag wurde ausschließlich additiv um `aliases`, `visible`, `enabled` und `disabledReason` ergänzt.
|
||||
- `list(...)` löst Sichtbarkeit, Permission und Enablement vor der Darstellung auf.
|
||||
- Suchranking gewichtet Titel, Aliase, Keywords, Beschreibung und Gruppe; Favoriten und Recents liefern kontrollierte Ranking-Boosts.
|
||||
- `execute(...)` prüft den Command-Zustand unmittelbar vor der Ausführung erneut und emittiert bei Ablehnung `vendoo:command-blocked`.
|
||||
- Die Palette ruft ausschließlich `VendooCommands.execute(...)` auf. Sie führt keine direkte View-Navigation und keine fachliche Aktion aus.
|
||||
- Browser-History, Deep Links und Back/Forward bleiben unverändert im bestehenden globalen Navigationslayer.
|
||||
|
||||
## Accessibility und UX
|
||||
|
||||
- vollständige Tastaturnavigation mit Pfeiltasten, Home, End, Enter und Escape
|
||||
- Combobox-/Listbox-Vertrag mit `aria-activedescendant`
|
||||
- verständliche Anzeige deaktivierter Commands einschließlich Begründung
|
||||
- Fokusfalle im Dialog und verlässliche Rückgabe an den Auslöser
|
||||
- Live-Status für Trefferzahl, Auswahl und blockierte Commands
|
||||
- responsive Darstellung bis 320 px, Reduced Motion und 200-%-Zoom-taugliche Struktur
|
||||
- Ctrl+K überschreibt keine Eingabe- oder Contenteditable-Kontexte, solange die Palette geschlossen ist
|
||||
|
||||
## Daten-, Security- und Betriebsgrenzen
|
||||
|
||||
- keine Datenbankänderung
|
||||
- keine Migration
|
||||
- keine Route, API oder Modul-ID umbenannt
|
||||
- keine Netzwerkaufrufe aus Command Platform oder Palette
|
||||
- keine automatische Speicherung, Veröffentlichung, Installation, Deaktivierung oder Löschung
|
||||
- explizite Permission ohne auflösbaren Permission-Resolver wird in der UI nach dem Deny-by-default-Prinzip nicht dargestellt
|
||||
- serverseitige Berechtigungsprüfung bleibt maßgeblich
|
||||
|
||||
## Verifikation
|
||||
|
||||
Neues Gate: `npm run verify:command-palette-registry`
|
||||
|
||||
Das Gate prüft:
|
||||
|
||||
- Registry als alleinige Quelle
|
||||
- Wegfall von `VIEW_LABELS` und `collectCommands()`
|
||||
- Zustandsauflösung, Aliase und Ranking
|
||||
- Favoriten- und Recents-Integration
|
||||
- sichere Registry-Ausführung
|
||||
- Tastatur-, Fokus- und ARIA-Verträge
|
||||
- Loader-Reihenfolge
|
||||
- Ausschluss von Netzwerk-, Schreib-, Polling- und direkten Produktivaktionen
|
||||
- Einbindung in `verify:all`
|
||||
|
||||
## Rollback
|
||||
|
||||
Rollback erfolgt durch Rücknahme der Änderungen an:
|
||||
|
||||
- `public/command-platform.js`
|
||||
- `public/global-navigation-ux.js`
|
||||
- `public/global-navigation-ux.css`
|
||||
- `tools/verify-command-palette-registry-1.44.0.mjs`
|
||||
- `package.json`
|
||||
|
||||
Persistente Fach- oder Benutzerdaten werden durch diesen Slice nicht verändert. Die bestehenden Local-Storage-Keys für Favoriten und Recents bleiben unverändert.
|
||||
Reference in New Issue
Block a user