Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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