feat(workspace): name tonight's first open rehearsal comment on the map - #997
feat(workspace): name tonight's first open rehearsal comment on the map#997seonghobae wants to merge 11 commits into
Conversation
Name the earliest owned open comment so the room can read the MD note and open the matching rendered map section. Do not invent a note from resolved comments, assignments, approvals, cues, groove, setup, simplification, overlap, or range copy.
|
Warning Review limit reachedNext included review available in 42 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 (23)
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 |
…edits RED: after a player updates unrelated rehearsal state, Workspace creates a new song object even though the first open note is unchanged. The buyer-visible acknowledgement must stay armed instead of reverting to the pre-navigation copy.
GREEN: preserve the armed next-action acknowledgement when Workspace clones the same song for unrelated edits. Reset only when the owned plain-data song id or resolved first-open-note signature changes, and inspect id descriptors without executing hostile accessors.
Keep the Figma workspace next-action contract reviewable in Storybook with both actionable and guidance-only states, using the shared runtime component rather than duplicating its markup.
|
Re-review request for exact head |
# Conflicts: # AGENTS.md # CHANGELOG.md # CLAUDE.md # apps/desktop/src/features/workspace/Workspace.tsx # apps/desktop/src/locales/en/common.json # apps/desktop/src/locales/ko/common.json
|
Resolved merge conflicts against origin/develop (749511c): union-merged AGENTS.md/CHANGELOG.md bullets, sentence-merged CLAUDE.md, kept both import sets in Workspace.tsx (FirstOpenCommentCallout + firstRangeSqueeze; render paths intact), unioned en/ko locale tails (JSON valid, en/ko symmetric). No conflict markers remain. Merge head: c0de9de. |
Product outcome
Name tonight's first open rehearsal comment so the room can read the MD note and open the matching rendered map section.
Design authority: workspace next-action pattern plus
docs/design-system/component-contract.md. Distinct from first-lyric (#913), first-count (#995), first-transition (#994), first-setup (#910), and ready-board (#901). This does not invent a parallel MIR product; #828 remains the owner of #770. This does not replace #740 (handoff import).Current exact scope
develop@acdbea6344fe1231c39535b575f4de35e4c607c9.feat/workspace-first-open-comment.FirstOpenCommentCalloutnames the author, the holding part when an active graph node corroborates the ownedroleId, the labeled section, and the time.파트가/파트에) via{author}님이and{role} 파트, and localizes the section form label.Demo song: MD open comment for Keyboard 1 Right Hand at 0:10, body "Keep the keyboard color tone gentle on the first pass so the vocal cue stays forward."
Trust boundary
section.idis never DOM-ID authority. Navigation uses renderer child index under the song-structure region.behavior: "auto"when the OS requests it.Dependency ownership
Canonical #783 owns the protected-base JavaScript HIGH findings (
pdfjs-dist/nanoid/undici). This branch has no JavaScript dependency, lockfile, or vulnerability-suppression delta. Inherited npm HIGH must not be suppressed here.Merge gate
APPROVEDreview.Queued, pending, skipped-required, failed, predecessor-head, protected-base, author-only, model-only, status-only, or synthetic evidence is non-passing.