feat(workspace): name tonight's first ritardando plan on the map - #1047
feat(workspace): name tonight's first ritardando plan on the map#1047seonghobae wants to merge 25 commits into
Conversation
Stamp one owned ritardandoPlan from existing tempo-stability slowing onto the highest-priority active named vocal or bass, and open that landing on the rehearsal map. Half-time and double-time feel flips stay unnamed. Heuristic demo topology stays unnamed. This is not a new MIR product.
📝 WalkthroughWalkthrough첫 ritardando 계획을 위한 역할 계약, 템포 분석, 캐시 전달, 데스크톱 resolver, 워크스페이스 안내와 지도 탐색이 추가되었습니다. 지속 감속만 처리하며, 반감·배속 전환과 휴리스틱 데모 토폴로지는 제외합니다. Changes첫 ritardando 계획
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: 🟡 Moderate · up to This change persists and displays ritardando plan text, but model-sourced plans are not fully checked for ritardando semantics and oversized persisted values can be scanned repeatedly during workspace loading, potentially slowing the desktop experience. The PR is not merge-ready until these bounded validation risks are fixed or explicitly accepted. Sequence Diagram(s)sequenceDiagram
participant 오디오분리
participant 분석엔진
participant 계획Resolver
participant 워크스페이스
participant 지도섹션
오디오분리->>분석엔진: BPM과 beat_times 제공
분석엔진->>계획Resolver: 지속 감속 계획 데이터 제공
계획Resolver->>워크스페이스: 첫 계획과 landing role 반환
워크스페이스->>지도섹션: 일치하는 section index로 이동
지도섹션-->>워크스페이스: 열린 계획 상태 표시
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 90.23% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 133 functions across 25 files. (3 skipped: 3 unsupported.) ✨ Finishing Touches📝 Generate docstrings
🧪 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 Work only on the existing canonical branch Two current-head findings have been independently revalidated against production source and are BandScope/#1047-owned:
Do not duplicate unresolved thread Verification: focused Vitest resolver tests; focused Python ritardando/pipeline tests; Rust contract tests applicable to this branch; then the canonical full quickcheck and all exposed exact owned statement/branch/function/line coverage, formatting/lint, security and build gates. Resolve only the two #1047 threads actually repaired. Refetch exact new head/live base after push. Do not mark merge-ready or merge without unchanged-head required checks plus qualifying independent approval. |
|
@opencode-agent Please perform the required independent formal review on exact current head |
|
@opencode-agent Repair PR #1047 on its existing canonical branch only. Refetch immediately before every mutation; current evidence is exact head Two current-head BandScope-owned gaps remain. First, Second, review thread Run focused ritardando unit/integration tests first, then repository-pinned lint/format and canonical relevant/full analysis/desktop/shared-types verification. Do not touch the native optional-field parity owned by #1040, central workflows, unrelated fade/accelerando lanes, or security/review gates. No force-push, destructive rebase, self-approval, or gate weakening. |
|
@OpenCode Repair only the existing canonical branch Current unresolved thread I added the smallest RED at exact head Repair the owning boundary rather than reintroducing reconstructed-stem timing. Acceptance has two parts:
RED first for both paths: retain the cache round-trip regression and add a realistic orchestration regression proving a reusable-feature cache hit does not call the file-decoding Run focused Python tests, pinned Ruff lint/format, exact 100% owned analysis-engine coverage and full |
|
Fresh ownership handoff from #1049 review, verified against current #1047 head The shared feature-cache path is still coupled to the analysis-result schema: Please keep this repair in #1047 rather than duplicating it in #1049. Smallest regression: prove a feature-cache path is governed only by |
|
Ownership correction after a fresh whole-stack pass: do not implement the shared feature-cache schema decoupling in #1047. #1045 is the earlier canonical BandScope owner and its current exact head Keep #1047 scoped to ritardando/temporal behavior and, once #1045 lands the cache repair, deliberately restack/revalidate this branch on that dependency-root result. Do not copy the cache fix here and do not transfer #1045 predecessor checks/reviews. |
|
Current HEAD \ is pushed. The ritardando fix now preserves precise detected change timing and fractional section boundaries across Python, shared-types, Rust, and desktop; local Python verification is 703 passed / 24 skipped with 100% statement, branch, function, and line coverage. Please rerun hosted checks on this exact HEAD. |
|
Current HEAD 8c846ad0b9a95dbf451ad78a27d67a0e0e903984 is pushed. The ritardando fix preserves precise detected change timing and fractional section boundaries across Python, shared-types, Rust, and desktop. Local Python verification: 703 passed, 24 skipped; 100% statement, branch, function, and line coverage. Please rerun hosted checks on this exact HEAD. |
|
Fixed the valid CodeRabbit finding in current HEAD 76caa7752dbf9ac71d71a447d27013f0f773c291: native project validation now enforces the model ritardando template and tempo semantics while retaining arbitrary user copy. cargo fmt --check, 19 Rust core tests, and 8 ritardando contract tests pass. Please rerun hosted checks on this exact HEAD. |
|
Fixed the two valid Devin findings in current HEAD 8fc1a19: optional tempo now round-trips through the native analysis-status/project contract, and shared/native model ritardando validation is aligned so save/load cannot disagree. Shared targeted tests, desktop 250-test 100% coverage, Rust 21+8 tests, and Python 703 passed / 24 skipped remain green. Please rerun hosted checks on this exact HEAD. |
|
Fixed the remaining valid Devin finding in current HEAD f2879ed: explicit tempo null is rejected while omitted tempo remains valid. Added missing/null/zero/negative/string tempo coverage; Rust core now has 22 passing tests and the ritardando contract 8. Please rerun hosted checks on this exact HEAD. |
Summary
Name tonight's first ritardando plan on the mounted rehearsal map so the vocal or bass that eases into a slower tempo can open that landing.
ritardandoPlanonly when existing tempo-stability reports a sustained slowing (to_bpm < from_bpm) that is not a half-time (~0.45–0.55) or double-time (~2.0) feel flip.librosa.beat.beat_track/analyze_tempo_stability.Protected base:
develop@749511c3ad4000090048718f685c6bee6b3d2c25.Exact current head:
877ee60af8a0e8d19c522c5437b7aa16934c8bf6.Do not mix with #811, #828, or #897.
Test plan
Do not self-approve. Do not wait on checks.
Summary by CodeRabbit
새로운 기능
개선 사항
Security Notes
ritardandoPlanremains fail-closed: Unicode line separators and whitespace-only values are rejected, while user-authored single-line copy is preserved without normalization.Latest exact-head verification
develop@749511c3ad4000090048718f685c6bee6b3d2c25; current head:877ee60af8a0e8d19c522c5437b7aa16934c8bf6.Latest current-head evidence
Latest review repair
Latest review repair
Latest review repair