Skip to content

preserve(workspace): first-notes navigation pending shared contract/restack - #905

Draft
seonghobae wants to merge 13 commits into
developfrom
feat/workspace-open-first-notes
Draft

seonghobae wants to merge 13 commits into
developfrom
feat/workspace-open-first-notes

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 17, 2026 •

Copy link
Copy Markdown
Collaborator

Preservation status

This PR remains Open / Draft because it still contains unique buyer-visible first-notes and reduced-motion work, but it is no longer safe to treat as an independently mergeable Workspace/GrooveMap writer.

Fresh authority:

  • Protected target: develop@314ddeae7b775a4957594b599358c8255617eb2e.
  • Actual current head: a1a38fc4e537f22d7811592e49baeb9d816faeff.
  • Current compare is diverged: ahead 13 / behind 4, with the old acdbea... merge base. The PR is not mergeable in its current shape.

Valid delta to preserve

The branch contains useful rehearsal behavior that must not be lost merely because the stack is stale:

  • selected-role first-note/range navigation into the existing Groove Map;
  • aggregation of selected-role transcription across song sections;
  • fail-closed unavailable first-notes action;
  • keyboard focus of the Groove Map;
  • prefers-reduced-motion handling for interaction-triggered scroll;
  • role-aware English/Korean copy and focused regression coverage.

PR-0 therefore does not permit a simple close. These deltas need verified succession or an ordinary non-force restack/consolidation.

Repair findings before any merge

Shared transcription admission

This branch introduced a consumer-local isUsableTranscriptionNote() that validates onset/offset and also assumes velocity must be finite in [0, 1]. That is not a canonical BandScope contract: current repository fixtures include both normalized-looking values such as 0.7 and MIDI-like values such as 100, while the active shared admission owner #1254 deliberately does not invent a velocity scale.

Timing validity belongs to the shared TranscriptionNote admission boundary now owned by #1254, not to a Workspace-specific duplicate. Once #1254 (or a verified successor) is protected ancestry, this PR must adopt that released/shared contract and remove its local timing/velocity policy rather than maintaining two validators.

Workspace/GrooveMap single writer

PR #910 is the current protected-base Workspace/GrooveMap vertical and now owns the live role-setup interaction, role-aware Groove Map loading/empty states, focus behavior, and truthful loading-control contract. #905 and #910 overlap Workspace.tsx, GrooveMap.tsx, locale resources, tests, and component documentation. Parallel merge would create competing product semantics.

Required path: preserve unique #905 deltas, compare them against #910 current head, then ordinary non-force restack/consolidate after the shared timing prerequisite. Do not force-push, destructively rebase, or close this PR until all valid behavior/tests/evidence are either protected ancestry or explicitly present in a verified successor.

Merge gate

Keep Draft. Merge only after:

  1. shared timing admission from fix(shared): enforce valid transcription timing intervals #1254/successor is protected ancestry;
  2. consumer-local duplicate timing/velocity validation is removed;
  3. feat(workspace): set up tonight's part before the first entrance #910 overlap is reconciled without losing unique first-notes/reduced-motion behavior;
  4. the resulting exact head is a current protected-base descendant with all applicable required checks terminal-success;
  5. zero valid unresolved findings and a qualifying independent non-author last-push approval exist.

Queued/pending/stale/predecessor/self evidence is non-passing.

After a part is selected, Transcribe was a no-op for bass and a
coming-soon dead end for everyone else. Name the first notes or
range and focus the existing Groove Map so the next rehearsal
action is visible. Do not invent a new MIR extractor.
@coderabbitai

coderabbitai Bot commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 38 minutes

Limit details: You’ve used all 1 included review currently available under your plan.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 130dccb3-b371-415c-9aba-70035e91369e

📥 Commits

Reviewing files that changed from the base of the PR and between acdbea6 and b527477.

