Skip to content

fix(deps): patch frontend audit security floors - #1623

Draft
seonghobae wants to merge 20 commits into
developfrom
autoresearch/frontend-sec-bump
Draft

seonghobae wants to merge 20 commits into
developfrom
autoresearch/frontend-sec-bump

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Current authority — 2026-09-20 KST

  • protected base: develop@042b0c70531b229af3acbd0421a2f23098d848b3
  • exact head: 509be4c1d9b6c7ba239a108656e2382681a85341
  • exact tree: 9a4271cfc635ebe58ebd7003d67aa87a7912ce03
  • lifecycle: Draft / canonical frontend dependency-security owner / source repair + historical exact-head GREEN preserved / current vulnerability revalidation still required / do not merge
  • canonical Gap ledger remains solely owned by docs(gap): integrate visual and owner-handoff evidence #1602.

Retained causal repair

This lane owns the frontend dependency-security floors and their regressions. Exact source pins next/eslint-config-next to 16.3.4 and carries the lockfile line resolving sharp at fixed 0.35.4. No scanner suppression, baseline waiver, generated-lockfile hand edit, or source-neutral wake commit is used.

Exact 509be4c... repository-local evidence for its own generation remains valid historical evidence:

  • Application CI 35057412289SUCCESS
  • Bandit 35057412239SUCCESS
  • Semgrep 35057412283SUCCESS
  • Docker 35057412507SUCCESS
  • Security Scan 35057412234SUCCESS
  • CodeQL PR 35057412233SUCCESS
  • CodeRabbit review PRR_kwDOSNjZ2s8AAAABNw7GIAAPPROVED, anchored to exact head
  • unresolved review threads for that generation — 0

Those receipts do not prove safety against vulnerability databases or central workflow generations observed later.

Fresh inherited-vulnerability evidence

Two later product lanes independently confirm that frontend dependency evidence must be refreshed through this owner rather than copied into feature PRs.

The exact #1623 source already carries the intended Next/Sharp floors, but the later Trivy observations are newer than #1623's existing Security receipt. Reacquire the current database evidence on the then-current owner/protected ancestry before merge; if a new vulnerability is actually present after that refresh, repair it here or in a verified successor, not in #1682/#1718.

Central control-plane prerequisite

Protected central authority is now .github/main@e6334e229581a918e2f22de18733b76fa65d7e71; #2279 is already protected ancestry.

  • .github#2040 has completed current-main ordinary/non-force reconciliation at exact 652764a37fc8af032f03cbe75da84ca88aee96bb. It is mergeable/Draft, 175 ahead / 0 behind, and its repository-identity production repair is present. Fresh exact-head CodeQL/Python Security/Security/SAST/Runtime Quality/Trusted-uv runs remain queued; current-head independent approval is still required.
  • .github#2271@a0e1424de409ec474e7bc6e9f91a9e99b8a0915e is Draft / Proposed on current protected main. Exact-head checks and a qualifying independent current-head approval remain mandatory before Ready; predecessor evidence does not transfer.
  • .github#2275@572cfed270ae3b3cd38faca4d97ce028093e5373 remains Draft on current #2271 and proves the analyses-endpoint capability-selection contract only.
  • .github#2272@cd3b41b8989e096d1ee375d332347c8bb819acf9 remains the separate Pages/SAST successor lane and is still Draft.
  • .github#2276 remains the real target-repository code-scanning/analyses permission/canary boundary; selector logic cannot manufacture installation permission.
  • .github#712 remains the Actions execution-capacity owner; the current observation still has a three-digit queued backlog with no stable in-progress execution. Do not blind-rerun this unchanged dependency head to work around the central queue/control plane.

#1623's historical local CodeQL GREEN is therefore not a substitute for current central acceptance or a current vulnerability-database scan.

Merge boundary

Keep Draft. Required order:

  1. central #2040 current exact head obtains terminal hosted checks and qualifying independent review;
  2. #2271 → #2275 and the separate #2272 lane obtain their own exact-head acceptance, with #2276 proving real unchanged-target analysis-read permission and #2269 succession audited before central GHAS is called complete;
  3. reacquire fix(deps): patch frontend audit security floors #1623 Security/CodeQL on the unchanged source if still current, against the then-current protected ancestry and vulnerability database;
  4. repair only any real newly observed dependency RED in this canonical owner, then obtain terminal exact-head checks and qualifying independent post-last-push review;
  5. integrate normally, after which dependent product PRs ordinary-restack and reacquire their own Security/CodeQL evidence.

No synthetic verdict/status, blind rerun, no-op wake commit, temporary retarget, admin bypass, self-approval, force push/destructive rebase, scanner weakening, central source copy, duplicate feature-level dependency writer, predecessor-evidence transfer, or gate weakening.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 9, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-09T03:59:35.531464Z e8a54fc Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

