Skip to content

feat(workspace): name tonight's first solo plan on the map - #1020

Open
seonghobae wants to merge 26 commits into
developfrom
feat/workspace-first-solo-plan
Open

feat(workspace): name tonight's first solo plan on the map#1020
seonghobae wants to merge 26 commits into
developfrom
feat/workspace-first-solo-plan

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Product outcome

The mounted rehearsal workspace names tonight's first corroborated solo so a part can lock the owned run before the rest of the band comes back in. Open Keyboard 1 Right Hand solo at 0:10 moves to the exact stable map section; ambiguous or missing authority stays fail-closed on tonight's map with next-action guidance.

Exact current identity

  • Protected base: develop@acdbea6344fe1231c39535b575f4de35e4c607c9.
  • Exact head: 4be3ae300fdb1b75c42da9000c189014c599e5d1.
  • Exact merge-result checkout observed in repository CI: 948e5c65c53cdba42bd7f8963fdbf7f06e1a8147.
  • Branch: feat/workspace-first-solo-plan.
  • Open, non-Draft, mergeable, unmerged.

Scope and runtime authority

  • Buyer-visible soloPlan authority requires an active corroborated role, canonical labeled section, bounded time, owned role identity/display/priority, and owned single-line solo copy.
  • Structured rehearsal authority accepts ordinary arrays and plain objects only; accessors, Proxy/exotic objects, Maps/Sets/Dates/typed arrays/class instances, malformed arrays, unsupported values, and ambiguous navigation targets fail closed.
  • Open navigates by exact stable sectionId data equality inside one unambiguous mounted workspace renderer; it does not use positional sectionIndex authority or selector interpolation.
  • Reduced-motion Open uses behavior: "auto"; Korean next-action copy remains particle-safe.
  • Rejected runtime metadata is not logged as diagnostic payload.

Current-head verification

Repository-local workflows for exact head 4be3ae300fdb1b75c42da9000c189014c599e5d1:

  • ci 32825035986: success;
  • release 32825035902: success;
  • build-baseline 32825035894: success;
  • sbom 32825035931: success;
  • SAST Semgrep 32825035940: success;
  • bandit 32825035929: success;
  • secret-scan-gate 32825035897: success;
  • security-audit 32825035881: failure;
  • aggregate Security Scan 32825035861: failure.

The exact security-audit job 97731047810 checked out merge-result 948e5c65c53cdba42bd7f8963fdbf7f06e1a8147; its first failing step is npm audit --workspaces --audit-level=high, reporting protected-base nanoid <3.3.18, pdfjs-dist >=5.6.83 <6.2.108, and undici 7.0.0-7.28.0 HIGH advisories. This PR has no dependency/lock ownership, so those failures remain canonical #783 work and are not suppressed or worked around here.

All current inline review threads are resolved. Formal reviews are COMMENTED only; there is no qualifying independent non-author exact-head approval.

Dependency / merge gate

  • fix(security): establish canonical npm, PDF.js, Nanoid, and Undici baseline #783 remains the canonical protected JavaScript dependency-security owner.
  • Keep unmerged until the unchanged then-current head has every applicable repository and central CI/build/release/security/SAST/SBOM/supply-chain/coverage/review gate terminal-success, zero valid unresolved findings, and the required qualifying independent non-author last-push approval(s) under live branch protection.
  • Queued, pending, skipped, cancelled, failed, predecessor-head, protected-base, model-only, self/author, or administrative-bypass evidence is not success.

Name the corroborated Keyboard 1 Right Hand verse solo at 0:10 so Open
moves to the matching rendered map section. Fail closed on inherited,
accessor, or Proxy-substituted runtime metadata. Do not invent solo copy
from groove, cue, simplification, overlap, range, chords, function
labels, setup notes, transposition, fill, tuning, dynamics, articulation,
hook, confirmed overrides, harmonic explanations, or confidence notes.
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

첫 솔로 계획 데이터를 공유 타입에 추가했습니다. 안전한 계획 해석기와 워크스페이스 콜아웃을 구현했습니다. 콜아웃은 소유 렌더러의 섹션 ID로 이동합니다. 영어·한국어 번역과 런타임 검증을 추가했습니다.

Changes

첫 솔로 계획

Layer / File(s) Summary
솔로 계획 데이터 및 번역 계약
packages/shared-types/src/index.ts, packages/shared-types/test/index.test.ts, apps/desktop/src/i18n/*, apps/desktop/src/locales/*
RehearsalRolesoloPlan 필드를 추가했습니다. 섹션 라벨과 첫 솔로 계획 UI의 영어·한국어 번역을 추가했습니다.
첫 솔로 계획 안전 해석
apps/desktop/src/features/workspace/firstSoloPlan.ts, apps/desktop/src/features/workspace/firstSoloPlan*.test.ts
소유 데이터, 구조화된 런타임 그래프, 활성 역할, 시간 범위를 검증합니다. 우선순위와 안정적 ID로 첫 계획을 선택합니다. 검증 실패 시 null을 반환합니다.
워크스페이스 콜아웃 및 섹션 탐색
apps/desktop/src/features/workspace/FirstSoloPlanCallout*, apps/desktop/src/features/workspace/Workspace.*, apps/desktop/src/features/workspace/SectionRoadmap.tsx, docs/*, AGENTS.md, ARCHITECTURE.md, CHANGELOG.md, CLAUDE.md
콜아웃을 워크스페이스에 연결했습니다. 소유 렌더러에서 sectionId가 일치하는 단일 섹션으로 이동합니다. reduced-motion 환경에서는 즉시 이동합니다.
커버리지 계약 및 검증 연결
apps/desktop/vite.config.ts, apps/desktop/src/features/workspace/coverageContract.test.ts
새 프로덕션 모듈을 데스크톱 커버리지 목록에 추가하고 설정 참조를 테스트합니다.

Estimated code review effort: 4 (Complex) | ~60 minutes

Merge Risk: 🟡 Moderate · up to 7d3d6

This PR adds buyer-visible first-solo guidance and exact map navigation, but the current implementation can still accept exotic role metadata objects as trusted authority, which may surface incorrect solo guidance to customers. Merge should wait for that validation issue to be fixed; the remaining documentation follow-up is minor.

Sequence Diagram(s)

sequenceDiagram
  participant Workspace
  participant FirstSoloPlanCallout
  participant resolveFirstSoloPlan
  participant SectionRoadmap
  Workspace->>FirstSoloPlanCallout: song 전달
  FirstSoloPlanCallout->>resolveFirstSoloPlan: 첫 솔로 계획 해석 요청
  resolveFirstSoloPlan-->>FirstSoloPlanCallout: 소유 역할, 섹션 ID, 시작 시간 반환
  FirstSoloPlanCallout->>SectionRoadmap: 일치하는 data-section-id 탐색
  SectionRoadmap-->>FirstSoloPlanCallout: 단일 섹션 대상 반환
  FirstSoloPlanCallout->>SectionRoadmap: reduced-motion 설정에 따라 scrollIntoView 실행
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 80.56% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 36 functions across 23 files. (1 skipped: 1…
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 제목은 workspace 지도에서 오늘 밤의 첫 솔로 플랜 이름을 표시하는 주요 변경 사항을 정확하고 간결하게 설명합니다.
Full details: Docstring Coverage

Explanation

Docstring coverage is 80.56% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 36 functions across 23 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
📝 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-solo-plan

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[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[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.

Devin Review found 1 new potential issue.

Open in Devin Review

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