Skip to content

Phase 3 / M6: Classify patch changes and plan symbolic state migration #11

Open

Description

@norbot7865

Objective

Diff patch generations and select safe no-op, in-place, hard-swap, or crossfade transition plans while preserving compatible symbolic state.

Scope

  • Add compatibility fingerprints distinct from full fingerprints.
  • Classify no-change, control-state, control-schema-compatible, DSP-compatible, and DSP-incompatible changes.
  • Implement transition plans and validate explicit strategy/crossfade overrides.
  • Elide identical updates and use in-place updates only where state layout is proven compatible.
  • Plan control, automation, and bus migration by instrument/parameter ID and scope—not binding index.
  • Handle range/scope changes, removed parameters, invalid automation, and diagnostics according to policy.
  • Keep the last known-good engine/state if preparation or migration fails.
  • Add classifier, planner, migration, unsafe-override, and failure tests/fuzzing.

Acceptance criteria

  • Fixtures classify every change class deterministically.
  • Identical patches are elided and compatible updates preserve valid controls/mappings.
  • Incompatible changes select crossfade by default; failed plans do not corrupt the registry or running engine.

Spec: phase-3.md §§16–17, 19, 30, 32, 35, 40 (Milestone 6), 42.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestphase-3Phase 3: live controls, automation, MIDI, patch transitions, and nREPL

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions