Skip to content

feat(workspace): name tonight's first groove change on the map - #1122

Open
seonghobae wants to merge 27 commits into
developfrom
feat/workspace-first-groove-change
Open

feat(workspace): name tonight's first groove change on the map#1122
seonghobae wants to merge 27 commits into
developfrom
feat/workspace-first-groove-change

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Canonical rehearsal-map change owner

This PR is the single current writer for the overlapping first-change rehearsal-map boundary previously split across #1122, #1124, and #1127. It now owns one buyer-visible change surface and one roadmap next-action model rather than three sibling micro-PRs editing the same Workspace, SectionRoadmap, locales, and product docs.

Exact current identity

Mounted product outcome

The ready workspace keeps the existing playable-range decision separate, then presents groove, section length, and confidence under one Tonight's first changes / 오늘 먼저 확인할 변화 surface. Each row preserves its own accessible label and exact next-action semantics. The Section Roadmap likewise renders one compact next-action area per destination card while preserving stable-ID targeting for groove, duration, and confidence.

The duration path includes the review repair from #1124: legacy migration compatibility placeholders are marked inside the project-load adapter and rejected as measured timing authority. An explicit measured one-second section remains valid, while a synthesized {0,1} legacy placeholder cannot become rehearsal guidance. Named missing/invalid timing fails closed instead of bridging measured sections.

Preserved sibling behavior and tests

  • feat(workspace): name tonight's first length change on the map #1124 duration domain implementation and regressions: bounded integer time-range validation, duplicate-ID rejection, first change/hold semantics, literal interpolation, stable destination identity, synthetic timing provenance, and native load_project preservation.
  • feat(workspace): name tonight's first confidence change on the map #1127 confidence domain implementation and regressions: named low/medium/high validation, duplicate-ID rejection, first change/hold semantics, literal interpolation, stable destination identity, and localized confidence words.
  • firstChangesIntegration.test.tsx preserves the sibling buyer-visible integration requirements on the canonical branch: held/change/missing duration and confidence behavior, EN/KO labels, coexistence with groove, and destination-only roadmap actions for repeated labels.

No predecessor check, review, or approval evidence transfers to this head.

Convergence / succession gate

#1124 and #1127 remain open until this exact canonical head is verified and their remaining doc deltas are either reconstructed here or shown non-unique. Only then may they be closed with exact technical succession evidence; do not merge all three sibling surfaces.

Current verification gate

Fresh workflows exist for exact head b750ad3dd4e556169ed71b63605b126159598b8b, but required jobs are currently queued and therefore non-passing. Keep unmerged until the unchanged exact head has all applicable repository and central CI/build/release/security/SAST/SBOM/supply-chain/coverage/review gates terminal-success, zero valid unresolved actionable findings, and a qualifying independent non-author last-push approval under live protection. Queued, pending, skipped-required, cancelled, failed, neutral, predecessor-head, protected-base, model-only, self/author, or administrative-bypass evidence is non-passing.

This consolidation does not replace #991, #828/#770, #811, #897, or #961.

Name the first consecutive feel change on the ready rehearsal map and
tell the player to count the new groove in before that section. When
the form holds one feel, keep the same count-in instead of inventing a
reset.
@seonghobae seonghobae added 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 labels Sep 1, 2026 — with Grok (by xAI)
@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

Next included review available in 35 minutes.

Check out review usage here.

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: Team

Run ID: 3c484c70-868b-4b2d-b2f2-81823dd3ff3c

📥 Commits

Reviewing files that changed from the base of the PR and between 4172ae1 and f973cb7.

📒 Files selected for processing (20)
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • apps/desktop/src/features/workspace/SectionRoadmap.test.tsx
  • apps/desktop/src/features/workspace/SectionRoadmap.tsx
  • apps/desktop/src/features/workspace/Workspace.test.tsx
  • apps/desktop/src/features/workspace/Workspace.tsx
  • apps/desktop/src/features/workspace/firstChangesIntegration.test.tsx
  • apps/desktop/src/features/workspace/firstConfidenceChange.test.ts
  • apps/desktop/src/features/workspace/firstConfidenceChange.ts
  • apps/desktop/src/features/workspace/firstDurationChange.test.ts
  • apps/desktop/src/features/workspace/firstDurationChange.ts
  • apps/desktop/src/features/workspace/firstGrooveChange.test.ts
  • apps/desktop/src/features/workspace/firstGrooveChange.ts
  • apps/desktop/src/lib/analysis.test.ts
  • apps/desktop/src/lib/analysis.ts
  • apps/desktop/src/lib/rehearsalTimingEvidence.ts
  • apps/desktop/src/locales/en/common.json
  • apps/desktop/src/locales/ko/common.json
