feat(workspace): name tonight's first remaining leftover on the map - #1102
feat(workspace): name tonight's first remaining leftover on the map#1102seonghobae wants to merge 3 commits into
Conversation
The ready rehearsal map names the leftover part that stays out at a leftover return so the band counts that part out from the top. Fail closed when the leftover return has nobody still out.
|
Warning Review limit reachedNext included review available in 18 minutes. View limit detailsLimit 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. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (14)
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 Please perform the required independent formal review for exact current head |
|
@opencode-agent Independently review exact current head |
Product outcome
The ready rehearsal map names tonight's first remaining leftover at a leftover return from existing
partGraphevidence so the leftover part stays out while another leftover comes back, and the band counts that leftover part out. This is not a come-in, tacet, leftover sit-out, leftover return, dropout, tutti, handoff, Fine, last-line breath, a leftover return with nobody still out, a continued sit-out with nobody returning, a new dropout after every original sit-out returns, or a new MIR product.Exact current identity
develop@749511c3ad4000090048718f685c6bee6b3d2c25.d9216d33b0450709d4826f131c39b9831535056e.feat/workspace-first-remaining-leftover.Current exact scope
firstRemainingLeftoveradmits a named leftover sit-out (at least one previously sitting-out named part is own-property active and at least one remains own-property tacet), then a later named leftover return where at least one leftover named part is own-property active and at least one leftover remains own-property tacet.is_active, missingis_active, unnamed roles, leftover sit-outs without a leftover return, leftover returns with nobody still out, come-ins without a leftover, all-active later sections after a full original return (tuttis), continued sit-outs with nobody returning, new dropouts after a full original return, and malformed roots fail closed.docs/doctoring/first-remaining-leftover.md.Distinct from adjacent first-X work
Verification
npm run typecheck --workspace @bandscope/desktopnpm run lint --workspace @bandscope/desktop./scripts/harness/quickcheck.sh(full harness left to required CI on this exact head)Security Notes
Attack surface
Untrusted
RehearsalSongJSON, section labels,partGraphnodes,is_active, role ids, and role names from analysis or a reopened project.Trust boundary
Workspace helper never opens files, URLs, IPC, WebView, subprocesses, model artifacts, or export paths. It only admits an own-property leftover sit-out followed by a later named leftover return where a leftover part is own-property active and another leftover remains own-property tacet.
Mitigations
Allowlist: section labels and role names must be meaningful text. A missing graph node is not a remaining leftover. Inherited
is_activeis isolated. A leftover return with nobody still out is a leftover return, not a remaining leftover. When a role is selected, only a remaining leftover after a leftover sit-out that includes that named part is shown. Safe failure returnsnullso the workspace shows the missing-copy next action.Test points
firstRemainingLeftover.test.ts, selected-role search, and the Workspace callout cover the demo all-active case, an explicit lead remaining leftover after a leftover return, selected-role scoping, inherited flags, missingis_active, continued sit-outs, tuttis, come-ins, leftover returns with nobody still out, new dropouts after a full original return, unnamed roles, empty graphs, and literal copy filling.Dependency and Supply Chain
developshipped truth. This branch inherits that JavaScript baseline and does not duplicate or suppress it. Inherited npm HIGH findings must not be suppressed here.i18n impact
Dependency / merge gate
developshipped truth. This branch inherits that JavaScript baseline and does not duplicate or suppress it. Inherited npm HIGH findings must not be suppressed here.Reviewer checklist
develop