Files
HartOMat/docs/workflows/WORKFLOW_IMPLEMENTATION_BACKLOG.md

6.4 KiB

Workflow Implementation Backlog

Execution orchestration, ownership split, and merge order are tracked in docs/workflows/WORKERS.md.

Epic 1: Canonical Workflow Model

Tickets

  • E1-T1 Finalize canonical workflow JSON schema with version, nodes, edges, and optional ui.
  • E1-T2 Align frontend workflow API types with the backend schema.
  • E1-T3 Extend backend validation for duplicate IDs, invalid edges, unknown steps, and invalid params.
  • E1-T4 Add migration helpers for existing preset configs: still, turntable, multi_angle, still_with_exports.
  • E1-T5 Add tests for preset-to-DAG migration.

Primary Files

Epic 2: Node Registry and Settings Schemas

Tickets

  • E2-T1 Add a backend NodeDefinitionRegistry.
  • E2-T2 Define metadata and settings schema for each workflow node.
  • E2-T3 Add GET /api/workflows/node-definitions.
  • E2-T4 Provide schema-driven defaults and editor field groups.
  • E2-T5 Add composite bridge nodes for safe migration.
  • E2-T6 Extend node definitions with family, module key, input contract, output contract, and artifact roles.

Required Node Coverage

  • resolve_step_path
  • occ_object_extract
  • occ_glb_export
  • glb_bbox
  • material_map_resolve
  • auto_populate_materials
  • blender_render
  • threejs_render
  • thumbnail_save
  • order_line_setup
  • resolve_template
  • blender_still
  • blender_turntable
  • output_save
  • export_blend
  • stl_cache_generate
  • notify

Epic 3: Legacy Step Extraction

Tickets

  • E3-T1 Create a parity matrix from the legacy render pipeline.
  • E3-T2 Extract order_line_setup into a reusable service/task. completed
  • E3-T3 Extract resolve_template. completed
  • E3-T4 Extract material_map_resolve. completed
  • E3-T5 Extract auto_populate_materials. completed
  • E3-T6 Extract glb_bbox. completed
  • E3-T7 Extract output_save. completed
  • E3-T8 Extract notify. completed
  • E3-T9 Add executor tests for all extracted nodes. completed

Legacy Sources

Epic 4: Graph Runtime

Tickets

  • E4-T1 Introduce WorkflowContext. completed
  • E4-T2 Refactor executor to process nodes against context and node outputs. completed
  • E4-T3 Persist node-level run records, logs, timings, and outputs. completed
  • E4-T4 Support retry and failure policies. completed
  • E4-T5 Add execution mode switch: legacy, graph, shadow. completed
  • E4-T6 Add hard fallback to legacy dispatch on graph failure. completed
  • E4-T7 Make output_save graph-authoritative for still renders by disabling render-task self-publish whenever a downstream output_save node is present. completed
  • E4-T8 Persist authoritative still output metadata back into WorkflowNodeResult rows and keep shadow mode non-authoritative. completed
  • E4-T9 Extend runtime, dispatch, and task tests for graph-authoritative still persistence and legacy-safe notify handoff. completed
  • E4-T10 Extend graph-authoritative output_save semantics to export_blend, including asset persistence and node-result updates without mutating the primary order-line render output. completed
  • E4-T11 Extend graph-authoritative output_save semantics to blender_turntable, including graph/legacy-safe task argument handling, authoritative persistence, and node-result updates for video outputs. completed

Epic 5: Editor Parity

Tickets

  • E5-T1 Save and load edges.
  • E5-T2 Replace pipeline_step in node UI data with canonical node step.
  • E5-T3 Render node settings from backend schemas.
  • E5-T4 Add graph validation in the editor.
  • E5-T5 Add dry-run and dispatch from the editor.
  • E5-T6 Add workflow run inspection UI.
  • E5-T7 Reorganize authoring around family-specific starter graphs and family-safe palettes.
  • Progress: The editor already supports right-click node insertion, searchable family-aware palettes, auto-align, edge deletion, dry-run/dispatch, and run inspection. The current remaining parity slice is authoring polish and validation around the canonical non-legacy still graph, not missing basic editor mechanics.

Epic 7: Output-Type Invocation Profiles

Tickets

  • E7-T1 Align frontend/backend defaults and allowed values for output-type creation. completed
  • E7-T2 Define explicit workflow family on output types. completed
  • E7-T3 Separate invocation overrides from legacy raw render settings. completed
  • E7-T4 Add artifact-kind contract to output types. completed
  • E7-T5 Validate output-type family/workflow compatibility in backend APIs. completed
  • E7-T6 Redesign admin create/edit flow around workflow invocation instead of legacy renderer flags. completed
  • Progress: Output types now persist an explicit workflow family, artifact kind, and invocation override set; backend APIs reject family/artifact mismatches against linked workflows; serializer output exposes a typed invocation profile instead of leaking raw dict payloads.

Epic 6: Rollout and Quality

Tickets

  • E6-T1 Add shadow mode parity execution. completed
  • E6-T2 Build output comparison tooling. completed
  • E6-T3 Define golden test cases. completed
  • E6-T3a Harden the golden-suite harness against transient backend disconnects and 502/503/504 responses. completed
  • E6-T3b Close the primary .blend graph-authoritative persistence gap so graph blend exports complete the order, persist the order-line output, and publish a blend_production media asset. completed
  • E6-T4 Roll out per workflow or output type.
  • E6-T5 Keep legacy fallback after rollout.