📝 Walkthrough

Walkthrough

The frontend updates Next.js, eslint-config-next, Vitest, js-yaml, and sharp versions. New tests validate manifest values, workspace overrides, lockfile consistency, and dependency security floors.

Changes

Frontend security floor enforcement

Layer / File(s) Summary
Update frontend dependency versions
frontend/package.json, frontend/pnpm-workspace.yaml
Next.js and eslint-config-next update to 16.3.4. Vitest packages update to 4.1.11. The workspace pins js-yaml to 4.3.2 and sharp to 0.35.4.
Enforce frontend framework and image floors
backend/tests/test_frontend_framework_security_floor.py
Tests parse dependency and lockfile versions, validate importer and snapshot entries, enforce Next.js and sharp floors, and reject below-floor drift.
Validate js-yaml and Vitest floors
backend/tests/test_frontend_framework_security_floor.py, backend/tests/test_js_yaml_dependency_security.py
Tests validate js-yaml overrides and resolutions, Vitest manifest and lockfile versions, and the js-yaml dependency used by @eslint/eslintrc.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: 🟡 Moderate · up to 21897

The frontend dependency update raises Vitest security floors, but its validation can still accept a mismatched root lockfile resolution or missing referenced snapshot. This can allow future dependency drift to bypass the intended security-floor contract and should be corrected before merge.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: updating frontend dependencies to address security floors.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch autoresearch/frontend-sec-bump

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.

@seonghobae
seonghobae marked this pull request as draft September 9, 2026 02:55

Copy link
Copy Markdown
Contributor Author

@codex review

Please review only the current exact head d76f7b450888d42040ca090ed9b9924e08f01881. The predecessor review at a3421f3... predates the security-floor regression test and is not current-head evidence. Focus on the Next.js/sharp security-floor contract, generated lock consistency, and whether the regression can fail closed without introducing false GREENs.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d76f7b4508

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread backend/tests/test_frontend_framework_security_floor.py Outdated
Comment thread backend/tests/test_frontend_framework_security_floor.py Outdated

Copy link
Copy Markdown
Contributor Author

@codex review

Please review exact head e8a54fc5156ac3ffbb79bc8418c5125d7dcdea60 only. Focus on the structural pnpm-lock.yaml security-floor validation added after the two P2 findings on predecessor d76f7b...: root importer/specifier/resolution/snapshot identity, eslint-config-next parity, lock/workspace sharp override identity, and rejection of every below-floor next@ / sharp@ key in both packages and snapshots. Do not transfer predecessor check or review evidence.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Nice work!

Reviewed commit: e8a54fc515

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@seonghobae
seonghobae marked this pull request as ready for review September 9, 2026 03:55
coderabbitai[bot]
coderabbitai Bot previously approved these changes Sep 9, 2026
@seonghobae

Copy link
Copy Markdown
Contributor Author

exact-head validation receipt

Head: e8a54fc5156ac3ffbb79bc8418c5125d7dcdea60; base: develop@042b0c70531b229af3acbd0421a2f23098d848b3.

  • Official patch floors verified: Next.js >=16.3.3 for GHSA-2xp9-vwfh-vxw4 and CVE-2026-75604; sharp >=0.35.4 for GHSA-rgj7-g3m4-5g8c. This head uses Next.js 16.3.4 and sharp 0.35.4.
  • corepack pnpm install --frozen-lockfile: exit 0, 490 packages, pnpm 11.5.3.
  • focused backend security-floor contract: 5 passed, terminal exit 0.
  • next build --webpack: exit 0; 16 routes generated under Next.js 16.3.4.
  • first broad frontend run overlapped the production build and failed 10 tests, mostly at the unchanged 5-second limit. This is not counted as a pass. After the build completed, each failed file was rerun without widening its timeout: Dashboard 5/5, Data 12/12, Projects 4/4, Prompt Studio 7/7, total 28/28, terminal exit 0.

Visual Inspection: directly inspected the production build in a real browser at 1280×720, locale ko, on /, /data, and /projects, with backend-unavailable empty/error states. Main content remained readable without overlap or clipping. A pre-existing top-header horizontal scrollbar still pushes later workspace destinations outside the initial viewport; that customer-facing responsive gap is outside this dependency-only delta and must not be treated as passed responsive coverage. Browser verification ended before stopping the local server; server exit 130 is the expected operator stop, while the logged proxy-target configuration failures reflect the intentionally absent backend.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head dependency repair — 2026-09-09

Current head: b97f42f16f2dfedccc1e98812c88117132ef8126

