feat(web): move the phrase pager under the roll, unify the transport (#78) - #94
Conversation
…ransport (#78) Asks 1 (jump-to-phrase) and 2 (compare two phrases overlaid) shipped earlier (06f32c5); this does the remaining 3 + 4: - Relocates the #splitView panel (pager, compare, tags, downloads) out of the capture form to directly under the piano roll, so paging/comparing happens beside the roll without scrolling back and forth. - Removes the split view's own Play/Stop — they only duplicated the main transport's play()/stop(). The main transport sits just above the roll, and renderPhrase() keeps `current` synced to the shown phrase, so its Play plays whatever phrase (or A/B overlay) is displayed. Pure layout/markup: no JS logic or data-flow change; element ids are unchanged so the existing wiring and the pager.js helper tests are untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TTUbGjzD8ysnVnCJnZJE95
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe ChangesSplit View Play/Stop Control Removal
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3b7dfbd026
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@web/static/index.html`:
- Around line 188-190: The text in the HTML file around line 188 incorrectly
states that users can play phrases "from the phrase panel that appears under the
roll," but the play control has been moved to the main transport interface above
the roll. Update the instruction text to clarify that the play control is now
part of the main transport above the roll, not in the phrase panel below it, so
users understand where to find the play functionality when working with cut
phrases.
🪄 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: 70a04148-d4fb-4170-99ab-de368fb6a0d0
📒 Files selected for processing (2)
web/static/app.jsweb/static/index.html
💤 Files with no reviewable changes (1)
- web/static/app.js
…ode (#78) Removing the split view's own Play (which did `renderPhrase(); play()`) lost its re-sync: if a curator nudged an arrange control (Generate / mode / seed / …) while the phrase panel was open, `arrange()` overwrote the shared `current` with the full arrangement, so the global Play auditioned the arrangement while the panel still showed "phrase N" (Codex P2). The global Play now re-renders the displayed phrase first when split mode is active. Also corrects the capture hint: play is the main transport above the roll, not the phrase panel below it (CodeRabbit). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TTUbGjzD8ysnVnCJnZJE95
Curation-ergonomics from the playtest (#78). Asks 1 (jump-to-phrase) and 2 (compare two phrases overlaid) shipped earlier (
06f32c5); this does the remaining 3 + 4.What
#splitViewpanel (pager, jump, compare, tags, downloads) out of the deep-nested capture form to directly under the piano roll, so paging and comparing happen beside the canvas without scrolling back and forth.▶ Play phrase/⏹ Stop. They only duplicated the main transport'splay()/stop(); the main transport now sits just above the roll, andrenderPhrase()already keepscurrentsynced to the displayed phrase (or the A/B overlay), so the main Play covers it.Scope
Pure layout/markup (
web/static/index.html+app.js) — no JS logic or data-flow change. Element ids are unchanged, so the existing wiring and thepager.jshelper tests are untouched..splitviewstyling is self-contained, so it renders as its own panel under the roll.Verification
node --test web/test)#splitViewcorrectly precedes#capture🤖 Generated with Claude Code
https://claude.ai/code/session_01TTUbGjzD8ysnVnCJnZJE95
Generated by Claude Code
Summary by CodeRabbit