StepData.params merged workflow.metadata.params under step.metadata.params, so a remix from a GeneratedOutput of an enhancement step (upscale, remove-bg) inherited the enhancement form's fields (images, upscaler, the img2img:* workflow key) for any field the source generation didn't override. EXIF-sourced images have no graph 'workflow' key, so img2img:upscale leaked and the remix behaved like the enhancement workflow.
Make the merge lineage-aware via a server-set NormalizedStepMetadata.sourceLineage flag (derived in formatStep from the step's lineage marker): enhancement steps carry a complete source snapshot and are used verbatim; wildcard/snippet variants carry a partial prompt delta and still merge over workflow params; standard steps fall back to workflow params.
Also remove the dead 'Model A' source-metadata helpers (buildStepSource/resolveStepSource in workflow-metadata.ts) and their tests/mocks (multi-graph.test.ts) — never wired into production; the live path stores source params at the step-metadata root with a workflow marker.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>