The prior clean audit became stale when GitHub published new js-yaml and Vitest advisories. This head repairs the canonical dependency owner:

  • js-yaml is pinned to 4.3.2 through the existing pnpm workspace override, clearing GHSA-5p4m-2wfm-xmqj and GHSA-2883-xcg3-v3hh.
  • Vitest and @vitest/coverage-v8 are pinned to 4.1.11, clearing GHSA-82fw-gwwq-j7x9.
  • ESLint 10 was evaluated and rejected because the current latest import, JSX accessibility, and React plugins do not declare ESLint 10 support. No peer-range suppression was added.
  • Security-floor tests now reject future lock entries below the reviewed js-yaml and Vitest floors.

Exact-head local evidence:

  • frozen pnpm install: terminal success, no warnings
  • pnpm peers check: no peer dependency issues
  • pnpm audit: no known vulnerabilities
  • security-floor pytest: 7 passed
  • frontend Vitest: 51 files / 437 tests passed
  • frontend ESLint: terminal success, no warnings
  • production build: 16 routes, terminal success
  • Trivy HIGH/CRITICAL fixable-only, source/lock/config scope: 0 vulnerabilities, 0 misconfigurations, 0 secrets

The lockfile-generation commands that emitted deprecation or peer warnings are retained as failed investigative evidence and are not counted as verification. Required hosted Checks and a fresh current-head independent review still govern merge.

Copy link
Copy Markdown
Contributor Author

Central-prerequisite refresh only; Naruon source/head remains 509be4c1d9b6c7ba239a108656e2382681a85341 and its historical CodeQL FAILURE remains real.

Protected .github/main is still 64aa08d7fa487deacd41c761c36277ca68cab6c9. Canonical cutover owner #2040 is now exact 91e9515a4c5360c800b605862484d6644dbe4c87, 161 ahead / 244 behind, merge base fb17ef556f94f673234aa557254ae52779e9a7b0, Draft/open/non-mergeable.

#2040's repository-identity traversal RED remains unfixed. A whole-file mutation attempt created ordinary 4c6a0e29... with a truncated scheduler core; ordinary forward repair 91e9515a... restored the predecessor core blob exactly. Compare d4cfbcc... → 91e9515a... has zero changed files, so this is audited recovery, not production GREEN. Exact 91e9515a... also has zero PR-triggered workflow receipts and no qualifying current-head approval.

Do not copy the central scheduler into Naruon or reuse this PR's old CodeQL receipt. Normal path remains #2040 bounded/path-wise security repair + current-main reconciliation + exact-head checks/review → unchanged external dispatch canary → a new #1623 protected-lineage CodeQL generation.

Copy link
Copy Markdown
Contributor Author

Fresh downstream evidence validates this dependency-security lane as a still-live shared-base prerequisite.

Utility-tools #1718 exact 69b5903b16257612292d071aaaa960aa3d150eda now has terminal Security Scan FAILURE on exact-head Trivy findings: CRITICAL CVE-2026-75604 (next), CRITICAL GHSA-2xp9-vwfh-vxw4 (next), and HIGH GHSA-rgj7-g3m4-5g8c (sharp). #1718 does not modify frontend dependency files; its ancestry still carries next 16.2.12 / sharp 0.35.0. This #1623 exact tree already advances those shared-base packages to next 16.3.4 / sharp 0.35.4 with the associated lockfile/security contracts.

This does not make #1623 merge-ready: its own historical CodeQL generation remains terminal FAILURE and central #2040/external-dispatch prerequisites remain unsettled. It does show that duplicating the fix into #1718 would violate owner boundaries. Keep #1623 as canonical frontend dependency-security owner, obtain a new protected-lineage terminal Security/CodeQL generation after the central prerequisite settles, then let dependent PRs ordinary-restack onto the protected fix.

Copy link
Copy Markdown
Contributor Author

Central repair-plane topology correction — 2026-09-18 KST

.github#2175's self-modification P1 is no longer in the state described by the current PR body. Exact 40bbd0ae11a2e51decc30ee6b4bc3510dadaf1b0 now carries hostile-case RED 49dbe2cd7c78e2e08cef3e944bdf8a6a43a7db55 plus the source repair that excludes .github/, scripts/ci/, and .git/ from model-authored mutation scope. That is the correct control-plane security boundary.

This does not make #2175 a workaround for .github#2040. The repaired boundary intentionally prevents it from editing scripts/ci/pr_review_merge_scheduler_core.py. #2175's exact-head Source Fix Quality/SAST/Python Security/Security runs are still queued and CodeQL is pending; its current formal review is COMMENT evidence, not APPROVED.

