Conflicts were almost all upstream's take work inserting code next to
lines our earlier cycle-recording commits had touched, plus one API
change we had to follow:
- ClipInstance trim access changed (ci.trim_start -> a ci_trim_start
local; trim_end now needs .raw()). Took upstream's form throughout
timeline.rs; the already-merged lines around each hunk were using it,
so keeping ours would not have compiled.
- recording.rs wrap_at_cycle now bumps current_pass after
close_active_notes, so a note held across the boundary has its tail
attributed to the pass that's ending and its re-opened half to the one
beginning. Upstream's version is a superset of ours.
- Kept our headers-only timeline mode (drop the track area below 1.5x the
layer-header width); upstream had not touched that block.
Everything else (TRASH glyph, take actions, SetCycleMidiSeparateTakes,
engine cycle-MIDI plumbing, render_take_menu) was purely additive.
Workspace compiles; daw-backend's 32 tests pass, including the cycle and
MIDI take-slicing suites that sit directly on the resolved code.