Skip to content

feat(workspace): cue the next part to sit out - #1108

Open
seonghobae wants to merge 7 commits into
developfrom
feat/workspace-first-leftover-last-dropout
Open

feat(workspace): cue the next part to sit out#1108
seonghobae wants to merge 7 commits into
developfrom
feat/workspace-first-leftover-last-dropout

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Product outcome

After the band has fully come back in from an earlier reduction, name the next unambiguous part that sits out so the selected player knows to stay out and the rest of the band knows whom to count out. Do not relabel an absence that actually started before the completed return.

Exact current identity

  • Protected target: develop@749511c3ad4000090048718f685c6bee6b3d2c25
  • Exact current head: 3d52c3e1b4986194d960423b29e901d79723f219
  • Branch: feat/workspace-first-leftover-last-dropout

Current repaired contract

firstLeftoverLastDropout internally tracks reduction → partial return → remaining absent part → completed return → later multi-part dropout. Runtime graph evidence must be own-property, complete, unique, and boolean; malformed or ambiguous evidence fails closed.

A review-confirmed state defect allowed a role that had already returned to drop again while another original part remained out. The stale chain could then misclassify the continuing absence as a new post-return sit-out. The canonical branch now invalidates that stale chain whenever an inactive role lies outside the tracked remaining cohort and reseeds reduction tracking at that section. firstLeftoverLastDropout.redropout.test.ts preserves the three-role regression.

Customer-facing copy has a separate regression, apps/desktop/src/i18n/workspaceDropoutCopy.test.ts. English and Korean now say “Next part to sit out” / “다음에 쉬는 파트”, name the relevant sections, and give a direct count-out or stay-out action. The rendered Workspace.test.tsx expectations use the same rehearsal wording; internal leftover / last-dropout terminology remains implementation-only.

Security / ownership boundary

This helper consumes already-loaded rehearsal data only and adds no filesystem, network, IPC, subprocess, WebView, model, export, dependency, or credential authority. Canonical dependency-security ownership remains protected develop / #783. No gate or dependency policy is weakened by the copy repair.

Verification contract

All predecessor CI/review evidence is historical after 3d52c3e1b4986194d960423b29e901d79723f219. Repository CI/build/release/security/SAST/SBOM workflows have been freshly dispatched for this exact head and are queued at this point, so they are not passing evidence.

Merge only after one 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 actionable findings, and a qualifying independent non-author approval under live protection. Queued, pending, skipped-required, cancelled, neutral, failed, stale, protected-base, status-only, model-only, self/author, predecessor, or administrative-bypass evidence is non-passing.

Admit leftover sit-out, leftover return with remaining leftover, leftover
last-return, then a later named sit-out so the ready map can count that
leftover last-dropout out from the top.
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 16 minutes.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 3fe5c7f4-39a6-4840-987a-cc353cfdff42

📥 Commits

Reviewing files that changed from the base of the PR and between 749511c and 3d52c3e.

📒 Files selected for processing (16)
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • apps/desktop/src/features/workspace/Workspace.test.tsx
  • apps/desktop/src/features/workspace/Workspace.tsx
  • apps/desktop/src/features/workspace/firstLeftoverLastDropout.redropout.test.ts
  • apps/desktop/src/features/workspace/firstLeftoverLastDropout.selected-role.test.ts
  • apps/desktop/src/features/workspace/firstLeftoverLastDropout.test.ts
  • apps/desktop/src/features/workspace/firstLeftoverLastDropout.ts
  • apps/desktop/src/i18n/index.test.ts
  • apps/desktop/src/i18n/workspaceDropoutCopy.test.ts
  • apps/desktop/src/locales/en/common.json
  • apps/desktop/src/locales/ko/common.json
  • docs/design-system/component-contract.md
  • docs/doctoring/first-leftover-last-dropout.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.

devin-ai-integration[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Collaborator Author

@OpenCode Apply superpowers:using-superpowers, receiving-code-review, systematic-debugging, test-driven-development, and verification-before-completion. Become the sole writer ONLY for canonical feat/workspace-first-leftover-last-dropout if fresh refetch still shows exact head e2a00a5e4fdfd62762d69e51114ce516f39c5900 and protected develop@749511c3ad4000090048718f685c6bee6b3d2c25; refetch head/base, the target helper/test blobs, current review threads/checks, and active-writer evidence immediately before every write. If the branch moved, inspect the intervening delta and adapt rather than overwrite. Do not create another PR/branch, force-push, rebase, weaken gates, touch foreign repos, or resolve unrelated threads.

Fresh current-head review finding discussion_r3891970096 is valid against the exact source. In pendingRemaining, the state machine inspects only remainingIds. A role that already returned can drop again while another original leftover remains out; that re-drop is ignored. When the final remaining role returns, the helper records pendingLastReturn even though another part was already inactive before that last-return, and a later section can be mislabeled as the first post-last-return leftover last-dropout.

TDD/root repair on this existing branch:

  1. Add the smallest RED regression using three initially inactive roles. One returns at the first partial return, another returns to establish pendingRemaining, that already-returned role drops again while the final leftover remains out, the final leftover then returns, and the re-dropped role stays inactive. The sequence must not produce a leftover last-dropout attributed to the later section; fail closed/restart according to the existing contract.
  2. Repair the owning state-machine boundary. While pendingRemaining is active, explicitly detect any newly inactive role outside the currently tracked remainingIds that was active after the original/partial return. Do not let such a new dropout survive into pendingLastReturn. Prefer invalidating/restarting the candidate sequence at the earliest causal transition rather than adding a return-time symptom check. Preserve legitimate progressive returns and the existing selected-role semantics.
  3. Run the focused firstLeftoverLastDropout tests first, then full desktop tests/typecheck/lint with configured coverage, and the repository quickcheck if available. Commit only the minimal regression + causal source fix to this same branch. Reply to the valid Devin thread with exact evidence but resolve it only after the successor exact head is GREEN. Informational Devin threads may be resolved only after re-verifying they remain true on the successor head. Do not dispatch or manufacture approval/review.

Copy link
Copy Markdown
Collaborator Author

Exact-head dependency handoff for 18316bd8bbfbcd83e6e165ae58fa2829e08c90e5: required Noema run 33392679709 attempt 3, job 99629062666, checked out the protected develop@749511c3ad4000090048718f685c6bee6b3d2c25 control workflow and targeted this exact PR head. Credential minting, target visibility, trusted central source materialization, and sidecar installation all succeeded. The first causal failure is central review-sidecar serving/preflight, not BandScope product code: vendored contextual-orchestrator@8cd99f139915131ba0239bce12a5d6a5fd85394e, provider secrets 5/5; bounded probe recorded 413 request_too_large; sidecar then reached /healthz and provider-route preflight after 70s; each of three local gateway preflight attempts timed out after 120.002s with zero bytes; Noema review never executed. This is the existing central startup/serving/preflight ownership class tracked by ContextualWisdomLab/.github#1415; no correct BandScope-local source repair exists for this boundary, so this branch must not suppress or weaken the gate. Acceptance for this PR is a fresh required Noema run on unchanged exact head 18316bd8… that reaches the actual review and produces authoritative current-head verdict evidence.

@seonghobae seonghobae changed the title feat(workspace): name tonight's first leftover last-dropout on the map feat(workspace): cue the next part to sit out Aug 31, 2026
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