.github#2040 itself remains exact 609be40b7be3a53ac5a8baf2b48b3af5ad7da237, Draft/open/non-mergeable, with deterministic repository-identity source RED and zero PR-triggered workflow receipts. Therefore this dependency-security lane's required path is unchanged in substance: legitimate hunk-safe/direct ordinary #2040 repair -> protected-main reconciliation -> fresh exact-head central checks/review -> external dispatch canary -> a new protected-lineage #1623 CodeQL generation. No central source is copied here and no historical CodeQL result is promoted.

Copy link
Copy Markdown
Contributor Author

Fresh central-owner handoff — .github#2040 advanced by ordinary audit/restore (2026-09-18)

Live central producer/scheduler owner is no longer 609be40.... #2040 is now exact ee6781d2c69b83795e1c728964f632a4c826cbb4, still Draft/open/non-mergeable against protected .github/main@64aa08d7fa487deacd41c761c36277ca68cab6c9. Fresh compare is 165 ahead / 244 behind, merge base fb17ef556f94f673234aa557254ae52779e9a7b0.

The intervening delta is audit evidence, not source GREEN. #2040 path-wise adopted the protected-main scheduler blob in d9dcaa5..., inspected the exact diff, and rejected it because whole-file adoption would reintroduce the source-neutral last-push/startup restamp paths and remove the branch's repository-scoped Actions credential helper / stronger token proof. Ordinary-forward ee6781d... restores the prior owner scheduler blob, preserving history without force or ref rewind.

The deterministic repository-identity RED therefore still exists: the regression rejects ../trailing-dot repository components while production GITHUB_REPOSITORY_RE remains permissive. #2175 has repaired its own self-modification boundary, but that repaired boundary intentionally excludes the scheduler control-plane path and is not a workaround.

Required causal order for this dependency-security owner is unchanged but the exact central generation is updated: a genuine hunk-safe/direct ordinary repository-identity fix on #2040 → remaining protected-main path-wise reconciliation preserving no-restamp/v2/private-consumer/repository-scoped-credential deltas → fresh exact-head hosted checks + qualifying independent approval → unchanged external dispatch canary → new #1623 protected-lineage CodeQL GREEN. Do not treat ee6781d... as current source GREEN or transfer any predecessor receipt.

Copy link
Copy Markdown
Contributor Author

2026-09-18 fresh owner-path handoff: central .github#2040 is now exact ee6781d2c69b83795e1c728964f632a4c826cbb4 against protected .github/main@64aa08d7fa487deacd41c761c36277ca68cab6c9; compare is 165 ahead / 244 behind, merge base fb17ef556f94f673234aa557254ae52779e9a7b0. The branch remains deterministic RED: tests/test_pr_review_merge_scheduler_repository_identity_contract.py rejects dot/trailing-dot repository components while production GITHUB_REPOSITORY_RE is still permissive. The latest ordinary-forward audit (d9dcaa5... -> ee6781d...) deliberately restored #2040's owner scheduler blob after protected-main path adoption was shown to regress no-restamp and repository-scoped credential evidence. Existing repair planes #2174/#2175 intentionally exclude .github/ and scripts/ci/, so they are not a valid way to mutate this core. Keep this dependency-security lane Draft; historical CodeQL failure is not retroactively GREEN. Required owner order remains: hunk-safe #2040 repository-identity fix preserving all current owner deltas -> current-main path-wise reconciliation -> exact-head hosted checks/review -> external dispatch canary -> fresh #1623 CodeQL generation -> protected integration. No central source was copied into Naruon.

Copy link
Copy Markdown
Contributor Author

2026-09-18 central prerequisite refresh: .github#2175 is now exact 6e5f75dd40a428d174f691e35e210d08a29eb270. Its source-fix path still excludes .github/, scripts/ci/, and .git/ from model-authored edits; therefore it cannot modify #2040's scheduler core and is not an acceptable source-repair path for the repository-identity RED. The new #2175 delta is acceptance coverage/workflow only, keeping the 100% owned-production gate; its fresh five hosted runs are queued. #1623's own six-workflow GREEN remains valid local evidence, but protected integration order is unchanged: direct hunk-safe #2040 source repair -> protected-main reconciliation/exact-head checks+review -> independent external dispatch canary -> revalidate #1623 under the then-live required-workflow contract -> normal integration.

Copy link
Copy Markdown
Contributor Author

Fresh prerequisite correction from canonical .github#2040 supersedes this PR body’s earlier “minimal regex hunk first, then reconcile” ordering.

