fix: cinematic output type guard + legacy_only migration
- Migration 070: seeds 'Cinematic Highlight' output type (legacy_only, no workflow link) for fresh installs - Migration 071: patches existing cinematic output types — clears workflow_definition_id and forces legacy_only rollout mode. The row existed since 2026-03 with shadow mode + a linked workflow def; no BLENDER_CINEMATIC graph node exists so shadow execution would fail. - API guard in output_types POST + PATCH: cinematic output types cannot receive a workflow_definition_id (HTTP 400) - Defense-in-depth in dispatch_service: early legacy exit if render_settings.cinematic is true, regardless of rollout mode - docs: learning erfasst — cinematic rollout mode footgun Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,9 @@
|
||||
|
||||
## Learnings
|
||||
|
||||
### 2026-07-22 | Architecture | Cinematic Output Type existierte bereits mit falschem workflow_rollout_mode
|
||||
Der "Cinematic Highlight" Output-Type war seit März 2026 in der DB mit `workflow_rollout_mode = shadow` und einer `workflow_definition_id` gesetzt. Da es keinen `BLENDER_CINEMATIC`-Node im Workflow-Graph gibt, hätte jeder Cinematic-Render eine Shadow-Graph-Execution ausgelöst, die still scheitert. Fix via Migration 071: alle cinematic Output-Types auf `legacy_only` + `workflow_definition_id = NULL` patchen. Zusätzlich API-Guard in POST/PATCH `output_types.py` eingebaut: cinematic + workflow_definition_id → 400 Error. Defense-in-depth im `dispatch_service.py`: frühzeitiger Legacy-Exit wenn `render_settings.cinematic = true`.
|
||||
|
||||
### 2026-03-15 | Architecture | Per-order-line render overrides via JSONB
|
||||
Render overrides (JSONB) on OrderLine allow overriding any output type render setting (format, resolution, samples, engine, etc.) at order time without duplicating output types. Applied AFTER output type render_settings AND after transparent_bg/cycles_device_val assignment, so they take final priority. Also affects dispatch queue routing (width/height overrides change light vs heavy queue routing).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user