Skip to content

feat(workspace): loop tonight's first section on the map - #903

Open
seonghobae wants to merge 15 commits into
developfrom
feat/workspace-loop-first-section
Open

feat(workspace): loop tonight's first section on the map#903
seonghobae wants to merge 15 commits into
developfrom
feat/workspace-loop-first-section

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Buyer-visible gap

After analysis, the role strip still said Loop section coming soon and the song-structure chips did not start anything. A bandmate who had just picked a part still had to invent the first listen.

Cites Figma 19-457 Song Structure Timeline and docs/design-system/component-contract.md.

Product outcome

  • Timeline chips start tonight's loop: Loop verse from 0:10 to 0:30.
  • Role-strip Loop verse · 0:10–0:30 arms that window and focuses the matching Section Roadmap card.
  • Live copy: Tonight's loop is verse · 0:10–0:30. Count in on that card.
  • Play stem / Solo stay off and point at the map loop. Isolation is not invented here. Stem Lab remains a separate lane (feat(workspace): open Stem Lab as honest isolation lanes #884).
  • Copy is bilingual (en/ko).

Renderer-owned focus repair

Fresh review found that the original focus target used accepted analysis-domain section.id values directly as HTML id values. BandScope accepts arbitrary string section IDs, so whitespace-bearing IDs can violate the renderer ID contract and duplicate analysis IDs can make a later timeline chip focus the wrong card.

The repair stays in this canonical owner:

  1. RED 90f7a9957c748602fd8c656358a9a542a89b5f16 requires renderer-owned focus authority even when an analysis ID contains whitespace.
  2. Production uses renderer positions for timeline loop state, card focus IDs, and focus routing rather than treating analysis IDs as DOM authority.
  3. Duplicate-ID coverage requires the clicked second timeline position to focus workspace-section-card-1.
  4. Current-head fixture maintenance makes that duplicate-section regression independent of demo-fixture cardinality so it reaches the production behavior instead of failing during test setup.

Exact current identity and repository evidence

  • Exact head: 1f3e8c75c57232208d2b723aa37137e47ccf46de.
  • Protected base: develop@acdbea6344fe1231c39535b575f4de35e4c607c9.
  • PR is open, non-Draft, mergeable, and remains unmerged.

Terminal-success repository workflows on this unchanged head:

  • ci 32107456428;
  • release 32107456346;
  • build-baseline 32107456365;
  • sbom 32107456344;
  • bandit 32107456335;
  • SAST Semgrep 32107456442; and
  • secret-scan-gate 32107456369.

security-audit 32107456342 and aggregate Security Scan 32107456381 are terminal-failure/non-passing. The exact security-audit merge checkout is faafdfa557570e636ad4173a09c557f3aa8dfda7; its first substantive failure is npm audit --workspaces --audit-level=high on the protected-base nanoid <3.3.18, pdfjs-dist >=5.6.83 <6.2.108, and undici <=7.28.0 set. This branch has no dependency/root-lock/suppression delta, so canonical #783 remains the owning dependency root.

The three recorded OpenCode CHANGES_REQUESTED reviews were all bound to predecessor heads (3f193bf..., c03d84d..., 7d14333...) and contained no BandScope product-code finding; each reported only the failed central coverage-evidence prerequisite. After verifying the current head and confirming zero inline review threads, those stale predecessor reviews were dismissed. Their dismissal is not approval and does not satisfy current-head OpenCode, central coverage, Strix, or qualifying independent-review requirements.

Security notes

  • No new filesystem, network, subprocess, or generic exec path.
  • Analysis section IDs and labels remain domain data, not renderer/DOM authority.
  • Scroll/focus stays inside renderer-owned workspace targets.
  • Inherited dependency findings are neither suppressed nor duplicated here.

Merge gate

Keep unmerged until one unchanged exact head has every applicable repository and central required gate terminal-success, including clean dependency/security evidence after #783 reaches protected develop, exact required coverage/docstring evidence, current-head OpenCode/Strix and other live required contexts, zero valid unresolved findings, and a qualifying independent non-author last-push approval. Branch protection must permit merge without bypass.

Queued, pending, skipped-required, cancelled, failed, predecessor-head, protected-base, model-only, self/author, or administrative-bypass evidence is not success.

Replace the dead Loop section coming-soon control with a rehearsal
action that arms the first role or focus window and jumps to that
Section Roadmap card. Timeline chips start the same loop. Isolation
playback stays uninvented.
@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.

Copy link
Copy Markdown
Collaborator Author

Exact-current-head c8268a9b1f594fc124ff9930e56524686b3594ba arms tonight's first map loop from the song-structure timeline and the role strip, then focuses workspace-section-{id}. Isolation playback stays uninvented.

@opencode-agent review
@cwl-noema-review review

Read-only review of this unchanged SHA. Do not self-approve, update the branch, or merge. Inherited #783 npm HIGH findings stay #783-owned.

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

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

Next review available in: 31 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: 84145b14-28b6-4871-8a24-a3cd76dab950

📥 Commits

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

📒 Files selected for processing (13)
  • 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.reduced-motion.test.tsx
  • apps/desktop/src/features/workspace/Workspace.test.tsx
  • apps/desktop/src/features/workspace/Workspace.timeline-region-i18n.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
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 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-loop-first-section

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.

seonghobae added a commit that referenced this pull request Aug 17, 2026
Merge the canonical #903 loop lane into the count-in work so the live Workspace owns and passes loopedSectionId into SectionRoadmap. Preserve the loop controls/locales and add an integration regression for a non-first loop target while scoping the Workspace timeline assertion to its region.
seonghobae added a commit that referenced this pull request Aug 17, 2026
Keep the canonical #903 loop guidance while recording the Section Roadmap count-in, update the architecture date, and make the changelog reflect first-or-looped runtime behavior.
seonghobae added a commit that referenced this pull request Aug 17, 2026
Preserve #903's existing test layout, scope malformed-time assertions to the timeline region, and add only the non-first-loop integration regression needed to prove Workspace passes the selected map loop into the count-in.

@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 3f193bf01b7f059454ba13f192865bccbf091aac.

  • Head SHA: 3f193bf01b7f059454ba13f192865bccbf091aac

  • Workflow run: 32045676667

  • 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

opencode-agent Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 1f3e8c75c57232208d2b723aa37137e47ccf46de
  • Workflow run: 32110723763
  • 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 1f3e8c75c57232208d2b723aa37137e47ccf46de.

  • Head SHA: 1f3e8c75c57232208d2b723aa37137e47ccf46de

  • Workflow run: 32110723763

  • 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 (12 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (12 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 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 c03d84d8f5797684136b7b4b4ca1fed90efbc7bd.

  • Head SHA: c03d84d8f5797684136b7b4b4ca1fed90efbc7bd

  • Workflow run: 32090847879

  • 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 (12 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (12 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 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 7d143339be4a26d34ef5a636ebcad6f139722d5c.

  • Head SHA: 7d143339be4a26d34ef5a636ebcad6f139722d5c

  • Workflow run: 32106883076

  • 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 (12 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (12 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 dismissed stale reviews from opencode-agent[bot], opencode-agent[bot], and opencode-agent[bot] August 18, 2026 07:07

Stale predecessor-head central-infrastructure review. This review is bound to 3f193bf01b7f059454ba13f192865bccbf091aac; the canonical PR head is now 1f3e8c75c57232208d2b723aa37137e47ccf46de. The review reports no BandScope product-code finding and only a failed central coverage-evidence prerequisite. Dismissing it does not approve the current head or satisfy any required coverage/OpenCode/independent-approval gate.

@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 1f3e8c75c57232208d2b723aa37137e47ccf46de.

  • Head SHA: 1f3e8c75c57232208d2b723aa37137e47ccf46de

  • Workflow run: 32110723763

  • 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 (12 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (12 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

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

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