Skip to content

feat(workspace): name tonight's first count on the map - #995

Open
seonghobae wants to merge 3 commits into
developfrom
feat/workspace-first-count-cue
Open

feat(workspace): name tonight's first count on the map#995
seonghobae wants to merge 3 commits into
developfrom
feat/workspace-first-count-cue

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

Product outcome

Name tonight's first count so the room can catch the entrance together. The Open action moves to the matching rendered map section.

Design authority: workspace next-action pattern plus docs/design-system/component-contract.md. Distinct from first-lyric (#913), first-transition (#994), first-count-in (#904), and first-intro (#943). This does not invent a parallel MIR product; #828 remains the owner of #770.

Current exact scope

  • Protected target: develop@acdbea6344fe1231c39535b575f4de35e4c607c9.
  • Branch: feat/workspace-first-count-cue.
  • Exact head: 4d353ca99a389189b2d7c1eda04067a071e1ac79.
  • FirstCountCueCallout names the entering part when an active graph node corroborates it, the owned cue.kind === "count" text, the labeled section, and the time.
  • Open scrolls the renderer-owned song-structure section. Missing targets stay guidance-only and do not claim navigation completed.
  • Do not invent an entrance from lyric, transition, groove, setup, simplification, overlap, range copy, or empty/whitespace cues.
  • Owned count text is rendered as a text node and is never rescanned as template syntax.
  • Korean copy keeps particle-safe role phrasing (파트가 / 파트 카운트) and localizes the section form label.

Demo song: Keyboard 1 Right Hand count at 0:10, hint "Enter on beat 2 after the pickup."

Trust boundary

  • Untrusted runtime song, section, time-range, role, cue kind/value, and part-graph metadata are accepted only as own data properties.
  • Inherited properties, accessors, sparse arrays, and arrays masquerading as records cannot establish an entrance or a holding part.
  • Analysis section.id is never DOM-ID authority. Navigation uses renderer child index under the song-structure region.
  • The count hint is bounded to 180 Unicode code points without splitting a surrogate pair.
  • Reduced-motion map navigation uses 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

Queued, pending, skipped-required, failed, predecessor-head, protected-base, author-only, model-only, status-only, or synthetic evidence is non-passing.


Open in Devin Review

Name the entering part when corroborated, the owned count cue, the labeled
section, and the time so the next action is obvious. Open moves to the matching
rendered map section. Do not invent an entrance from lyric, transition, groove,
setup, simplification, overlap, or range copy.
@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 44 minutes.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2246fe12-5f71-47c5-858e-2355a929b719

📥 Commits

Reviewing files that changed from the base of the PR and between 749511c and 9b38e2e.

📒 Files selected for processing (20)
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • apps/desktop/src/features/workspace/FirstCountCueCallout.particle.test.tsx
  • apps/desktop/src/features/workspace/FirstCountCueCallout.reduced-motion.test.tsx
  • apps/desktop/src/features/workspace/FirstCountCueCallout.test.tsx
  • apps/desktop/src/features/workspace/FirstCountCueCallout.tsx
  • apps/desktop/src/features/workspace/Workspace.test.tsx
  • apps/desktop/src/features/workspace/Workspace.tsx
  • apps/desktop/src/features/workspace/firstCountCue.inherited-metadata.test.ts
  • apps/desktop/src/features/workspace/firstCountCue.test.ts
  • apps/desktop/src/features/workspace/firstCountCue.ts
  • apps/desktop/src/i18n/index.test.ts
  • apps/desktop/src/i18n/index.ts
  • apps/desktop/src/locales/en/common.json
  • apps/desktop/src/locales/ko/common.json
  • apps/desktop/vite.config.ts
  • docs/design-system/component-contract.md
  • docs/doctoring/reduced-motion-first-count-cue-navigation.md

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Collaborator Author

Re-review request for exact head 1495112d54c1cdf3ac1376b45859ae23a525e084: all required status contexts are green on this head (including coverage-evidence and security scans) and all review threads are resolved. @opencode-agent please review current head 1495112d54c1cdf3ac1376b45859ae23a525e084 and update the review decision.

# 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
@seonghobae

Copy link
Copy Markdown
Collaborator Author

Resolved merge conflicts against origin/develop (749511c): union-merged AGENTS.md/CHANGELOG.md bullets, sentence-merged the apps/desktop bullet in CLAUDE.md, kept both import sets in Workspace.tsx (FirstCountCueCallout + firstRangeSqueeze; both render paths intact), and unioned en/ko locale tails (count-cue keys + range keys; JSON valid, en/ko symmetric). No conflict markers remain. Merge head: 9b38e2e.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

Open in Devin Review

Comment thread apps/desktop/src/features/workspace/FirstCountCueCallout.tsx
Comment thread apps/desktop/src/features/workspace/FirstCountCueCallout.tsx
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.

1 participant