#2040@12c3fa6f3623aa5f2979d3d5ee4ed987002a6c0d is still production RED, but the owner branch is now verified as deeply diverged from protected .github/main@64aa08d7fa487deacd41c761c36277ca68cab6c9 (merge base fb17ef556f94f673234aa557254ae52779e9a7b0; protected main +244 / #2040 +167), with scheduler core modified on both sides. Protected main’s own regex is incomplete for owner components ending in .. The next legitimate owner mutation is therefore one ordinary/non-force path-wise reconciliation that preserves #2040’s v2 producer, no-restamp, host/repository-scoped credential proof, exact-head revalidation and rationale/tests, adopts compatible current-main scheduler behavior, and resolves repository identity directly to ^(?!.*\.\.)(?!.*\.(?:/|$))[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$.

After that reconciled head: focused scheduler/repository-identity GREEN → fresh exact-head hosted checks + qualifying independent approval → unchanged external dispatch canary → only then revalidate/integrate this #1623 lane. #1623’s current six local workflow successes and exact-head approval remain valid evidence for its existing head, but they do not satisfy or transfer across the central reconciliation boundary.

Copy link
Copy Markdown
Contributor Author

Central prerequisite update — 2026-09-19 KST.

New central lane .github#2272@5b9e8642361818769d58af6f4e17a6087c90f6ad exposes a base-wide SAST/security prerequisite that affects how this dependency owner may later reacquire exact-head evidence. Central main@64aa08d7... currently contains two Semgrep-blocking dynamic-urllib findings, so a central PR can fail SAST independently of its own product delta. #2272 also repairs a real reusable deploy-pages.yml shell-injection boundary that the hosted Semgrep workflow does not scan because .github/workflows is excluded.

#2272 is not accepted yet: its five exact-head hosted runs are still queued, CodeRabbit has an unresolved current-head redirect-credential finding on the CodeQL identity helper, and a second review records missing deploy-pages regression coverage plus incomplete inheritance of sibling #2269's focused CodeQL URL-origin test. #2269 and #2272 therefore remain sibling repair authorities until a complete successor demonstrably carries every valid production/test delta.

Do not change #1623 source for this. Its dependency-security source and historical six-GREEN exact-head generation remain valid for that generation, while the later #1718 Trivy receipt still requires current-database revalidation after central acceptance. Merge boundary now explicitly includes verified central base-SAST/security convergence (#2269/#2272 or complete successor) as part of the central owner acceptance step before external dispatch canary and fresh #1623 revalidation. No predecessor-central GREEN, scanner suppression, unchanged-head rerun, or feature-level duplicate repair should be used to bypass it.

Copy link
Copy Markdown
Contributor Author

2026-09-19 prerequisite handoff

The exact 509be4c1d9b6c7ba239a108656e2382681a85341 six-workflow GREEN + current-head approval remain valid evidence for that historical generation, but the central prerequisite is now wider than the current body records.

Central base-SAST/security is not yet accepted: .github#2269@a83d6d325c28620bb393d7b79a3cc74fe8130c38 and .github#2272@5b9e8642361818769d58af6f4e17a6087c90f6ad both leave a reproduced cross-origin redirect credential-egress RED in the authenticated urllib.request helpers. #2272 also needs an executable regression for the deploy-pages.yml env-mediated shell boundary because central Semgrep excludes .github/workflows, and it has not fully inherited #2269's focused CodeQL-helper regression. #2272's five current-head hosted workflows remain queued.

Keep this lane Draft. Required order is #2269/#2272 convergence or verified complete successor → #2040 path-wise protected-main reconciliation (+ #2268/#2271 adopt/adapt where applicable) → fresh central hosted/review acceptance → unchanged external dispatch canary → ordinary/current-base revalidation of #1623. When this lane is revalidated, reacquire Security against the then-current vulnerability database; do not transfer the older Security SUCCESS over the later #1718 Trivy observation.

Copy link
Copy Markdown
Contributor Author

Central prerequisite delta — 2026-09-19 KST

Fresh owner evidence adds one material condition before this dependency-security lane may reacquire current vulnerability evidence:

.github#2269@a83d6d325c28620bb393d7b79a3cc74fe8130c38 is no longer merely queued. Exact-head Agent Review Runtime Quality CI 35330707554 is FAILURE at Verify exact-head path policy and syntax, and exact-head SAST Semgrep 35330707543 is FAILURE at the Medium+ enforcement step after successful exact-head checkout/SARIF generation/upload/report. CodeQL 35330707674, Security 35330707585, and Python Security 35330707539 remain queued. .github#2272@5b9e8642361818769d58af6f4e17a6087c90f6ad remains all-queued on its five current hosted lanes and is not yet a verified complete successor because redirect credential containment, an executable deploy-pages regression, and #2269 focused-regression inheritance remain open.

