fix(noema): skip draft sidecar artifact upload - #2563
seonghobae wants to merge 7 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head direct review for 3eff240e213c9d2a3e3f382243ffb4c4b6c1ab13 (tree 1d41b1bcad3e13b5bf305120db4ef9f52d3c135e).
RCA is executable and bounded: RED 0141fee7… proves a live Draft still admitted the sidecar artifact upload, matching jobs 111068439116 and 111069409132. GREEN gates only that upload on the already-authoritative live-Draft output. Non-Draft evidence upload remains fail-closed; model routing, credential selection, exact-head admission, and publication are unchanged.
Fresh local exact-tree evidence: focused 10/10; warnings-fatal full suite 5,309 passed / 10 skipped / 40 subtests; 18,767/18,767 statements and 7,648/7,648 branches; Docstring 100%; compileall and diff check GREEN. actionlint was unavailable locally, so hosted workflow validation is still required.
Verdict: COMMENT / HOLD, not approval. Keep Draft until fresh exact-head hosted Checks and qualifying independent review are terminal.
Current stack reconciliation — 2026-10-03Canonical prerequisite #2530 has advanced to exact The four-file Draft-upload repair remains the valid leaf delta, but it is not current with the canonical writer stack. Keep Draft / Proposed and non-force merge-forward #2530 before any review admission. Fresh successor-head Checks and a qualifying independent approval remain required; predecessor results, skipped Draft CodeQL, or artifact-quota failure are not merge evidence. |
Superseding current-stack receipt — 2026-10-03Concurrent ordinary merge-forward head Current state remains Draft / Proposed / merge HOLD: CodeQL |
Exact-head review admissionCurrent authority:
The PR is Ready for review, but remains Proposed / status: blocked / merge HOLD. Fresh terminal exact-head hosted Checks and a qualifying independent |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head owner repair review for 70b297431f8e52a53c79b24a684e858840b447ae (tree b61e08cd71afdf1afd03f9812f530a7d226a264f).
RCA/RED: at predecessor 050075e5…, adding job-level continue-on-error: true still produced 10 passing focused tests, so the claimed non-Draft fail-closed upload guarantee had a vacuous oracle.
GREEN: the contract now parses the workflow YAML and inspects the exact jobs.noema-review and upload-step mappings. It rejects canonical, quoted, and spaced-key bypasses at step and job scope, rejects the existing || true weakening, and proves later-job isolation. Production workflow behavior is unchanged.
Evidence:
- focused: 10 passed
- complete branch-coverage suite: 5,310 passed, 10 skipped, 40 subtests
- production: 18,767/18,767 statements; 7,648/7,648 branches
- Docstring: 100%
- independent final re-review: findings 0
- hosted exact-head SAST 37125355159, Security 37125355121, CodeQL 37125355137 terminated before executable steps; not acceptance evidence
Status remains Proposed / blocked / merge HOLD pending executable exact-head hosted Checks and qualifying independent approval.
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head owner repair review for e8becafcf51b0d0063895f9889585eafd45cff49 (tree 4bd922621de35403e9a5cce2d34458e7d9acedc9).
RCA/RED: the prior oracle trusted the first matching display name, so a compliant no-op decoy could hide a second fail-open evidence upload while all 10 focused tests passed. A first action-identity draft also missed GitHub's case-insensitive owner/repository alias.
GREEN: the parsed job now requires exactly one case-normalized actions/upload-artifact@ action and binds that step's name, live-Draft condition, artifact name, and failure propagation. The mixed-case mutation derives the live pin, proves replacement, and uses an executable CHANGELOG.md decoy upload.
Evidence:
- focused: 10 passed
- complete branch-coverage suite: 5,310 passed, 10 skipped, 40 subtests
- production: 18,767/18,767 statements; 7,648/7,648 branches
- Docstring: 100%
- final independent re-review: findings 0
- hosted Security 37128406643 and CodeQL 37128406628 failed before steps; SAST 37128406727 remains queued with no steps
Status remains Proposed / blocked / merge HOLD pending executable exact-head hosted Checks and qualifying independent approval.
2026-10-03 action-identity oracle repair (authoritative)
e8becafcf51b0d0063895f9889585eafd45cff49; tree:4bd922621de35403e9a5cce2d34458e7d9acedc9; parent:70b297431f8e52a53c79b24a684e858840b447ae; live base: canonical fix(ci): integrate parser, security, response, and coverage gates #2530 ate4fcd3ad277930b02a734302d7a6d0fd9315ec14.upload-artifacttherefore produced 10 passed. Its first action-identity repair was also case-sensitive, so a lower-case decoy plus mixed-caseActions/Upload-Artifact@…actual upload remained accepted until an executable alias mutation made the focused contract fail.usesidentity, require exactly oneactions/upload-artifact@step, and bind that step's name, Draft gate, artifact name, and failure propagation. The alias mutation derives the live pinned reference, proves replacement occurred, and uses a successfulCHANGELOG.mddecoy upload. Production workflow behavior is unchanged.git diff --checkGREEN.37128406643jobs111218368569/111218368655and CodeQL37128406628job111218368304terminated before executable steps (steps=null); downstream jobs skipped. SAST37128406727, job111218369071, also terminated before executable steps (steps=null). These are infrastructure blockers, not acceptance evidence.APPROVEDreview remain mandatory. No bypass, auto-merge, manual rerun, Force Push, destructive rebase, close, or predecessor retirement is authorized.Earlier authority sections below are lineage evidence and are superseded by this section.
2026-10-03 canonical-owner restack (authoritative)
9b4e1dd553382a603ad8f8b7b8dc536bbbec6176; tree:f6a3c911f76bcb35578bb6581edf2dbea0e2d88f; live base: canonical fix(ci): integrate parser, security, response, and coverage gates #2530 ate4fcd3ad277930b02a734302d7a6d0fd9315ec14.force=false.37081020281and SAST37081020104failed before runner steps; CodeQL37081020279is Draft-skipped. These results are not acceptance evidence.Earlier authority sections below are lineage evidence and are superseded by this section.
Goal
Live Draft pull requests already skip contextual-orchestrator provisioning. Keep that intentional skip independent of GitHub Actions artifact storage quota while preserving fail-closed evidence upload for every non-Draft review.
RCA and executable evidence
.github#2530@153cbabecc067a4c67fc34bdc07e840b6f5b62d7, Noema job111068439116.github#2543@f5a1d47d0e744dbc2562ed7ce99a38cd18671742, Noema job111069409132draft=true, skipped every model/sidecar step, then ranUpload contextual-orchestrator sidecar evidence.actions/upload-artifactfound two pre-existing sidecar files and failed withFailed to CreateArtifact: Artifact storage quota has been hit.0141fee7ec11a003ec432c7e6c73dd858d9c30c8: focused contract 1 failed / 9 passed.3eff240e213c9d2a3e3f382243ffb4c4b6c1ab13: the upload uses the same live-Draft output as provisioning. Non-Draft upload failures remain job failures.Verification
Exact tree:
1d41b1bcad3e13b5bf305120db4ef9f52d3c135e.git diff --check: GREENactionlintwas not present locallyFresh exact-head hosted evidence
37078264466: SUCCESS37078264533: FAILURE in job111072965472; exact-head admission and live-Draft detection succeeded, model/sidecar provisioning skipped, then the protectedmain@37b10243…workflow executed the pre-repair upload condition and hit the same artifact-quota failure. Apull_request_targetworkflow source change cannot validate itself before protected integration.37078264629and SAST run37078264618: pre-runner infrastructure failures; failed jobs have no runner andsteps=[].State
Draft / Proposed / merge HOLD. Fresh protected-source validation and qualifying independent review are required. No force push, destructive rebase, bypass, or paid/model fallback is introduced. Model-backed review remains fixed to
orchestrator/free.