Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

History Coverage Audit

Date: 2026-03-05

Note:

This repository currently includes the audit notes below, but not the helper script that originally generated them. To refresh the audit, compare engine::message::Action against history::should_record manually or add a new local audit script.

Scope

This audit checks engine::message::Action variants against history::should_record. It highlights potential mutating actions that are not currently history-recorded.

Current approach

  • Keep interactive editing/mixing actions undoable.
  • Keep transport/runtime query/report actions non-history.
  • Keep high-frequency automation playback actions non-history to avoid history spam.

Decisions

  • SetLoopEnabled/SetLoopRange/SetPunchEnabled/SetPunchRange/SetRecordEnabled are history-recorded (the previous audit left them as follow-up candidates, but they are now recorded).
  • TrackAutomationLevel/Balance/Mute remain non-history because these are often runtime playback and write-mode side effects.
  • Plugin discovery/query actions (List*, *Parameters, *Graph, *StateSnapshot) remain non-history.
  • MIDI learn arm actions remain non-history; actual binding changes are history-recorded.
  • Tempo / time signature edits are history-recorded via SetTempo, SetTimeSignature, and SetTempoMap.
  • Modulator changes are history-recorded via SetModulators.
  • Track hierarchy changes are history-recorded via TrackSetFolder, TrackSetParent, TrackToggleFolder, and TrackToggleMaster.
  • Clip plugin graph changes are history-recorded via SetClipPluginGraphJson.
  • Automation lane point edits are history-recorded via SetTrackAutomationLanes (lane-level granularity).
  • Pitch correction edits are history-recorded via SetClipPitchCorrection.

Follow-up candidates

If stricter undo semantics are needed, revisit:

  • Granular per-point undo for automation lanes (currently the whole lane snapshot is recorded).
  • Explicit manual-only plugin state restore actions