Therefore #1623’s historical six-GREEN generation remains valid only for its own exact generation. Revalidation must wait until the central #2269/#2272 security delta is converged and #2040’s protected-main reconciliation is accepted, then reacquire Security against the then-current protected ancestry and vulnerability database before normal integration. No dependency-source churn, scanner suppression, blind rerun, or predecessor-receipt transfer in this lane.

Copy link
Copy Markdown
Contributor Author

2026-09-19 prerequisite refinement — central CodeQL GHAS credential owner

Fresh central owner state adds .github#2275@443c9f6013a831b7e4605532809f7aae375d1019, stacked directly on #2271@2b849c874122961e025c29f7fa0bb697863c3d68. #2275 owns target GHAS/code-scanning analysis-read credential selection only: it capability-probes the configured tokens against the target code-scanning/analyses endpoint before passing a token into the GHAS base/head identity proof. #2271 remains repository-identity admission authority; #2040 remains scheduler/wake authority.

#2275 is not acceptance-ready. Its exact head has Security/CodeQL/Semgrep PR runs queued, and CodeRabbit has one unresolved current-head correctness thread: the fail-closed test checks result.stderr even though the selector emits the terminal ::error::no configured credential can read target CodeQL analyses... message on stdout. Central owner must repair that test and reacquire exact-head evidence; Naruon must not copy the workflow or test into this dependency lane.

Also update the base-SAST state: #2272@5b9e864... now has Semgrep SUCCESS but Agent Review Runtime Quality FAILURE at Verify exact-head path policy and syntax; CodeQL/Python Security/Security remain queued. #2269@a83d6d3... still has Runtime Quality + Semgrep FAILURE with its other three hosted runs queued.

Therefore #1623's next admissible transition remains evidence-only after central integration: #2269/#2272 convergence + #2275 correction/acceptance → #2040 path-wise protected-main reconciliation/current central GREEN + qualifying review → external dispatch canary → ordinary adoption of the then-protected central/workflow ancestry → fresh Security scan against the then-current vulnerability database and exact-head CodeQL/review evidence. The existing six-GREEN 509be4c... generation remains valid historical evidence for its own generation, but it does not prove these newer central or vulnerability-database conditions.

Copy link
Copy Markdown
Contributor Author

#2275 intervening delta

Central .github#2275 advanced after the previous prerequisite note to exact a900ec17f1e4a7db384e3052c23d3cf7440f0651. The one ordinary-forward commit changes only tests/test_codeql_scan_dispatch_ghas_credential_contract.py (+1/-1), correcting the fail-closed assertion from result.stderr to result.stdout. The previously current CodeRabbit thread PRRT_kwDOS_C14s6j3erF is now resolved/outdated, so do not keep that specific finding as an open blocker.

The successor is still not accepted: fresh exact-head Security 35389309836, CodeQL 35389309810, and Semgrep 35389309876 are queued, the PR remains Draft, and a qualifying review on a900ec17... is absent. The earlier diff-scoped docstring report was 75%, so the 100% owned-production documentation target also remains unproven on this lineage.

#1623 therefore stays source-stable. Its next admissible transition remains #2269/#2272 convergence + #2275 exact-head acceptance → #2040 protected-main path-wise reconciliation/current central GREEN + qualifying review → external dispatch canary → ordinary adoption of then-protected central ancestry → fresh Security against the then-current vulnerability database plus exact-head CodeQL/review evidence. Existing 509be4c... receipts remain historical generation evidence only.

Copy link
Copy Markdown
Contributor Author

#2275 exact-head advance

Current central authority is now .github#2275@a3b8cc1017acb82ed9a002c1f591c70617ad87e6. The step from a900ec17... is doctoring-only (docs/doctoring/codeql-ghas-analysis-credential-routing-2026-09-19.md, +11/-5); it preserves the corrected stdout fail-closed test and resolved review thread. Fresh exact-head Security 35389422805, Semgrep 35389422859, and CodeQL 35389422758 are all queued. Replace the stale a900ec17... exact-head reference in the preceding prerequisite note with a3b8cc1...; acceptance order is otherwise unchanged.

Copy link
Copy Markdown
Contributor Author

Central prerequisite refinement — 2026-09-19

Keep the dependency-security source/evidence boundary unchanged, but supersede the older central snapshot in this PR body with the current owner topology.

.github#2269 is now exact 0ae2204ebcff0441ec5e7ca41ffdd01bdc135a26: the CodeQL helper has a real cross-origin redirect RED and a causal per-redirect api.github.com revalidation repair. That lane is still incomplete because the Strix helper retains default urllib redirect behavior and the older focused tests must be adapted to the dedicated opener; its exact hosted runs remain pending/queued. .github#2272@5b9e8642361818769d58af6f4e17a6087c90f6ad still owns the sibling reusable deploy-pages.yml shell-injection repair and complete base-SAST convergence requirements. .github#2275@a3b8cc1017acb82ed9a002c1f591c70617ad87e6 remains the stacked GHAS analysis-read credential-selector owner on #2271, with Security/Semgrep/CodeQL still queued.

