Files
vendoo/docs/engineering/ux-slice-18-safe-action-adapters.md
T

4.5 KiB
Raw Blame History

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.

Zusätzlich wird jede Action gegen window.VendooNavigation.currentView geprüft. Modulaktionen sind nur in admin, Artikelaktionen nur in history und Medienaktionen nur in media-library sichtbar. Ein technisch noch vorhandener, aber inaktiver DOM-Bereich reicht ausdrücklich nicht aus.

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- und Workspace-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:

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
  • aktive Workspace-Grenzen über VendooNavigation.currentView
  • 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

Lokal bestanden:

node --check public/safe-action-adapters.js
node --check tools/verify-safe-action-adapters-1.44.0.mjs
Safe Action Adapter Gate bestanden.

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