- Components view: three presence sections (Vorhanden / Nicht vorhanden /
Geloescht) with bidirectional move + soft-delete (audit-visible, restorable),
so the expert corrects the engine's best-effort negation in both directions.
- CE marking per component (bought robot/actuator/SPS) with a clear
"validate the integrated safety function (PL/SIL)" note when also safety-relevant.
Safe semantics: hazards are not suppressed, only provenance is surfaced.
- Project-create form: machine type is now a grouped dropdown from the engine's
controlled vocabulary (GET /machine-types) instead of free text.
- Knowledge graph: component→hazard edges use the real component_id.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
All 4 page.tsx files reduced well below 500 LOC (235/181/158/262) by
extracting components and hooks into colocated _components/ and _hooks/
subdirectories. Zero behavior changes — logic relocated verbatim.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>