Therefore #1623's older six-GREEN generation remains valid only for its own exact historical workflow/database generation. Do not restack or rerun this dependency owner until the central security/CodeQL owner set has converged through normal ancestry and the external dispatch boundary is accepted. At that point reacquire Security against the then-current vulnerability DB and only the other evidence invalidated by the changed workflow/base contract; do not duplicate dependency source into feature lanes.

Copy link
Copy Markdown
Contributor Author

Central prerequisite refinement, 2026-09-19 KST: keep this dependency-security head source-stable. .github#2275@a3b8cc1017acb82ed9a002c1f591c70617ad87e6 only selects a credential after proving target code-scanning/analyses read capability; central Issue #2276 separately owns the real target-repository permission/canary gap (current reproduced result: HTTP 403 after clean scan/SARIF). Thus #2275 hosted acceptance alone is not sufficient if no credential actually has that permission. Require #2276 unchanged-target base+head analyses-read / wait_for_language_pairing() proof, with #1929 remaining separate for cross-repository status publication, before treating the central CodeQL boundary as accepted. After the full central path normally lands, reacquire this PR's Security evidence against the then-current protected dependency ancestry and vulnerability database; do not duplicate central credential logic or create a source-neutral wake commit here.

Copy link
Copy Markdown
Contributor Author

2026-09-19 prerequisite refresh: central GHAS/security topology advanced and this dependency owner must not consume the old #2275 state as acceptance. .github#2275 is now exact fc9c5537d9910f0536dab2aaf52888078c8ead64 on #2271, but remains Draft and now depends on .github#2279. Live #2279 exact 9ba43f284da51bfa6aaa389d3fb67f8b232fbba5 proves initial HTTPS/exact-api.github.com authority for the two scanner-reported urllib sinks, yet its current review finds redirect handling still incomplete and requires no-contact/no-Authorization-forwarding redirect regressions. #2269 exact 2708a6be... already carries redirect containment but still has a stale Strix opener-test-seam RED; #2272 exact bb9413a4... separately owns the Pages shell-boundary regression. Keep this #1623 source stable. Required central prerequisite is lossless convergence/test-clean acceptance of those security slices plus #2275 capability selection, real permission/canary proof, and #2040 scheduler reconciliation. Only after that should #1623 reacquire Security against the then-current protected ancestry/vulnerability DB. Existing six-GREEN evidence remains valid only for its historical generation and is not transferred forward.

Copy link
Copy Markdown
Contributor Author

Central prerequisite refresh — 2026-09-19

The dependency-security source/evidence on this branch is unchanged; only the upstream acceptance graph changed.

Fresh central authority is now:

  • .github#2269@4dcd25c9f2789e4b8acbeef603e118dd80bfa014 — authenticated CodeQL/Strix GitHub API redirect containment plus the repaired Strix test transport seam; fresh exact-head quality/security runs are queued.
  • .github#2279@daea503506ee7689323ebbe39e82eb6f2350e343 — executable initial-authority + no-redirect boundary for the two central urllib clients; the earlier redirect review finding is resolved/outdated, but all five current hosted lanes remain queued.
  • .github#2272@bb9413a45d782c6ef748aa746ba63cc78cb3258c — separate Pages reusable-workflow shell-boundary repair/regression.
  • .github#2275@fc9c5537d9910f0536dab2aaf52888078c8ead64 — target GHAS code-scanning/analyses credential capability selector; selection correctness is not target permission.
  • .github#2276 — separate open permission/canary owner for the real target-repository analyses-read 403. This must remain fail-closed until an unchanged target head can read protected-base + exact-head analyses and complete identity pairing.
  • .github#2040@12c3fa6f3623aa5f2979d3d5ee4ed987002a6c0d remains Draft/non-mergeable against protected main@64aa08d7fa487deacd41c761c36277ca68cab6c9; path-wise protected-main reconciliation remains mandatory.

Do not transfer #1623's older six-GREEN generation across that central change. After central owner acceptance and the real external canary, reacquire Security against the then-current Trivy/vulnerability DB generation and any other evidence invalidated by the changed protected/required-workflow ancestry. No second dependency writer, blind rerun, source-neutral wake, central source copy, or scanner weakening.

seonghobae commented Sep 19, 2026

Copy link
Copy Markdown
Contributor Author

Central prerequisite refresh — #2279 scope repair and #2272 executable Pages gate adopted