📒 Files selected for processing (13)
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • apps/desktop/src/features/workspace/GrooveMap.tsx
  • apps/desktop/src/features/workspace/Workspace.cue-action.test.tsx
  • apps/desktop/src/features/workspace/Workspace.first-notes-reduced-motion.test.tsx
  • apps/desktop/src/features/workspace/Workspace.test.tsx
  • apps/desktop/src/features/workspace/Workspace.tsx
  • apps/desktop/src/locales/en/common.json
  • apps/desktop/src/locales/ko/common.json
  • docs/design-system/component-contract.md
  • docs/doctoring/reduced-motion-first-notes-navigation.md

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.

@cursor

cursor Bot commented Aug 17, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head bc3a69b736b5d84197b0abd55d92ce308e29657e.

  • Head SHA: bc3a69b736b5d84197b0abd55d92ce308e29657e

  • Workflow run: 32103329810

  • Workflow attempt: 1

Coverage evidence

Coverage evidence job did not run or did not publish coverage evidence.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (10 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (10 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: component-contract.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: component-contract.md"]
  R2 --> V2["docs review"]
Loading

@opencode-agent

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: bc3a69b736b5d84197b0abd55d92ce308e29657e
  • Workflow run: 32103329810
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head bc3a69b736b5d84197b0abd55d92ce308e29657e.

  • Head SHA: bc3a69b736b5d84197b0abd55d92ce308e29657e

  • Workflow run: 32103329810

  • Workflow attempt: 1

Coverage evidence

Coverage evidence job did not run or did not publish coverage evidence.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (10 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (10 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: component-contract.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: component-contract.md"]
  R2 --> V2["docs review"]
Loading

@seonghobae
seonghobae enabled auto-merge (squash) August 18, 2026 13:57

Copy link
Copy Markdown
Collaborator Author

@opencode-agent Please run one fresh exact-current-head coverage/review pass on 4ac0046c288de17ddfd0147038a478a20e783da2 against protected develop@acdbea6344fe1231c39535b575f4de35e4c607c9. The only existing OpenCode CHANGES_REQUESTED review is bound to predecessor head bc3a69b736b5d84197b0abd55d92ce308e29657e, so it is not current-head evidence.

Protected central .github/main is now 9e0f806b745abdef724316117d9a849ba555dc99 and materially changed the prior coverage materialization boundary, including bounded relative requirement-include handling and trusted-uv version/platform validation fixes. Current BandScope head has repository ci, release, SBOM, cross-platform build, Bandit, Semgrep and secret scan terminal-success; inherited dependency-security failures remain #783-owned and must not be suppressed or reclassified as branch-local success.

Do not reuse predecessor evidence. Bind coverage/docstring/review output only to this exact head, publish the exact first failing boundary if the central contract still fails, and approve only if the current contract actually passes. Do not merge or enable auto-merge.

@seonghobae
seonghobae marked this pull request as draft August 18, 2026 15:40
auto-merge was automatically disabled August 18, 2026 15:40

Pull request was converted to draft

@opencode-agent

Copy link
Copy Markdown
Contributor

Queued @opencode-agent for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

4 similar comments
@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

1 similar comment
@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent opencode-agent Bot added area: ui-ux Frontend, interaction, design, or user experience priority: medium Normal-priority or P2 work scope: product-gap Customer-visible product gap status: draft Draft pull request type: feature New or expanded product capability labels Aug 22, 2026
@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

2 similar comments
@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @opencode-agent on this exact request for PR #905 at head a1a38fc4e537f22d7811592e49baeb9d816faeff. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@seonghobae seonghobae added the enhancement New feature or request label Sep 7, 2026 — with ChatGPT Codex Connector
@seonghobae seonghobae changed the title feat(workspace): open tonight's first notes on the groove map preserve(workspace): first-notes navigation pending shared contract/restack Sep 22, 2026
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 enhancement New feature or request priority: medium Normal-priority or P2 work scope: product-gap Customer-visible product gap status: draft Draft pull request type: feature New or expanded product capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant