feat(queue): make #966 open-PR merge trains executable - #968
feat(queue): make #966 open-PR merge trains executable#968seonghobae wants to merge 121 commits into
Conversation
📝 WalkthroughWalkthroughBandScope 1.0 제품 준비도와 병합 트레인을 문서화했습니다. GitHub open PR 큐 manifest를 갱신하고 검증하는 스크립트를 추가했습니다. Changes제품 준비도 및 PR 큐
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: 🟡 Moderate · up to The PR adds a live-refreshable PR queue, but invalid disposition values and records missing head revisions can currently pass validation and misroute follow-up actions. A required formatting check also remains failed, so merge should wait for these fixes and a clean exact-head check run. Sequence Diagram(s)sequenceDiagram
participant RefreshScript
participant GitHubAPI
participant ManifestFile
participant Quickcheck
RefreshScript->>GitHubAPI: develop SHA와 open PR 목록 요청
GitHubAPI-->>RefreshScript: PR JSON 페이지 반환
RefreshScript->>ManifestFile: 검증된 manifest 원자적 저장
Quickcheck->>ManifestFile: manifest 로드
Quickcheck->>Quickcheck: verify_open_pr_queue.py 실행
🚥 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 Continue only the existing canonical branch |
|
Queued @opencode-agent for PR #968 at head |
|
Queued @opencode-agent for PR #968 at head |
Outcome
Executable queue-control owner for Issue #966, stacked on canonical baseline #1116 without becoming a second baseline writer.
Exact current stack
develop@314ddeae7b775a4957594b599358c8255617eb2e.docs/gap-baseline-2026-08-31@87d38b0d64dc7b162450ef0ccd2ea5f9df99e361.docs/bandscope-product-readiness-baseline@aed2af9844d9705ae1641c805318ed24d1c9f06e.Baseline adoption receipt
#1116 now avoids embedding mutable Draft exact heads as long-lived source truth. Protected/released identities remain exact where appropriate; active #970/#1160/#968 exact identities are delegated to live PR state while the baseline owns stable semantic contracts. This prevents the baseline from becoming stale simply because a correctly progressing Draft gains an ordinary descendant.
The queue branch was advanced by ordinary two-parent commit
aed2af9844d9705ae1641c805318ed24d1c9f06e, using previous queue head7c4bf89eeb4cd3a5e913809d3f488f061e11c322as first parent and #111687d38b0d64dc7b162450ef0ccd2ea5f9df99e361as second parent. The ref advanced withforce=false.Fresh compare from #1116
87d38b0…to queue headaed2af9…reportsbehind_by=0and exactly 22 changed files. All 22 are queue-owned workflow/ADR/reference/manifest/script/test surfaces.docs/product-technical-gap-baseline.mdis non-divergent.The inherited baseline records #970's actual #866 adoption, v3 path-free source evidence, restart exact-byte re-admission, admitted-source snapshot decode continuity, mounted Open→Save preservation, Demucs compatibility admission including bounded PyTorch weights-only incompatibility, and the narrower remaining #1160 audible-authority gap without promoting Draft work into shipped truth.
Executable #966 contract retained here
refresh_open_pr_queue.pyowns bounded live inventory and exact identities;verify_open_pr_queue.pyvalidates graph/disposition consistency;collect_open_pr_readiness.pyadmits only unchanged non-Draft canonical-active entries with terminal required checks, qualifying exact-head approval, zero actionable threads and complete decision metadata;.github/workflows/open-pr-queue-live.ymlpreserves read-only live refresh/verification/parity evidence.Verification / merge gate
Keep Draft.
aed2af9…is a new exact head, so predecessor checks/reviews/approvals do not transfer. It requires terminal current-head checks, zero actionable unresolved findings and qualifying independent non-author last-push approval. Future #1116 movement requires another ordinary non-force descendant preserving the same queue-owned files. No force-push, destructive rebase, baseline source copy, self-approval, gate weakening or evidence transfer was used.