Repository navigation
fix(codeql): collect complete fail-closed GHAS analysis history - #2555
Conversation
Retire the reverse-PR restack path and preserve the six dependency-review owner paths while recording protected main as the second parent.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true📝 Walkthrough
Merge Risk: 🟡 Moderate · up to Python 3.10 test collection can fail. Remove the test module’s direct tomllib import before merging. Security Architecture Review
🚥 Pre-merge checks | ✅ 5
✨ Finishing Touches 💡 1
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 |
Exact-head hosted RCA and executable owner replayConsumer: central pagination PR #2555, head The current hosted failures are distinct:
Actual local replay:
No replay was committed, pushed, adopted into the published branch or represented as protected-main shipment. Current #2555 remains unchanged. Owner #2531 must satisfy its own exact-head gates and independent approval before protected merge; accepted protected main can then be ordinary-merged into #2555. No open-branch immutable pin, fixture exclusion, CVE suppression, gate weakening, lifecycle retirement or credential change was used. |
Merge reviewed main 7554587 into the existing self-hosted transition branch. Keep trusted metadata and publishers separate from PR coverage execution; preserve literal auto review routing. Exact tree e0aba57 passed whole source review by the existing reviewer and full quality (5567 passed, 4 skipped, 40 subtests; coverage 100%).
- require k-csap Noema App tokens instead of legacy fallbacks - bind PR author and reviewer App actor before and after inference - cover unknown author, self-review, actor drift, and token selection Local verification: - pytest tests -q -rs -p no:cacheprovider --cov=scripts/ci --cov-branch: 5583 passed, 4 skipped, 85 subtests, 100% line/branch coverage - focused Noema/personal route suite: 327 passed, 45 subtests - independent review: APPROVE_SCOPE (personal-final-review.json sha256 d43d7659d2f9fefa35085eb8ca06567841223ed40c9b27b948e8391d8d4f5f5e)
Preserve reviewed self-hosted isolation and current-head receipt semantics. Include verified shell-literal, Noema evidence and Maturin contract corrections. Source review complete; CI, native inference and formal approval remain separate.
Reviewed-Tree: fb8b066 Source-Verdict-SHA256: 3a362294f13eb20f894d6a3ea1ccd65e41ce2da91a88e1232fa97e06ce6d6491 Publication-Adoption: msg_e3fa604a6fcd Source publication only; runtime, formal approval and Merge remain open.
Preserve shared base bytes exactly. Reviewed-Tree: 0e4f548 Local full gate: 5993 passed, 4 skipped, 86 subtests; Python coverage/docstrings 100%. Source publication only; runner, inference, formal App approval and protected merge remain open.
Reconcile the reviewed law lane with current base 362fed6 and keep the base-owned Noema/App producer delta. Quote the PostgreSQL server socket option and libpq host value for RUNNER_TEMP paths containing spaces. Source publication only; runtime, App approval and protected merge remain separate.
…ted-20261003 ci: stage all workflows on isolated self-hosted runners
…ral-ci ci: centralize law-agent quality on dedicated self-hosted runners
Resolve the 9 conflicts against main while preserving both contracts: - CHANGELOG.md, docs/product-technical-gap-baseline.md: keep both entries. - strix_report_scope.py: identical logic on both sides; take main's text. - codeql_ghas_configuration_identity.py: keep main's Link-header pagination (stricter: grammar/endpoint/filter binding, page cap); PR's per_page validation is retained once (main already carried the same check). The PR's pagination regressions are adapted to emit Link headers. - opencode-review.yml: keep main's verdict ordering and exit-0 inner contract (outer step still fails closed); keep the PR's file-based review transfer so paginated reviews never travel through argv. - fixture_github_reads.py, verdict/rerun tests: take main's superset. - test_codeql_ghas_configuration_identity.py: keep the PR's size-aware HTTPError.read stub (main's slice breaks on read(-1)). Verification: 21-module set + analyses pagination with -W error, bash 5.3: 587 passed; 22 additional dependent modules: 1004 passed.
Current lifecycle
3aad65b187897d2afc290cece0582a5c3d47a1e337b10243cec3d160ecc9c1be75c71428b160a70341c575a8ca04889ebcb0f512d71192a57f59e53ace45c17e96aa8d5ee9b6f2c3433b164e1085d1c60c42e9106a4276ce3e867ddaThe existing single writer normally integrated the verified #2530
dc54310cprerequisite with #2555's own published32dd90ce, retained both GHAS pagination and bounded HTTPError read/close safeguards, reused #2558's pypdf6.19.0 security correction, and applied only the retained independently reviewed Maturin real-close test-fixture repair. No peer checkout, original product checkout, dirty6, credentials, production deployment or protected policy was changed. This does not close or supersede the existing owner PRs.The previous complete source review was negative for the inherited recording-only HTTPError fixture. Its actual RED evidence is preserved:
1 passedtext followed by process exit1 from ResourceWarning is not acceptance. The corrected complete 96-file substantive independent re-review is PASS, report SHA256e6aee06ae0e11fc3c40ded4ed1a8d667876f78cbcc891ab40b349a2541010199. The reviewer independently observed one saved real close call and closed error/body/closer. Local review is not counted GitHub approval.On the actual clean committed writer, warnings-fatal selected tests passed: Python3.14.6 224 cases, Python3.10.20 172 cases; both process exit0 and JUnit failure/error/skip0. These are overlapping interpreter cohorts, not396 unique tests and not the full central suite. All717 candidate source bytes match the reviewed tree; original dirty6 and untracked reports17 hashes are preserved. Full-index base-to-committed-head diffcheck is clean.
The preceding byte-identical prerequisite locks were fully audited with the actual complete Python Security shell:10 requirements plus project manifest returned no known vulnerabilities, while the existing raw Strix-input override skip remained documented. The corrected tree changes only the test fixture relative to that audit tree, not the audited dependency inputs. The preceding selected runtime-quality10 Verify commands also passed locally; those passes are historical source-bound evidence, not fresh committed-head hosted gate results.
Normal push and fresh Git remote/PR head both verify the exact head above. New hosted Python3.10 compatibility, Python3.14 full quality, Security Scan, Python Security, Semgrep and runtime-quality runs materialized; their terminal results and exact-head qualifying approvals remain separate requirements. No duplicate manual producer or scanner was dispatched. Draft exemptions must not be treated as review success. This prerequisite must satisfy fresh applicable protections before any normal merge; semantic-data-portal#82/#107 merges and the #108 post-merge prerequisite remain unfinished.
Latest supported-interpreter collection correction
Head
3aad65b187897d2afc290cece0582a5c3d47a1e3adds only a verified two-line test-fixture repair. Python3.10 actual collection failed with exit2 at the unnecessary top-level tomllib import; removing it and using a self-contained loads stub retains the runpy tomli binding assertion without changing production parser consumers, dependencies, policy, permissions or credentials. CodeRabbit automatically marked its exact thread addressed in commit3aad65b; this is issue resolution, not counted approval.Complete96file substantive source re-review PASS binds the current tree/patch above and reportSHA256
0e8c86e0a25c0facb46c25f2044c791cb45bb9b1536f9c9017b98b922a23f053. The reviewer independently verified fallback binding identity and import order. Actual committed-head affected module passes24cases/JUnit24/failure-error-skip0/process0 under bothPython3.10.20 and3.14.6 with warningsfatal. Related246case tests passed beforecommit. The preceding cumulative224/172 local tests and hosted5427/100%quality/security results belong to predecessor1cda48bf, not fresh successor acceptance. New hosted checks and counted exact-head approvals must converge again before merge.Historical pagination verification
The original sections below preserve pagination intent and earlier scoped evidence; their historical234-case and219-statement coverage counts must not be relabelled as current whole-composition acceptance.
Summary
This is a prerequisite retrieval repair for ContextualWisdomLab/semantic-data-portal#82 and ContextualWisdomLab/semantic-data-portal#107, tracked in #2477. It does NOT resolve historical configuration retirement, enable a lifecycle policy, change identity pairing, upload/delete analyses, synthesize verdicts or authorize merge. Those remain separate verified follow-up work.
Root cause and regression
The old helper ignores the response Link header. The new 201-row/three-page regression proves that an active identity on page three remains visible and still rejects a head that lacks it. Poisoned next-page links are rejected before a second bearer request. API failures do not produce a complete prefix.
Verification
macOS /bin/bash 3.2 causes nine unchanged workflow fixture failures, also reproduced on the exact clean base. The local affected workflow-contract run uses installed Bash 5 through a scratch-only interpreter substitution. This is not a claim that the entire central suite or hosted required gates passed. Independent local review and fresh protected-head hosted security/approval remain required.
Security boundaries
Existing owner dependency/hash-lock and scanner-finding repairs are now included as described above; no new credentials, raw runtime secret reads, cross-origin redirects, deployment changes or gate weakening. Base/head configuration identity policy remains unchanged; obsolete-upload retirement is not part of this PR.
Developer experience:
The existing JSON transport callers retain their return shape. Analyses callers receive complete, validated history or an explicit failure rather than a silently truncated prefix. The pagination delta is stdlib-only. The prerequisite integration also carries existing owner parser/runtime dependency declarations and corrected hash locks; no workflow permission or credential expansion is authorized.
User experience:
The consumer's protected review remains fail closed. A valid active configuration on a later page can no longer disappear from the evidence used for base/head pairing. This does not yet establish that the consumer PRs have satisfied their review and merge prerequisites.
Grounding
GitHub's official REST pagination and code-scanning analyses contracts are cited in docs/doctoring/codeql-ghas-analyses-pagination.md. This API-contract repair introduces no scientific/model feature requiring a paper PDF.
Summary by CodeRabbit