1.7 KiB
1.7 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| cpq-configurator-modul-registry | GEKO-76/16-Konzept: Modul-Registry im cpq-Configurator — Injection über DefaultCommandProcessor, Hook nach replay(), Heilung = Ableitung, Overrides = Events |
|
Konzept-Entscheidung (2026-07-03) für die cpq/geko-Abgrenzung der Schutzzaun-Tickets GEKO-76 (Steher-Logik) und GEKO-16 (Zaun zwischen zwei Punkten):
- Registry-Ort:
packages/frontend/src/configurator/(neues Verzeichnismodules/), kein neues Package. cpq bleibt domänen-agnostisch; geko liefert Module (Steher, Zaun-Zug) von außen. - Injection: Konstruktor des
DefaultCommandProcessor;Fire3D.vuenimmt bereitsprops.processorentgegen — die geko-App baut den Processor mit ihren Modulen und reicht ihn durch. - Zentraler Hook: nach
groups.replay(...)inDefaultCommandProcessor.replay()— einziger Engpass für Live, Undo/Redo und Placement; Module können Live/Replay nicht auseinanderlaufen lassen. - Semantik: Selbstheilung (Bauform A–G, Höhe) ist reine Ableitung aus der Topologie (
occupiedPmis(),Edge.rot) und landet nie im EventStore; manuelle Detailmenü-Overrides sind echte, undo-bare Events (Modul-eigene Event-Typen). - Mit aufzuräumen: hartkodierte
.name-CS_EIN_*-Selektoren imDefaultCommandProcessor→ Placement-Konfiguration des Moduls; Löschen ist im Processor noch unbehandelt → Kaskaden-Hook von Anfang an als Modul-Vertrag entwerfen. - Ticket-Quellen lokal:
~/claude-projects/robotunits/GEKO-76.xml,GEKO-16.xml; DrawIO-Abgrenzung:GEKO-76-steher-cpq-geko.drawio.