feat(workspace): lead the handoff with tonight's first range - #1118
feat(workspace): lead the handoff with tonight's first range#1118seonghobae wants to merge 19 commits into
Conversation
Name the metadata-handoff download as tonight's first-action handoff and, when a named playable range exists, put that structured lead before the section dump so a bandmate can start the same instrument check the board already named. Omit firstAction rather than inventing one. Keep the lead full-band so a transient role filter cannot change the shared file.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthrough첫 번째 유효한 playable range를 Changes첫 실행 핸드오프 계약
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: 🔵 Low · up to The PR adds validated metadata handoff behavior with no confirmed security or deployment issue, but four reported ESLint errors in the shared contract code may still fail the lint gate; merge is reasonable with explicit owner confirmation or follow-up. Sequence Diagram(s)sequenceDiagram
participant Workspace
participant firstHandoffAction
participant createMetadataHandoffArtifact
participant Browser
Workspace->>firstHandoffAction: 곡의 첫 playable range 조회
firstHandoffAction-->>Workspace: firstAction 또는 null 반환
Workspace->>createMetadataHandoffArtifact: song과 firstAction 전달
createMetadataHandoffArtifact-->>Workspace: v1 또는 v2 handoff JSON 반환
Workspace->>Browser: Blob 다운로드 시작
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 Become the sole writer for canonical BandScope branch The Devin finding is valid against the exact current head: protected TDD first. Add the smallest RED contract tests proving: (1) legacy v1 handoffs without Then make the narrowest causal repair at the handoff contract boundary: introduce an explicit new artifact version for handoffs carrying structured Run the focused shared-types and export tests first, then desktop typecheck/lint/tests and all applicable repository quick/full verification. Commit the RED regression plus causal repair to this same branch. Reply with predecessor RED evidence, successor exact SHA, focused/full GREEN evidence, and any remaining exact-head gates. Do not resolve |
|
@opencode-agent Become the sole writer for canonical branch The user-facing download copy has just been repaired test-first: RED |
|
The exact-head writer lease requested above for |
|
@opencode-agent Become the sole writer for canonical BandScope branch Current exact-head
These are stale/inconsistent test fixtures, not evidence that the v2 validator should be relaxed. Make the narrowest test-only repair unless fresh source inspection disproves this hypothesis. Run the two focused test files first, then shared-types/desktop tests and normal quick/full verification. Keep DDD placement unchanged: wire-contract validation remains in |
|
The exact-head |
Product outcome
The ready workspace already names tonight's first playable range. This PR carries that same range into the metadata handoff so a bandmate can act on it immediately. When a valid named playable span exists, the artifact puts a structured
firstActionobject immediately after song identity; if the range cannot be named safely,firstActionis omitted rather than invented.The download control names the customer action rather than internal workflow jargon:
Download tonight's first-range handoff오늘 첫 연주 구간 공유 파일 다운로드Exact current identity
develop@749511c3ad4000090048718f685c6bee6b3d2c25dbd63a71277d483a2accd7bfbae8bd5119c8d331feat/workspace-handoff-first-actionPredecessor-head checks and reviews are historical only.
Current exact scope
firstHandoffActionuses the same playable-span authority as the ready map and fails closed on malformed runtime collections, blank ids, inverted ranges, and non-form section labels.firstAction; v2 requires a semantically validfirstActionwhose section and role ids, labels/names, and range still match the referenced artifact payload.Exact-head RCA and repair
Hosted
releaserun33463347083, job99718019113, checked out synthetic mergec25afe0d8d940af78210d7f64507e06b8928008efrom predecessor head750c276b4ee6de22028716f3cb4183c65b07248band protected base749511c3ad4000090048718f685c6bee6b3d2c25. Toolchain/bootstrap, frozennpm ci, documentation, security, supply-chain, lint, and typecheck passed before./scripts/harness/quickcheck.shexposed two stale test fixtures after the v2 semantic-reference validator was strengthened.Current head
dbd63a71277d483a2accd7bfbae8bd5119c8d331repairs only those inconsistent fixtures:firstAction.roleName. The test still proves JSON does not interpret or sanitize the literal, while the production validator remains strict.3. Version2is intentionally supported and its missing-firstActionfailure remains covered by the dedicated metadata-handoff versioning tests.No production validator, schema authority, dependency, workflow, or security gate was weakened. The detached candidate commit was compared with
750c276…before the branch ref moved; only these two test-fixture edits were present. The branch update was a non-force fast-forward after a fresh head/base/writer-state refetch.DDD / path boundary
No restructuring is warranted for this repair. Wire-contract admission remains owned by
packages/shared-types/src/metadata-handoff.ts; desktop export remains an adapter underapps/desktop/src/lib. The stale fixtures were repaired in their existing owning test suites rather than moving validation into the UI or duplicating contract authority.Security / privacy boundary
Untrusted analysis payloads flow through
firstHandoffAction→parseMetadataHandoffArtifact→JSON.stringify→ local download Blob. The artifact does not dereference files or URLs. Missing, malformed, or semantically inconsistent first-action data fails closed, and source paths are not exported.Dependency / supply chain
No dependency, lockfile, model, or workflow change is introduced. Canonical #783 remains protected-branch dependency-security truth; this branch does not suppress inherited findings.
Verification contract
Fresh repository workflows are running for exact head
dbd63a71277d483a2accd7bfbae8bd5119c8d331; queued or in-progress work is non-passing and no predecessor result transfers.Do not merge until this unchanged exact head has every applicable repository and central CI/build/release/security/SAST/SBOM/supply-chain/coverage/review gate terminal-success, zero valid unresolved findings, and a qualifying independent non-author approval under live protection. Queued, pending, neutral, skipped-required, cancelled, failed, predecessor-head, protected-base, model-only, self/author, synthetic, or administrative-bypass evidence is non-passing.
Closes no issue. Complements #739/#740 by making the exported metadata handoff name tonight's concrete playable-range action rather than an internal workflow label.
Summary by CodeRabbit
새 기능
개선 사항
문서