feat(workspace): name the next instrument check on Ranges and Player - #1052
feat(workspace): name the next instrument check on Ranges and Player#1052seonghobae wants to merge 20 commits into
Conversation
Ranges now uses the same playable-span authority as the rehearsal map and tells the player to check tonight's notes on their instrument. The Player window names the first map section to loop and does not claim local-audio playback.
📝 WalkthroughWalkthroughRanges가 재생 가능한 범위와 악기 확인 문구를 표시합니다. Player가 첫 명명 섹션을 루프 대상으로 표시합니다. Workspace가 두 기능을 통합하고 영어·한국어 번역과 테스트를 추가합니다. ChangesRanges 화면
Workspace 화면 통합
동작 문서화
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: 🟡 Moderate · up to The Ranges guidance can name a later playable span instead of tonight’s first playable span when a later span has an overlap warning, which may direct musicians to check the wrong section. This is a bounded correctness issue that should be fixed before merge. Sequence Diagram(s)sequenceDiagram
participant Workspace
participant RangesFeature
participant PlayerFeature
participant Translator
Workspace->>RangesFeature: song과 activeRole 전달
RangesFeature->>Translator: 범위 상태 문구 요청
Translator-->>RangesFeature: 현재 로케일 문구 반환
RangesFeature-->>Workspace: 첫 범위와 역할 카드 렌더링
Workspace->>PlayerFeature: song 전달
PlayerFeature->>Translator: Player 상태 문구 요청
Translator-->>PlayerFeature: 현재 로케일 문구 반환
PlayerFeature-->>Workspace: 첫 명명 섹션과 오디오 상태 렌더링
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 9 functions across 7 files. (6 skipped: 6 unsupported.)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
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 |
|
@opencode-agent review Please review exact current head |
|
@opencode-agent Please perform the required independent formal review on exact current head |
|
@opencode-agent Please perform the required independent formal review on exact current head |
|
@opencode-agent review |
|
@opencode-agent review Review exact current head Revalidate first-playable-span ordering, Ranges/Player loaded-product integration, own-data/Proxy fail-closed reads for song/section/range authority, unique role/card identity, no-playback honesty, desktop exact 100% statement/branch/function/line evidence, and current security/supply-chain state. Bind any formal verdict only to this exact head; do not inherit predecessor-head, deterministic-fallback, model-unavailable, status-only, or rate-limited evidence. |
|
Queued @opencode-agent for PR #1052 at head |
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head product diff. Coverage is a separate gate.
Changed files
AGENTS.md— repository behaviorARCHITECTURE.md— repository behaviorCHANGELOG.md— repository behaviorCLAUDE.md— repository behaviorapps/desktop/src/features/player/index.test.tsx— TypeScript or JavaScript runtimeapps/desktop/src/features/player/index.tsx— TypeScript or JavaScript runtimeapps/desktop/src/features/ranges/index.test.tsx— TypeScript or JavaScript runtimeapps/desktop/src/features/ranges/index.tsx— TypeScript or JavaScript runtimeapps/desktop/src/features/workspace/Workspace.rehearsalSurfaces.test.tsx— TypeScript or JavaScript runtimeapps/desktop/src/features/workspace/Workspace.test.tsx— TypeScript or JavaScript runtimeapps/desktop/src/features/workspace/Workspace.tsx— TypeScript or JavaScript runtimeapps/desktop/src/features/workspace/firstRangeSqueeze.test.ts— TypeScript or JavaScript runtimeapps/desktop/src/features/workspace/firstRangeSqueeze.ts— TypeScript or JavaScript runtimeapps/desktop/src/locales/en/common.json— repository behaviorapps/desktop/src/locales/ko/common.json— repository behavior
Changed behavior
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Repository file: AGENTS.md"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Repository file: AGENTS.md"]
R1 --> V1["required checks"]
Evidence --> S2["Repository file: ARCHITECTURE.md"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Repository file: ARCHITECTURE.md"]
R2 --> V2["required checks"]
Evidence --> S3["Repository file: CHANGELOG.md"]
S3 --> I3["repository behavior"]
I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
R3 --> V3["required checks"]
Evidence --> S4["Repository file: CLAUDE.md"]
S4 --> I4["repository behavior"]
I4 --> R4["Review risk: Repository file: CLAUDE.md"]
R4 --> V4["required checks"]
Evidence --> S5["TypeScript/JavaScript: index.test.tsx (9 files)"]
S5 --> I5["TypeScript or JavaScript runtime"]
I5 --> R5["Review risk: TypeScript/JavaScript: index.test.tsx (9 files)"]
R5 --> V5["package test plus coverage"]
Evidence --> S6["Repository file: common.json"]
S6 --> I6["repository behavior"]
I6 --> R6["Review risk: Repository file: common.json"]
R6 --> V6["required checks"]
Evidence --> S7["Repository file: common.json"]
S7 --> I7["repository behavior"]
I7 --> R7["Review risk: Repository file: common.json"]
R7 --> V7["required checks"]
Findings
No source-backed product finding is synthesized from the coverage gate. A coverage miss belongs in the status comment.
- Head SHA:
b737906aba0b95251109e53434dd8860ff6664fd - Workflow run: 33246682101
- Workflow attempt: 1
- Coverage gate:
failure
Review outcome
Coverage is a gate, not the review. This body reviews the changed product files.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Repository file: AGENTS.md"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Repository file: AGENTS.md"]
R1 --> V1["required checks"]
Evidence --> S2["Repository file: ARCHITECTURE.md"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Repository file: ARCHITECTURE.md"]
R2 --> V2["required checks"]
Evidence --> S3["Repository file: CHANGELOG.md"]
S3 --> I3["repository behavior"]
I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
R3 --> V3["required checks"]
Evidence --> S4["Repository file: CLAUDE.md"]
S4 --> I4["repository behavior"]
I4 --> R4["Review risk: Repository file: CLAUDE.md"]
R4 --> V4["required checks"]
Evidence --> S5["TypeScript/JavaScript: index.test.tsx (9 files)"]
S5 --> I5["TypeScript or JavaScript runtime"]
I5 --> R5["Review risk: TypeScript/JavaScript: index.test.tsx (9 files)"]
R5 --> V5["package test plus coverage"]
Evidence --> S6["Repository file: common.json"]
S6 --> I6["repository behavior"]
I6 --> R6["Review risk: Repository file: common.json"]
R6 --> V6["required checks"]
Evidence --> S7["Repository file: common.json"]
S7 --> I7["repository behavior"]
I7 --> R7["Review risk: Repository file: common.json"]
R7 --> V7["required checks"]
OpenCode Review Overview
Coverage evidence did not pass, so approval is blocked. The formal pull-request review is the source-backed diff review, not this status comment. |
|
Exact-head OpenCode dispatch note for b737906: the central coverage-evidence job failed before PR execution while building its trusted Python 3.14 tool image because base lock installation could not find antlr4-python3-runtime==4.9.3. This is central .github toolchain evidence, not a BandScope source verdict; no approval or merge evidence was produced. |
|
@opencode-agent review Please perform the required independent formal review on exact current head Revalidate the first-playable-span authority, loaded Ranges/Player integration, selected-role behavior, own-data/Proxy/accessor fail-closed reads, stable immutable-song memo contract, unique card/selector identity, no-playback honesty, desktop 100% statement/branch/function/line contract, and current security/supply-chain evidence. Submit an authenticated |
Product outcome
Ranges now uses the same playable-span authority as the ready rehearsal map. A musician sees tonight's first named span and is told to check it on their instrument. Inverted or unnamed evidence is rejected instead of being shown as playable. The Player window names tonight's first map section to loop and states that this window does not play audio yet.
This completes the #957 playable-range contract on the Ranges board. It does not decode or play local audio; that remains #961. It does not extract
OverlapWarningListor Storybook tokens; that remains #897.Exact current identity
develop@749511c3ad4000090048718f685c6bee6b3d2c25.f2dcc58b967c006e29a73074dead62bf4d6b0321.feat/ranges-player-next-instrument-check.Current exact scope
playableRange/firstRangeSqueezedecide which spans Ranges may name.Verification
opencode-reviewremains non-passing because the latest authenticated OpenCode review isCOMMENTEDand bound to predecessor headb737906aba0b95251109e53434dd8860ff6664fd; a fresh independent review was requested forf2dcc58b967c006e29a73074dead62bf4d6b0321and predecessor verdicts are not evidence.Security Notes
song, section, role, range, overlap-warning, and transcription values from analysis results.developshipped JavaScript dependency truth. This branch does not copy or suppresspdfjs-dist/nanoid/undicifindings.Merge gate
Target is protected
develop. This is not a MIR product and not a parallel #770 owner; #828 remains the known-stem vehicle. Do not mix with #811, #828, or #897.Merge only after this unchanged exact head has terminal-success repository/central CI, security, SAST, SBOM/supply-chain, package/release and review gates, zero valid unresolved findings, a qualifying independent non-author last-push approval, and ordinary protected-branch acceptance. Queued, pending, skipped, cancelled, failed, neutral, predecessor-head, protected-base, model-only, self/author, status-only, rate-limited, or administrative-bypass evidence is not success. Do not self-approve.
Summary by CodeRabbit
새 기능
개선 사항