fix(codeql): wake required jobs with the exchanged target app token - #2040
fix(codeql): wake required jobs with the exchanged target app token#2040seonghobae wants to merge 144 commits into
Conversation
Preserve the existing four-file rerun recovery delta without emitter or concurrency policy changes. Local contract verification: 144 passed, 2 failed. Existing verdict-reader fixtures still expect the pre-pagination gh invocation; these files and the requester are unchanged from bf732f9. Workflow actionlint and diff checks passed. No hosted dispatch or push performed. Signed-off-by: Seongho Bae <me@seonghobae.me>
Match exact gh arguments and page-shaped responses. Preserve trusted-publisher assertions and exercise second-page success and failure after a full page of forged statuses. Signed-off-by: Seongho Bae <me@seonghobae.me>
Request PR state in GraphQL and preserve it in REST normalization. Reject missing state and empty or malformed heads before OpenCode dispatch, Strix dispatch, or Strix job rerun. Preserve explicit positive fixtures and add fail-closed regressions. Focused RED: 17 failed, 19 passed; final scheduler regressions: 380 passed under both normal and GITHUB_ACTIONS=true environments with warnings treated as errors. No dispatch, permission, queue, or cancellation policy changes. Signed-off-by: Seongho Bae <me@seonghobae.me>
Validate selected check, job, run, workflow and publisher before rerunning Strix. Preserve PR-target base-SHA executions through association and target-title checks; defer dispatch runs without authenticated target provenance. Local mock-only regressions: 402 passed in normal and CI environments with warnings treated as errors. No token, permission, queue or cancellation changes. Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Block terminal status publication and exact-job wake when SARIF upload does not succeed. Preserve existing finding verdicts and document the unresolved receipt boundary. Co-authored-by: Codex <codex@openai.com> Signed-off-by: Seongho Bae <me@seonghobae.me>
Compare already-fetched live base identity with event inputs before status consumption. Keep historical verdict provenance and artifact authority as unresolved follow-ups. Co-authored-by: Codex <codex@openai.com> Signed-off-by: Seongho Bae <me@seonghobae.me>
Supply the real base repository, ref and SHA required by the production dispatch shell. Preserve later-attempt redispatch coverage without weakening the live-base guard. Co-authored-by: Codex <codex@openai.com> Signed-off-by: Seongho Bae <me@seonghobae.me>
Merge exact 82ca0b8 into the handoff branch. Consolidate equivalent publication regressions and SARIF documentation while preserving live-base validation and rerun fixtures. Co-authored-by: Codex <codex@openai.com> Signed-off-by: Seongho Bae <me@seonghobae.me>
|
Terminal update for the existing partial LineageWeave reproduction on exact |
|
Fresh LineageWeave consumer reproduction on exact PR #983 head |
|
Fresh downstream exact-head canary from Required So both receivers irreversibly failed before same-run dispatch could even start. This is not evidence for accepting legacy/head-only status or weakening repository/PR/base/head/language/required-run/SARIF identity. The canonical repair still needs receiver/current-head enforcement downstream of authenticated terminal dispatch/publication, or an equivalent exact-run settlement barrier. No leaf rerun, synthetic status, no-op push, actor weakening, or gate bypass was used. |
seonghobae
left a comment
There was a problem hiding this comment.
P1 stale protected-base finding from fresh 2026-09-10 state. Protected .github/main advanced normally from 7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db to 88d49f726be8ce5d78f9f6966026a5b3b78a148f through merged #2057 after this head and its hosted generation were created. This PR still has exact head 6706c231ab06a3c91c43fdb5b989cfcd79fff593; GitHub now reports it non-mergeable while its body and CodeQL run 34251822255 remain bound to the former protected base. Treat #2057 as an intervening protected delta, not a race or a closure condition. Preserve every valid #2040/#1902/#2004/#2043/#2044 repair/test/evidence delta and adopt 88d49f7... by ordinary non-force semantic restack/merge. The successor must regenerate exact-head tests/workflows/review; attempt-7 and all old-base hosted results remain historical and cannot transfer. Do not force-push, destructively rebase, choose whole-tree ours/theirs, weaken the base-bound evidence identity, or close this PR merely because protected main advanced. Re-evaluate the pre-cutover direct-evidence and required-job-set findings only against the new exact base/head.
Exact-head RCA — CodeQL coordinator sees a stale Jobs API snapshotCurrent exact head The failure is not a SARIF/source vulnerability and not a missing workflow dependency. The coordinator job
The current script snapshots This is an Actions Jobs API read-after-job-completion consistency race. Do not solve it by removing the exact job binding, accepting in-progress jobs, weakening fail-closed behavior, manually rerunning, or adding an unbounded poll. Recommended causal repair: isolate the current-run job-map fetch into a bounded convergence loop. Re-read only This also reduces 60-job churn tracked in #1928 because an eventual-consistency miss no longer forces a whole fresh PR generation. No source change or GREEN claim is made by this comment. |
seonghobae
left a comment
There was a problem hiding this comment.
CO 인프라 복구 과정에서 두 핵심 workflow의 전체 patch를 검토했습니다. 병합된 것은 CO #1105/#1082/#1118/#1066/#1072 및 중앙 #1978/#2053이며, 이 #2040은 아직 병합하지 않았습니다.
추가로 확인할 cutover 경계: codeql-pr.yml의 기존 producer payload에는 producer_source_sha가 없고 이 head에서 새로 추가됩니다. 동시에 이 head의 codeql-scan-dispatch.yml은 SUPPLIED_PRODUCER_SOURCE_SHA가 없으면 무조건 CodeQL producer source is missing or malformed로 종료하며, run-name에도 /producer_source_sha 또는 /missing-source를 새로 붙입니다. 따라서 required_jobs의 top-level 호환성만으로 기존 protected/queued producer → 새 handler 호환성이 입증되지는 않습니다. 이미 시작된 구 producer 또는 구 revision을 고정한 consumer는 새 필드를 보내지 않습니다.
이는 현재 diff에 근거한 정적 cutover 지적이며, 이 세션에서 구 payload를 새 handler에 보내 실행 재현하거나 새 테스트를 수행했다는 뜻은 아닙니다. 병합 전 기존 producer envelope → 새 handler, 새 producer → 새 handler를 각 exact revision으로 검증하고, 구 revision을 지원하지 않는 정책이라면 미완료 구 실행을 안전하게 정리한 뒤 fresh producer 실행을 만드는 배포·복구 계약을 함께 제공해야 합니다. 누락 SHA를 임의 값으로 채우거나 base-bound/SARIF/actor 검증을 낮추는 방식은 제외합니다.
#2051의 별도 base_ref 포함 run-name 계약과도 함께 비교해야 합니다. CO 314645dc의 직접 CodeQL/supply-chain/SBOM은 push run34420642748에서 통과했지만, 그것이 이 중앙 required-dispatch 경로의 복구 증거는 아닙니다.
seonghobae
left a comment
There was a problem hiding this comment.
Fresh protected-main advancement changes this exact head's acceptance boundary again. Protected .github/main is now f578d8d960177ff113c25fd740619b4a483df300; compare from that tip to this head is diverged, 144 commits ahead / 11 behind, merge base 7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db. Preserve the valid producer/handler, SARIF, base-bound evidence and settlement deltas, but ordinarily/non-force adopt the full current protected delta before claiming current-base evidence. The old hosted generation (34251822255 CodeQL failure plus sibling successes) is historical because it was bound to the old base. Its dispatch-job log still supplies a valid RED for job-set convergence: the coordinator took one Jobs API snapshot and then failed CodeQL coordinator could not bind every pending language to an exact failed job. The successor must boundedly reread until every detected language has exactly one stable terminal rerunnable job identity or fail closed at a deterministic deadline; it must also preserve the authenticated pre-cutover direct-evidence seam. After current-base reconciliation, regenerate exact-head checks and qualifying independent review. No force/rebase, stale-evidence promotion, manual/no-op rerun, creator-only fallback, or gate weakening.
|
Fresh AIP consumer canary from |
|
BandScope read-only consumer canary handoff for the central CodeQL owner. |
|
Fresh LineageWeave consumer evidence for exact submitted head |
|
LineageWeave consumer recheck on exact |
|
BandScope read-only consumer canary, no central source ownership requested: |
|
Fresh consumer canary from
Thus at least the Python consumer failed ~24m before the exact-head producer dispatch even started, and the Actions consumer was terminal at the instant the producer job was created. This is not an Orgmetra source RED and should not be repaired by leaf polling/sleep extensions, synthetic statuses, predecessor verdict transfer, or rerun timing. Also, protected |
seonghobae
left a comment
There was a problem hiding this comment.
Fresh ConceptWeave consumer reproduction, 2026-09-10: #35 exact 9bb82f041483cb4e0cf1aa1f5450b413309f9a05 generated CodeQL PR run 34434790860 on protected central main@f578d8d960177ff113c25fd740619b4a483df300. Detect CodeQL languages succeeded. CodeQL compatibility analysis (actions) job 102741582733 then spent ~120 s in Read current-head CodeQL dispatch verdict and failed only at Release runner or enforce current-head CodeQL verdict; the subsequent Dispatch current-head CodeQL scan job 102745240270 succeeded. Security Scan and SAST are terminal success, while the CodeQL workflow remains terminal failure. This is a current protected-main consumer witness that the producer/handler settlement path is still incomplete; it is not a ConceptWeave leaf-source finding and a manual/no-op rerun would only replay the same owner defect.
Please preserve this as an acceptance fixture when reconciling #2040/#2051/#2056 onto current protected main: exact target repository/PR/head/base/required-run evidence, bounded terminal job-set convergence, and one authenticated run-wide wake must yield a terminal verdict before the compatibility client deadline. Do not weaken to creator-only/head-only status or transfer old-base 34251822255 evidence.
|
Fresh downstream ordering canary from The same-run receivers terminal-failed before the authoritative dispatch job began:
This reproduces the current receiver-before-producer/dispatch settlement defect on a new downstream head. It is not an AIP source-analysis finding and does not justify a leaf rerun, synthetic status, sleep-only workaround, or weaker provenance. The canonical owner still needs receiver/current-head enforcement ordered after authenticated same-run dispatch/publication settlement (or an equivalent exact-run barrier) while retaining repository/PR/base/head/language/required-run/SARIF identity. |
seonghobae
left a comment
There was a problem hiding this comment.
Fresh owner-path handoff from ConceptWeave: protected central main advanced again to cb0872c9a20d5584703dffacca65c096fc034c6c via #1938. This #2040 head is now diverged 144 ahead / 32 behind current protected truth; merge base remains historical 7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db. #2051 is likewise 18 ahead / 32 behind and currently Draft/non-mergeable. Preserve #2040 producer/handler/SARIF/settlement deltas plus #2051 {base_ref,base_sha}/rollout work and #2056 complete-failed-job-set/atomic-wake work, but adopt cb0872c... by ordinary non-force integration before treating any hosted evidence as current.
The unchanged ConceptWeave #35 consumer fixture still has Security 34434790791 SUCCESS, SAST 34434790777 SUCCESS and CodeQL PR 34434790860 terminal FAILURE: its compatibility analysis timed out/fails before the later dispatch job succeeds. Do not manufacture a leaf/manual rerun. Reproduce this on a current-central successor and close the authenticated terminal-settlement gap there: exact repo/PR/head/base/required-run/language/job/SARIF evidence, bounded job-set convergence, then one run-wide wake and terminal receipt before the compatibility deadline. COMMENT only; no approval/merge claim.
|
Fresh LineageWeave consumer reproduction on |
|
AIP predecessor canary: |
|
Fresh unchanged consumer canary after protected central Thus the consumer-before-producer settlement-ordering defect remains observable on a fresh exact head: required consumers fail before their own dispatch can produce a terminal verdict. Do not repair this in Orgmetra with sleeps/polling/no-op reruns/synthetic statuses or predecessor verdict transfer. Also note this PR still records base |
|
Read-only consumer handoff from Protected The live fast-mlsirm consumer canary #1773 exact |
|
AIP required-CodeQL canary refresh. The same receiver-before-dispatch settlement defect has now reproduced across 15 consecutive exact #59 generations; do not treat these leaf failures as AIP source-analysis findings and do not add leaf sleep/polling/synthetic status/PAT/no-op rerun/gate weakening. Latest exact canary is This is the same ordering defect: receiver/current-head enforcement can become irreversible before the authenticated same-run producer/publication has settled. The accepted repair remains to make enforcement causally downstream of terminal authenticated dispatch/publication, or provide an equivalent exact-run settlement barrier, while preserving exact repository/PR/base/head/language/required-run/SARIF/artifact/creator provenance. Fixed sleeps, polling unrelated runs, predecessor/historical reruns, synthetic status, leaf PAT fallback, no-op pushes, or sender/gate weakening are not substitutes. Canonical owner remains |
|
LineageWeave consumer reproduction, fresh exact head |
|
Fresh LineageWeave consumer reproduction on PR #997 exact head |
|
LineageWeave exact-head consumer reproduction 갱신입니다. PR #997 head |
|
LineageWeave fresh consumer reproduction after terminalization of exact head Consumer CodeQL PR run
Final consumer dispatch This exact reproduction is supplied to the canonical CodeQL owner because the leaf has completed its own checks and remains fail-closed solely at the central compatibility enforcement boundary. Please preserve base/head-bound evidence and repair/release the owner path rather than accepting a leaf waiver. |
seonghobae
left a comment
There was a problem hiding this comment.
[P1 authority/ancestry finding] Fresh protected truth is .github/main@cb0872c9a20d5584703dffacca65c096fc034c6c, but this exact-head PR body still calls 7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db the protected base and reports 144 ahead / 0 behind. A fresh current-main→6706c231ab06a3c91c43fdb5b989cfcd79fff593 compare reports merge-base 7fd571db..., so the branch has not adopted current protected ancestry. Treat the 133/3088 local suite and old-base hosted generation as preservation evidence only, not current-base acceptance. Please non-force reconcile all valid producer/handler/SARIF/settlement deltas onto current protected truth (or a verified versioned handler bootstrap successor) and regenerate exact-current evidence; do not close/discard this valid work, force/rebase destructively, or transfer predecessor GREEN. This also keeps ConceptWeave #35 as an unchanged-head downstream canary rather than inducing leaf churn.
|
Fresh Orgmetra source-change canary for the CodeQL settlement contract: |
|
Fresh Orgmetra source-change canary from canonical consumer #295, exact protected-base/head |
|
Fresh Orgmetra source-change canary from PR #295 exact Required CodeQL run
The same exact head already has external GHAS |
|
Fresh RCA from canonical CodeQL run |
Owner session:
fast-mlsirm-commercializationOutcome
Canonical combined successor for the central CodeQL producer/handler cycle, exact required-run recovery, strict head-envelope validation, and stacked-PR check admission.
6706c231ab06a3c91c43fdb5b989cfcd79fff5930f07c4e60f2e02fc60a0204a4cdfb0f42efbabc2main@7fd571dbcdbae6acf29d8f4ee704d7ba6297e4dbRoot causes and repair
codeql-dispatch/<language>/<base_sha>.pr_headtypes/schema and independently supplied legacy scalars must agree.PR_REVIEW_MERGE_TOKEN→OPENCODE_APPROVE_TOKEN→ same-repository token fallback chain remains explicit and authenticated..github/main, not against the target PR synthetic merge history; unprotected, rewritten, sibling, and unrelated sources fail closed.branchesandbranches-ignorefilters.failed-mode dispatch sends one top-levelrequired_jobsauthority that the protected pre-cutover handler can consume; only whole-attemptallmode uses the nested envelope, preserving the ten-property limit.Complete carryover and non-force lineage
This head completely carries the valid commits, tests, documentation, and requirements from #1902, #2004, #2043, and #2044. They remain open Proposed predecessors; none is closed or treated as delivered before ordinary integration.
6901dd6: two-parent merge of prior fix(codeql): wake required jobs with the exchanged target app token #2040 and exact fix(codeql): recover reruns after missing dispatch verdict #1902, with the contract rejecting the remaining head-only bridge.d7bb95f: base-bound-only publication, SARIF preservation gate, and response-creator validation.91a94a2: protected-handler source authentication plus the two current-head review repairs.6706c23: protected-handler wire compatibility after exact handler run34249932036exposedSUPPLIED_REQUIRED_JOBS: null.Exact-tree verification
git diff --check: passed0f07c4e60f2e02fc60a0204a4cdfb0f42efbabc2)Fresh exact-head hosted checks
Predecessor CodeQL run 34249195529 is terminal FAILURE. Exact handler run 34249932036 proved the cutover defect: protected main received the nested-only payload as
SUPPLIED_REQUIRED_JOBS: null. That failure is not transferred to the new child.The ordinary child generated a new exact-head generation:
git diff --checkpassed.Merge gates
Fresh exact-head terminal checks and a qualifying current-head independent approval remain mandatory. No predecessor check or review transfers. No merge, self-approval, auto-merge authorization, protection bypass, manual rerun, synthetic status, empty push, force push, destructive rebase, or Close was performed.
Summary by CodeRabbit
새 기능
버그 수정
문서