📝 Walkthrough

Walkthrough

첫 named groove 변경을 계산하는 유틸리티를 추가했습니다. Workspace에는 첫 그루브 상태 요약을 추가했습니다. SectionRoadmap에는 도착 섹션의 다음 카운트인 안내를 추가했습니다. 영어와 한국어 번역 및 관련 테스트와 문서를 갱신했습니다.

Changes

그루브 안내

Layer / File(s) Summary
첫 그루브 변경 분석
apps/desktop/src/features/workspace/firstGrooveChange.ts, apps/desktop/src/features/workspace/firstGrooveChange.test.ts
firstGrooveChange가 형식 순서에서 첫 named groove 변경 또는 유지 상태를 반환합니다. 잘못된 입력을 건너뛰고 문구 토큰을 치환합니다.
Workspace 요약 안내
apps/desktop/src/features/workspace/Workspace.tsx, apps/desktop/src/features/workspace/Workspace.test.tsx, apps/desktop/src/locales/*/common.json
Workspace가 그루브 변경, 유지, 정보 없음 상태를 표시합니다. 영어와 한국어 문구 및 렌더링 테스트를 추가했습니다.
SectionRoadmap 다음 카운트인
apps/desktop/src/features/workspace/SectionRoadmap.tsx, apps/desktop/src/features/workspace/SectionRoadmap.test.tsx, AGENTS.md, ARCHITECTURE.md, CHANGELOG.md, CLAUDE.md
그루브 변경의 도착 섹션에만 다음 카운트인 안내를 표시합니다. 관련 테스트와 프로젝트 문서를 갱신했습니다.

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

Merge Risk: 🟡 Moderate · up to 4172a

Repeated section labels can cause the next count-in guidance to appear on multiple roadmap cards instead of only the actual destination section. The PR is not merge-ready until destination matching uses a stable section identity or the behavior is explicitly accepted.

Sequence Diagram(s)

sequenceDiagram
  participant Player
  participant Workspace
  participant firstGrooveChange
  participant SectionRoadmap
  Player->>Workspace: 리허설 곡 열기
  Workspace->>firstGrooveChange: 곡의 sections 분석
  firstGrooveChange-->>Workspace: 첫 그루브 상태 반환
  Workspace-->>Player: 그루브 요약 카드 표시
  Workspace->>SectionRoadmap: 곡과 그루브 상태 전달
  SectionRoadmap-->>Player: 도착 섹션의 다음 카운트인 표시
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 6 files. (6 skipped: 6… 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 제목은 워크스페이스 지도에서 오늘 밤의 첫 그루브 변경을 표시하는 주요 변경 사항을 정확하고 간결하게 설명합니다.
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 6 files. (6 skipped: 6 unsupported.)

✨ 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-groove-change

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.

devin-ai-integration[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Collaborator Author

Noema 실패 원인을 중앙 리뷰 어댑터에서 재현했습니다. RuntimeError: Noema reviewed line 3 is not an exact changed-side lineline 3은 소스 3행이 아니라 reviewed_lines의 세 번째 항목이며, strict validator는 정상적으로 잘못된 diff 좌표를 차단했습니다.

문제는 최초 요청과 repair retry가 모델에 허용된 (path, line, side) 집합을 제공하지 않고 raw diff에서 다시 추론하게 한 데 있었습니다. 중앙 수정 PR을 열었습니다: ContextualWisdomLab/.github#1612

수정은 정확한 변경 좌표를 파일·LEFT/RIGHT별 범위 JSON manifest로 제공하되, 후단 검증을 느슨하게 하거나 잘못된 좌표를 보정·삭제하지 않습니다. 선행 커버리지 기준선 복구 PR ContextualWisdomLab/.github#1610 병합 후 #1612를 병합하고, 이 PR의 동일 head에서 Noema를 다시 실행해 실제 canary를 확인하겠습니다.

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

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