feat(workspace): name tonight's first voicing plan on the map - #1013
feat(workspace): name tonight's first voicing plan on the map#1013seonghobae wants to merge 5 commits into
Conversation
Surface the owned voicing plan as the next rehearsal action and open the matching rendered map section. Do not invent voicing from groove, cues, simplification, overlap, range, chords, function labels, setup notes, transposition, tuning, dynamics, articulation, overrides, harmonic explanations, or confidence notes.
|
Warning Review limit reachedNext included review available in 27 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (28)
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 |
| const locale = detectPreferredLocale(); | ||
| const t = createTranslator(locale); | ||
| const songIdentity = stableVoicingPlanSongIdentity(song); | ||
| const runtimeSong = song as unknown as Partial<RehearsalSong> | null; | ||
| const named = resolveFirstVoicingPlan(song); |
There was a problem hiding this comment.
📝 Info: Voicing resolver recomputed on every render
The callout calls resolveFirstVoicingPlan(song) plus createTranslator on every render (apps/desktop/src/features/workspace/FirstVoicingPlanCallout.tsx:81-85), while the surrounding Workspace memoizes its translator and role map. The resolver sorts roles and sections each call. Correct, but inconsistent with the local memoization pattern.
Was this helpful? React with 👍 or 👎 to provide feedback.
|
Repair only canonical BandScope PR #1013 branch Current-head review finding Run the focused callout tests, desktop typecheck/lint/coverage, and applicable repository quickcheck. Commit only this performance repair to the same branch and report the exact successor head plus GREEN evidence. Do not create another PR, merge, force-push, self-approve, or weaken protection. |
Product outcome
After analysis, the room can see tonight's first owned voicing plan and take one next action: open that part on the map.
Cites
docs/design-system/component-contract.md(First Voicing Plan Callout).This is a setup-cue next action after first-setup-note, first-transposition-plan, first-tuning-plan, first-dynamics-plan, and first-articulation-plan. It is not a parallel MIR product and does not invent voicing from groove, cue, simplification, overlap, range, chords, function labels, setup notes, transposition plans, tuning plans, dynamics plans, articulation plans, confirmed overrides, harmonic explanations, or confidence notes.
Exact current identity
develop@acdbea6344fe1231c39535b575f4de35e4c607c9.feat/workspace-first-voicing-plan.b3e8922bc9507593698d86a6eb57fd73259391e1.Buyer-facing copy
{role} still has a voicing plan in the {section} at {at}plus the ownedvoicingPlantext.Open {role} voicing at {at}scrolls the renderer-owned[data-testid=song-structure-grid] [data-section-index=N].Lock that voicing on {role} at {at} before the room starts.파트.Safety and current-head repair
gettrap cannot substitute different buyer-visible voicing copy after the own-data check.7f79b6d7d445da5e10bad5f5e8ec30d5873613d1locks the Proxy get-trap case; production repairb3e8922bc9507593698d86a6eb57fd73259391e1consumes the descriptor value directly.scroll-behavior: auto.Exact-head verification state
Fresh repository workflows for
b3e8922bc9507593698d86a6eb57fd73259391e1have been dispatched and were queued at the latest refetch. No non-terminal result and no predecessor-head evidence is counted as success.Out of scope / merge gate