Dependency-security source on #1623 is unchanged. Upstream authority advanced and the current handoff is:

  • .github#2279@72d6927bcc7d3fd23736b55aef75f110b1837571 — ordinary-forward one-commit successor of daea503...; compare is exactly scripts/ci/strix_evidence_binding.py +2/-0, restoring the two rationale comment lines above the truncated-patch path-level PR-delta fallback. No-redirect transport and exact https://api.github.com authority behavior are unchanged. Fresh exact-head Runtime Quality 35421870826, Semgrep 35421870827, Python Security 35421870825, Security 35421870829, CodeQL 35421870836 remain queued.
  • .github#2269@4dcd25c9f2789e4b8acbeef603e118dd80bfa014 — sibling redirect-containment/test-seam lane; its PR authority now adopts the intervening #2272 state rather than naming the old sibling head.
  • .github#2272@4967d66f303bde675080466e359e75c260a91e06 — ordinary-forward from bb9413a45...; preserves the reusable Pages shell-boundary repair and adds a dependency-free focused regression plus dedicated Deploy Pages Input Security CI, because the regression previously existed without a hosted selector. The predecessor had SAST SUCCESS but Agent Review Runtime Quality FAILURE at the umbrella path-policy/syntax step; the nested failing command remains unestablished and no policy was weakened. Current dedicated Pages CI 35420518808 plus Runtime Quality/Semgrep/Python Security/Security/CodeQL are queued. #2272 still does not inherit #2269 redirect containment, so neither sibling is a complete successor.
  • .github#2275@fc9c5537d9910f0536dab2aaf52888078c8ead64 remains Draft on the pre-#2279 stack and owns only capability-based target code-scanning/analyses credential selection.
  • .github#2276 remains the separate real target-repository permission/canary owner for the reproduced analyses-read 403. Selector correctness cannot create permission.
  • .github#2040@12c3fa6f3623aa5f2979d3d5ee4ed987002a6c0d remains Draft/non-mergeable against protected main@64aa08d7fa487deacd41c761c36277ca68cab6c9; path-wise protected-main reconciliation remains mandatory.

Keep #1623 source-stable. Its earlier six-GREEN generation is historical evidence only. Reacquire Security against the then-current protected ancestry and vulnerability database only after the full central security/capability/permission/scheduler path is accepted; do not create a source-neutral wake commit or transfer predecessor receipts.

Copy link
Copy Markdown
Contributor Author

2026-09-19 prerequisite refresh: central .github#2279 is now exact 25f83aaee9eb97e423f6ef2467e722035bc2e362. Review found and the owner repaired a real stale transport-test seam: CodeQL GHAS identity production uses _GITHUB_API_OPENER.open, but the direct request fixtures still monkeypatched urllib.request.urlopen. Ordinary-forward 25f83aa... moves the successful-response, HTTPError, URLError, empty-body and invalid-JSON fixtures to the actual dedicated opener; no production redirect/authority logic or gate is weakened. The review thread is resolved, but fresh exact-head Security/SAST/Python Security/CodeQL/Runtime Quality runs are still queued, so this is not accepted central evidence.

#2272 is separately exact 4967d66f303bde675080466e359e75c260a91e06 with dedicated Pages input-security CI; #2275 still owns analysis-read credential capability selection and #2276 the actual target-repository analyses permission/canary. Keep this dependency owner Draft. Its older six-GREEN generation remains valid only for its own generation; after the central workflow lineage is accepted, reacquire Security against the then-current protected ancestry/vulnerability database rather than transferring earlier receipts.

Copy link
Copy Markdown
Contributor Author

Current central prerequisite correction (2026-09-19 KST): .github#2279 is no longer a pending foundation PR. Its exact d1e4380c15e948aaf104d46aa134fa614058782a landed on protected .github/main as merge e6334e229581a918e2f22de18733b76fa65d7e71. That main movement re-diverged .github#2040@ecc9e1d11149ae44ec4f8389e4ac72a08ba45ba7 from its previously reconciled base, so #2040 needs a new ordinary/non-force path-wise adoption before current-base acceptance. The live descendant split remains CodeQL/GHAS #2271 → #2275, real target permission/canary #2276, and separate Pages #2272 on the landed foundation.

This does not invalidate #1623 source or its historical exact-head six-workflow GREEN/approval generation; it changes only the external acceptance ordering. Keep 509be4c1d9b6c7ba239a108656e2382681a85341 source-stable until central execution/CodeQL authority settles, then reacquire Security against the then-current protected ancestry and vulnerability database. Do not transfer predecessor vulnerability receipts or rerun unchanged source merely to wake the queue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working priority: high High-priority or P1 work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant