feat(v3): one-click "Not split" library filter + piano stem pill - #1010
Conversation
|
Warning Review limit reached
Next review available in: 54 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. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe v3 Songs library is substantially rebuilt while preserving its major views and actions. Filter state and tuning behavior are simplified, stem filtering adds piano and “Not split,” and rendering, virtualization, drawers, polling, and lifecycle wiring are updated. ChangesSongs library
Estimated code review effort: 5 (Critical) | ~90 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant FilterDrawer
participant SongsState
participant SongsGrid
User->>FilterDrawer: select stem or tuning filter
FilterDrawer->>SongsState: update filter state
SongsState->>SongsGrid: rebuild library query
SongsGrid->>SongsGrid: fetch visible pages
SongsGrid-->>User: render matching song cards
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 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 |
Finding un-split songs took five taps (cycle each stem pill to its "lacks" state) — and was quietly wrong even then: the drawer offered five of the canonical six stems, so a piano-only song lacked all five listed and matched a hand-built "not split" filter despite being split. The stems section gains a "Not split" toggle that sets stem_lacks to every instrument stem in one tap (the same lacks-ALL query Stem Splitter's missing-stems view runs, backend semantics unchanged), and piano joins the pill row (already in the backend's allowed set). (Rebuilt on current main after #1003/#810/#92e78be rewrote the drawer region — the original branch conflicted whole-file.) Signed-off-by: topkoa <topkoa@gmail.com>
4cb173b to
7960af1
Compare
There was a problem hiding this comment.
Pull request overview
This PR improves the v3 Library Filters drawer to make “songs with no instrument stems” discoverable and correct, addressing a previously cumbersome (and subtly incorrect) “not split” workflow.
Changes:
- Added a one-tap “Not split” shortcut in the Stems filter section that presets
stems_lacksto “lacks all stems” and toggles off when already active. - Added a piano stem pill to the stems filter row so piano-only songs no longer incorrectly match a hand-built “lacks everything” filter.
- Documented the new v3 filter behavior in the changelog.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
CHANGELOG.md |
Adds release notes describing the new “Not split” shortcut and piano stem pill behavior. |
static/v3/songs.js |
Updates the v3 filter drawer UI: includes piano in the stem pill list and adds the “Not split” preset/toggle that sets stem_lacks to all stem IDs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
From a user question — "can I filter for songs with no stems or no lyrics?" No-lyrics already exists in the Filters drawer; not-split was possible but took five taps and was quietly wrong.
stems_lacksto every instrument stem — the same lacks-ALL query Stem Splitter's own missing-stems view runs. Toggles off if already active; any manual pill change simply replaces the state (the shortcut is just a preset, not a mode).pianojoins the pill row. The drawer offered five of the canonical six stems, so a piano-only song lacked all five listed and wrongly matched a hand-built "lacks everything" filter. Backend already allowspiano(_ALLOWED_STEM_IDS), so this is UI-only.No backend changes; existing
stems_lackssemantics (NOT EXISTS … IN (…)= lacks all listed) do the work. Existing v3 songs tests pass (7/7). Uses only utility classes already present in the drawer, so no Tailwind rebuild.Verified on screen by the maintainer — drawer styling and toggle behaviour confirmed.
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes