feat(editor): master mix strip (mute/solo/fader) in the Tracks pane - #308
Conversation
The master row carried no inline M/S/fader — its controls lived only in the mixer drawer (a deliberate early carve-out). Dogfooding kept reaching for a pane mute on the master, so the pane now mirrors the drawer: the mixControls gate collapses to "every row with a strip key" (new _trackRowShowsStripPure), riding the same key-generic mix-mute/mix-solo/mix-vol handlers and the same canonical partMix. Master keeps its output-bus semantics — its own mute silences it, another track''s solo never does (_mixerPartAudiblePure''s carve-out). Tests: tests/track_strip_master.test.mjs — the master-row strip predicate fails on main; stem/transcription rows keep strips; folders and malformed rows never strip. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: ChrisBeWithYou <chris@rifflarr.local>
|
Warning Review limit reached
Next review available in: 52 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. 📝 WalkthroughWalkthroughThe Tracks pane now shows inline mute, solo, and fader controls for the master mix row using shared mix-key visibility logic. New tests cover master, non-folder, and invalid rows, and the changelog documents the behavior. ChangesMaster strip controls
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
tests/track_strip_master.test.mjs (1)
32-48: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winExercise the rendered controls, not only the predicate.
These tests prove that rows have strip keys, but never call
render()or inspect the emittedmix-mute,mix-solo, andmix-volcontrols. A wiring regression could therefore leave the tests green while the Tracks pane still omits the master strip. Add a focused rendering assertion, or test an extracted pure markup helper.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/track_strip_master.test.mjs` around lines 32 - 48, Extend the focused master-row test around _trackRowShowsStripPure to exercise the rendered output, either by calling the row’s render() method or an extracted pure markup helper. Assert that the emitted markup includes the mix-mute, mix-solo, and mix-vol controls, while preserving the existing master mixKey and strip predicate assertions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CHANGELOG.md`:
- Around line 11-15: Update the older Unreleased changelog entry describing
master controls as mixer-only so it reflects their availability in the Tracks
pane, keeping the surrounding changelog content unchanged and consistent with
the newer entry.
---
Nitpick comments:
In `@tests/track_strip_master.test.mjs`:
- Around line 32-48: Extend the focused master-row test around
_trackRowShowsStripPure to exercise the rendered output, either by calling the
row’s render() method or an extracted pure markup helper. Assert that the
emitted markup includes the mix-mute, mix-solo, and mix-vol controls, while
preserving the existing master mixKey and strip predicate assertions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 144abff9-2c3f-494b-8557-cebfd0b6e1ec
📒 Files selected for processing (3)
CHANGELOG.mdsrc/track-session.jstests/track_strip_master.test.mjs
Requested by Christian while dogfooding: the master mix couldn''t be muted from the side pane — its M/S/fader lived only in the mixer drawer (a deliberate early carve-out, now reversed by the same person who asked for it originally).
The pane now mirrors the drawer: the
mixControlsgate collapses to "every row with a strip key" (new_trackRowShowsStripPurepure), riding the existing key-genericmix-mute/mix-solo/mix-volhandlers and the same canonicalpartMixstate — so the pane strip and the drawer strip are one state, and the master keeps its output-bus semantics (own mute silences it; another track''s solo never does, per_mixerPartAudiblePure''saudio:mastercarve-out).Tests:
tests/track_strip_master.test.mjs— master-row predicate fails on main; stem/transcription rows keep strips; folders/malformed rows never strip. Full suite 205 green + new, lint 0 errors.🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes
Tests