feat: workflow graph system — blocks 1-20 complete checkpoint
Full graph-based workflow execution engine with: - WorkflowGraphRuntime with two-phase dispatch (collect → fire Celery tasks) - Node registry with contract validation, socket types, execution kinds - WorkflowRuntimeServices: preflight, context resolution, shadow-mode A/B - WorkflowRouter: CRUD + dispatch/preflight/run-history API endpoints - OutputTypeContracts: workflow binding, rollout-mode resolution - Admin router: output-type workflow binding endpoints - Frontend: complete workflow editor with drag-drop canvas, node inspector, module bundles, reference bundles, preflight panel, validation banner, authoring guidance, blueprint templates, shadow/rollout gate UI - Tests: comprehensive coverage for all workflow modules - Docs: NODE_CONTRACT_AUDIT and VALIDATION_ERROR_INVENTORY All 20 blocks from NEXT_20_BLOCK_BATCH_PLAN completed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# Workflow Validation Error Inventory
|
||||
|
||||
Stand: April 12, 2026
|
||||
|
||||
Dieses Inventar beschreibt die derzeit real existierenden Graph-Preflight- und Validation-Fehlerklassen im Workflow-System. Ziel ist, Backend-Preflight, Editor-Hinweise und Autoren-Debugging auf dieselbe Sprache zu bringen.
|
||||
|
||||
## Kategorien
|
||||
|
||||
### Context
|
||||
|
||||
Diese Fehler bedeuten, dass der Graph mit dem falschen Basiskontext oder mit einem ungültigen Kontext gestartet wird.
|
||||
|
||||
| Code | Severity | Root Cause | Erwartete Abhilfe |
|
||||
| --- | --- | --- | --- |
|
||||
| `invalid_context_id` | error | Die angegebene Context-ID ist keine UUID. | Gültige UUID aus Order Line oder CAD File verwenden. |
|
||||
| `context_not_found` | error | Die UUID zeigt auf keinen vorhandenen Datensatz. | Vorhandenen Datensatz wählen oder Seed-/Import-Daten prüfen. |
|
||||
| `context_kind_mismatch` | error | Workflow-Familie und übergebener Kontext passen nicht zusammen. | Order-Line-Graph mit Order Line starten, CAD-Graph mit CAD File. |
|
||||
| `invalid_context_kind` | error | Einzelne Node verlangt `order_line`, der Graph läuft aber nicht in diesem Kontext. | Kontext oder Node-Familie korrigieren. |
|
||||
| `cad_file_only_node` | error | CAD-Entry-Node wurde in einem Order-Line-Graph platziert. | Node in CAD-Workflow verschieben oder order-line-taugliche Alternative nutzen. |
|
||||
|
||||
### Setup Chain
|
||||
|
||||
Diese Fehler zeigen, dass die notwendige Vorbereitungslogik für den Renderpfad fehlt oder nicht renderbar ist.
|
||||
|
||||
| Code | Severity | Root Cause | Erwartete Abhilfe |
|
||||
| --- | --- | --- | --- |
|
||||
| `order_line_missing` | error | Order Line konnte nicht geladen werden. | Datensatz und FK-Kette prüfen. |
|
||||
| `order_line_not_renderable` | error | Legacy-Setup erkennt harte Renderblocker. | Voraussetzungen der Order Line reparieren. |
|
||||
| `order_line_skipped` | error | Legacy-Setup würde den Renderpfad bewusst überspringen. | Skip-Grund beseitigen. |
|
||||
| `missing_order_line_setup` | error | Downstream-Node hat keinen vorgelagerten `order_line_setup`. | Setup-Node früher im Graph platzieren. |
|
||||
| `setup_not_ready` | error | Setup ist vorhanden, aber nicht in einem lauffähigen Zustand. | Setup-Ursache beheben und erneut preflighten. |
|
||||
|
||||
### Data Source
|
||||
|
||||
Diese Fehler entstehen durch unvollständige oder nicht mehr erreichbare Eingabedaten.
|
||||
|
||||
| Code | Severity | Root Cause | Erwartete Abhilfe |
|
||||
| --- | --- | --- | --- |
|
||||
| `cad_file_missing_path` | error | CAD File hat keinen gespeicherten STEP-Pfad. | STEP-Referenz reparieren oder neu importieren. |
|
||||
| `cad_file_step_missing` | error | Gespeicherter STEP-Pfad existiert auf dem Dateisystem nicht. | Storage-/Mount-/Importpfad reparieren. |
|
||||
| `bbox_unresolved` | warning | Bounding Box konnte nicht aus GLB oder STEP abgeleitet werden. | GLB-Upstream, Exportpfad oder STEP-Quelle prüfen. |
|
||||
|
||||
### Runtime Gap
|
||||
|
||||
Diese Fehler bedeuten, dass der Graph aktuell noch keine echte Runtime-Implementierung für den Schritt hat.
|
||||
|
||||
| Code | Severity | Root Cause | Erwartete Abhilfe |
|
||||
| --- | --- | --- | --- |
|
||||
| `unsupported_node` | error | Node ist registriert, aber in der Graph-Runtime noch nicht ausführbar. | Legacy/Bridge behalten oder native Graph-Implementierung ergänzen. |
|
||||
|
||||
### Legacy Drift
|
||||
|
||||
Diese Warnungen markieren Stellen, an denen der Graph zwar laufen kann, aber vom bisherigen Legacy-Verhalten abweichen könnte.
|
||||
|
||||
| Code | Severity | Root Cause | Erwartete Abhilfe |
|
||||
| --- | --- | --- | --- |
|
||||
| `missing_resolve_template` | warning | Render-/Export-Pfad läuft ohne vorgelagertes `resolve_template`. | `resolve_template` vor Render-/Export-Nodes ergänzen. |
|
||||
| `template_missing` | warning | Für die Order Line wurde kein Template aufgelöst. | Template zuordnen oder Override setzen. |
|
||||
|
||||
### Artifact Flow
|
||||
|
||||
Diese Klasse deckt aktuell generische Vertrags- und Upstream-Probleme ab, die aus Message oder Code als Artefaktfluss erkennbar sind.
|
||||
|
||||
| Erkennung | Severity | Root Cause | Erwartete Abhilfe |
|
||||
| --- | --- | --- | --- |
|
||||
| `code` oder `message` enthält `artifact` | meist warning/error | Ein benötigtes Artefakt wurde upstream nicht produziert oder nicht verbunden. | Fehlende Node/Verbindung ergänzen und Contract im Editor prüfen. |
|
||||
|
||||
## Blocking-Regeln
|
||||
|
||||
- `error` blockiert Graph-Dispatch.
|
||||
- `warning` blockiert nicht automatisch, muss aber vor Rollout-Parität bewertet werden.
|
||||
- `unsupported_node` ist inhaltlich ein Runtime-Gap und wird als blockierend behandelt.
|
||||
|
||||
## UI-Sprachregelung
|
||||
|
||||
- Editor und Preflight sollen immer beide Ebenen zeigen:
|
||||
- Schweregrad: `error`, `warning`, `info`
|
||||
- Typ: `Context`, `Setup Chain`, `Data Source`, `Runtime Gap`, `Legacy Drift`, `Artifact Flow`
|
||||
- Action-Hints müssen immer direkt sagen, welche Node, welcher Kontext oder welche Upstream-Voraussetzung fehlt.
|
||||
|
||||
## Nächste Folgeschritte
|
||||
|
||||
1. Node-Katalog und Inspector mit denselben Kategorien annotieren.
|
||||
2. Validation bereits im Authoring vor Preflight so früh wie möglich sichtbar machen.
|
||||
3. Für echte `Artifact Flow`-Fehler langfristig explizite Codes statt Message-Heuristik einführen.
|
||||
Reference in New Issue
Block a user