Skip to content

feat(workspace): name tonight's first tutti on the map - #1099

Open
seonghobae wants to merge 8 commits into
developfrom
feat/workspace-first-tutti
Open

feat(workspace): name tonight's first tutti on the map#1099
seonghobae wants to merge 8 commits into
developfrom
feat/workspace-first-tutti

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Product outcome

The ready rehearsal map names tonight's first verified full-band hit after a reduced section from existing partGraph evidence so the band does not miss the return. Play together from the top of the named section after the reduced earlier section. Detection is evidence-based: it does not infer come-ins, tacets, dropouts, handoffs, Fine, breaths, or other rehearsal semantics that are not represented by this contract.

Exact current identity

  • Protected target: develop@749511c3ad4000090048718f685c6bee6b3d2c25.
  • Exact current head: 6a4000f16c606ec78e07b6dfe71ef86fbea93691.
  • Branch: feat/workspace-first-tutti.

Current exact scope

  • firstTutti builds a trustworthy song-wide named-role catalog because production analysis exposes only active parts in each section's roles list while retaining active and inactive roles in the complete partGraph.
  • A reduction is a named section whose complete graph contains at least one own-property is_active: false; the tutti is the first later named section whose complete graph contains exactly one own-property is_active: true node for every expected song-wide role.
  • Missing/unknown/duplicate graph identities, incomplete graphs, inherited or missing activity flags, unnamed or contradictory roles, malformed sections, and fewer than two trustworthy roles fail closed instead of inventing a hit.
  • Repeated form labels are allowed; a later all-active verse can correctly follow a reduced verse because labels are player-facing form names, not unique section identities.
  • When a role is selected, only a verified tutti containing that role is shown.
  • Ready workspace copy names the next action: play together from the top after the reduced section, or confirm where every sitting-out part is back in before the first section when the hit is missing.
  • AGENTS / CLAUDE / ARCHITECTURE / CHANGELOG, the design-system component contract, and docs/doctoring/first-tutti.md reflect the current contract.

Verification and review state

  • TDD regressions cover the production-shaped inactive-role omission, incomplete candidate graphs, duplicate graph identities, and repeated form labels before their corresponding production fixes.
  • Current-head repository and central checks must be evaluated only on the unchanged exact head above. Queued, pending, skipped-required, cancelled, failed, predecessor-head, protected-base, model-only, self/author, synthetic, or administrative-bypass evidence is not success.
  • Current review threads are resolved only when their underlying finding is addressed; independent same-head formal review remains mandatory after the last push.

Merge gate

Summary by CodeRabbit

  • 새로운 기능

    • 준비된 리허설 화면에서 축소된 구간 이후 첫 투티(전체 합주) 진입 지점을 표시합니다.
    • 선택한 파트를 기준으로 다음 합주 위치와 안내 메시지를 확인할 수 있습니다.
    • 해당 정보를 찾을 수 없는 경우에도 적절한 안내를 제공합니다.
  • 문서

    • 첫 투티 규칙과 리허설 화면 동작에 대한 설명을 추가했습니다.
  • 테스트

    • 첫 투티 탐색, 표시 문구 및 한국어 번역 검증을 보강했습니다.

Name the first full-band hit after a reduced section from existing
partGraph evidence so the band plays together from the top.
@seonghobae seonghobae added area: ui-ux Frontend, interaction, design, or user experience priority: medium Normal-priority or P2 work type: feature New or expanded product capability scope: product-gap Customer-visible product gap labels Aug 31, 2026 — with Grok (by xAI)
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7517616b-e48b-42da-a641-ede74319eabd

📥 Commits

Reviewing files that changed from the base of the PR and between c372e26 and 6a4000f.

📒 Files selected for processing (4)
  • apps/desktop/src/features/workspace/firstTutti.test.ts
  • apps/desktop/src/features/workspace/firstTutti.ts
  • docs/design-system/component-contract.md
  • docs/doctoring/first-tutti.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

