Skip to content

v3 library: song Details drawer + bulk edit — P2 - #703

Merged
byrongamatos merged 2 commits into
mainfrom
feat/v3-song-details-drawer
Jul 2, 2026
Merged

byrongamatos merged 2 commits into
mainfrom
feat/v3-song-details-drawer

Conversation

@ChrisBeWithYou

Copy link
Copy Markdown
Contributor

What

The per-song editing surface, evolved from the legacy edit modal into a v3 slide-in Details drawer: catalog fields (title/artist/album/year — written through the existing atomic manifest writer) plus the personal layer from #691 — your difficulty (1–5), tags, notes. The heart stays the existing favorite system.

  • Cards show a difficulty pip + tag count at rest (top-right, fading on hover so the action buttons keep that corner); un-annotated cards render byte-identical to before, so the windowed grid's height math is untouched.
  • Bulk edit from the select-mode batch bar: POST /api/songs/user-meta/batch — additive tag add/remove, leave/set/clear difficulty, mixed-state aware.
  • The core card action relabels to "Details" and opens the drawer via a feature-detected global, falling back to the legacy modal where the drawer isn't mounted.

Tests

16 new batch tests; the P1 user-meta suite stays green (21). tailwind.min.css rebuilt for the drawer's utility classes.

Stacking

Based on feat/v3-library-user-meta (#691) — merge that first. Sibling of the growth-edge and artist-alias PRs (all stack on #691; they touch different regions of songs.js).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Nm7tHs1Yvjjtnnu4nzJgdN

byrongamatos added a commit that referenced this pull request Jul 2, 2026
… reporting success (PR #703 review)

Check the batch/write responses and show an fbNotify error (keeping selection and drawer) instead of unconditionally closing as success.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@byrongamatos
byrongamatos deleted the branch main July 2, 2026 11:25
@byrongamatos byrongamatos reopened this Jul 2, 2026
@byrongamatos
byrongamatos changed the base branch from feat/v3-library-user-meta to main July 2, 2026 11:27
ChrisBeWithYou and others added 2 commits July 2, 2026 13:28
Evolves the per-song editing surface from the legacy modal into a v3
slide-in Details drawer (the filter-drawer idiom, body-appended): catalog
fields (title/artist/album/year, written through the existing atomic
manifest writer) plus the P1 personal layer - your difficulty (1-5),
tags, and notes - with the heart staying the existing favorite system.

- Cards badge the personal layer at rest (difficulty pip + tag count,
  top-right, fading on hover so the action buttons keep that corner);
  un-annotated cards render byte-identical to before.
- Bulk edit from the select-mode batch bar: POST
  /api/songs/user-meta/batch applies additive tag add/remove and a
  leave/set/clear difficulty across the selection (mixed-state aware).
- The core card action relabels to "Details" and opens the drawer via a
  feature-detected global, falling back to the legacy modal when the
  drawer isn't mounted.

16 batch tests new; the P1 user-meta suite stays green.
tailwind.min.css rebuilt for the drawer's utility classes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nm7tHs1Yvjjtnnu4nzJgdN
… reporting success (PR #703 review)

Check the batch/write responses and show an fbNotify error (keeping selection and drawer) instead of unconditionally closing as success.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@byrongamatos
byrongamatos force-pushed the feat/v3-song-details-drawer branch from 33ae4b7 to 4ab05e8 Compare July 2, 2026 11:28
@byrongamatos
byrongamatos merged commit feaaa5c into main Jul 2, 2026
0 of 3 checks passed
@byrongamatos
byrongamatos deleted the feat/v3-song-details-drawer branch July 2, 2026 11:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants