Files
claude-robotunits/memory/cpq-configurator-modul-registry.md
2026-07-09 09:21:49 +02:00

1.7 KiB
Raw Permalink Blame History

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
node_type type originSessionId
memory project 8d7f85b8-4927-4426-9e04-a8be7def3b5e

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 Verzeichnis modules/), kein neues Package. cpq bleibt domänen-agnostisch; geko liefert Module (Steher, Zaun-Zug) von außen.
  • Injection: Konstruktor des DefaultCommandProcessor; Fire3D.vue nimmt bereits props.processor entgegen — die geko-App baut den Processor mit ihren Modulen und reicht ihn durch.
  • Zentraler Hook: nach groups.replay(...) in DefaultCommandProcessor.replay() — einziger Engpass für Live, Undo/Redo und Placement; Module können Live/Replay nicht auseinanderlaufen lassen.
  • Semantik: Selbstheilung (Bauform AG, 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 im DefaultCommandProcessor → 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.

Siehe cpq-verbau-architektur, cpq-verbau-90grad-steher.