firstTutti가 곡 전체 역할과 partGraph의 활성 상태를 검증해 축소 구간 이후 첫 tutti를 탐지합니다. Workspace는 해당 구간과 이전 구간을 표시합니다. 번역, 테스트, 설계 문서와 변경 로그를 갱신했습니다.

Changes

첫 tutti 안내 기능

Layer / File(s) Summary
첫 tutti 탐지 및 검증
apps/desktop/src/features/workspace/firstTutti.ts, apps/desktop/src/features/workspace/firstTutti.test.ts
곡 전체 역할 카탈로그와 각 구간의 own-property is_active 플래그를 검증합니다. 조건을 충족하는 첫 tutti를 반환하고, 잘못된 입력과 검증 실패에서는 null을 반환합니다.
Workspace 표시 및 번역
apps/desktop/src/features/workspace/Workspace.tsx, apps/desktop/src/features/workspace/Workspace.test.tsx, apps/desktop/src/locales/*/common.json, apps/desktop/src/i18n/index.test.ts
Workspace가 선택된 역할을 고려해 첫 tutti 정보를 계산하고 안내 섹션을 렌더링합니다. 영어·한국어 번역과 렌더링 테스트를 추가했습니다.
계약 및 기능 문서
AGENTS.md, ARCHITECTURE.md, CHANGELOG.md, CLAUDE.md, docs/design-system/component-contract.md, docs/doctoring/first-tutti.md
ready Workspace의 첫 tutti 안내 계약과 탐지 규칙을 문서화하고 변경 로그를 갱신했습니다.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 6a400

The PR adds locally computed rehearsal guidance and rejects malformed or incomplete data without triggering external actions or changing persistent state. No actionable merge-blocking risk remains beyond normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant Workspace
  participant firstTutti
  participant RehearsalSong
  participant i18n
  Workspace->>firstTutti: 곡과 활성 역할 전달
  firstTutti->>RehearsalSong: sections와 partGraph 검사
  firstTutti-->>Workspace: 첫 tutti 정보 또는 null 반환
  Workspace->>i18n: 안내 문구 번역 요청
  i18n-->>Workspace: 번역된 제목과 메시지 반환
  Workspace-->>Workspace: First Tutti 섹션 렌더링
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 5 files. (2 skipped: 2… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 Workspace 지도에서 오늘 밤의 첫 tutti를 명명하는 주요 변경 사항을 정확하고 간결하게 설명합니다.
Full details: Docstring Coverage

Explanation

Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 5 files. (2 skipped: 2 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/workspace-first-tutti

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.

coderabbitai[bot]

This comment was marked as resolved.

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

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 3 new potential issues.

Devin Review

Comment thread apps/desktop/src/features/workspace/firstTutti.ts Outdated
Comment thread apps/desktop/src/features/workspace/firstTutti.ts
Comment thread apps/desktop/src/features/workspace/firstTutti.ts

@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 1 new potential issue.

Devin Review

Comment thread apps/desktop/src/features/workspace/firstTutti.ts

Copy link
Copy Markdown
Collaborator Author

@opencode-agent Please perform the required independent formal review for exact current head 6a4000f16c606ec78e07b6dfe71ef86fbea93691 against protected base develop@749511c3ad4000090048718f685c6bee6b3d2c25, and submit an authenticated GitHub formal APPROVED or CHANGES_REQUESTED verdict anchored to that unchanged head. Verify the current production-shaped first-tutti contract after the resolved regressions: song-wide own-property role identity catalog; reduced sections may contain inactive partGraph nodes omitted from active-only roles; candidate tutti requires complete, unique, all-active evidence for every expected role; duplicate/incomplete/contradictory/malformed graph evidence fails closed; repeated player-facing form labels remain distinct by timeline position; selected-role filtering is preserved. Current CodeRabbit review of this exact head reports no actionable comments, and the last remaining informational thread has been verified against current source and resolved. Do not mutate the contributor branch and do not inherit predecessor-head review evidence; required checks that are absent/pending are not success.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ui-ux Frontend, interaction, design, or user experience priority: medium Normal-priority or P2 work scope: product-gap Customer-visible product gap type: feature New or expanded product capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant