Skip to content

fix(ci): codeql-action v4.38.1 -> v4.38.0 SHA pin + dependabot hold (estate-wide startup_failure) - #973

Merged
hyperpolymath merged 3 commits into
mainfrom
fix/codeql-4381-rollback
Sep 22, 2026
Merged

hyperpolymath merged 3 commits into
mainfrom
fix/codeql-4381-rollback

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Estate-wide incident: github/codeql-action v4.38.1 fails GitHub workflow startup on every repo that took it — CodeQL/Hypatia runs die with startup_failure, zero jobs dispatched, no error text in any API surface. The evidence chain (full detail: nexia-list#100):

repo ref status
nexia-list @v4.38.1 tag (via dependabot #94) 🔴 startup_failure → fixed by rollback #100 (merged)
hypatia @1c5b675 (4.38.1 SHA) 🔴
vexometer @v4.38.1 🔴 (since Sep-21)
rsr-template-repo @1c5b675 🔴
affinescript / boj-server / deed-ecosystem ≤ v4.38.0 ✅ green

The v4.38.1 tag exists (peels to 1c5b675) and byte-identical workflow content runs under a fresh path — so the failure is the version value itself at GitHub's start-validation layer, not content, permissions (probes with security-events start fine), or the default-setup conflict.

Changes here (canonical source of the estate's workflows)

  • codeql-reusable.yml, hypatia-scan-reusable.yml: codeql-action/* re-pinned 1c5b675 (v4.38.1) → b96794f0 (v4.38.0 commit; wrong # v3 comments corrected to # v4.38.0).
  • actions.lock: re-keyed to the v4.38.0 SHA entries (dependabot bumped the reusable pins without regenerating the lock).
  • dependabot.yml: full hold on github/codeql-action — scoped versions: ignores do NOT hold for this bot path (nexia-list#101 re-raised the bump in SHA form within an hour, copying the inline warning comment verbatim while swapping the SHA).

Follow-ups

Consumer rollbacks shipped in the same batch: nexia-list (merged ✅), hypatia, vexometer, rsr-template-repo, metadatastician/burble (each with the same dependabot hold). Reconsider the hold when upstream clears v4.38.1 or a newer release verifies green on one canary repo.

…d (estate canonical)

v4.38.1 (tag AND its commit SHA 1c5b675) fails GitHub workflow-startup
validation on every repo that took the bump: CodeQL/Hypatia runs die with
startup_failure, zero jobs, no API error text. Proven red on nexia-list,
hypatia, vexometer, rsr-template-repo; proven green <=v4.38.0
(affinescript, boj-server, deed-ecosystem, and nexia-list post-rollback).

Canonical reusables pinned back to the v4.38.0 commit
b96794f015dfd88f77b49b1c93e0fa7110f94c63 ('# v3' comments corrected to
'# v4.38.0'), actions.lock re-keyed to match, and a full dependabot hold
on github/codeql-action added - scoped versions ignores did NOT hold
downstream (nexia-list#101 re-raised the bump in SHA form within an hour).

Full investigation + evidence chain: nexia-list#100. Consumer-repo
rollbacks: nexia-list (merged), hypatia, vexometer, rsr-template-repo,
metadatastician/burble (this batch).
@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Warning

Review limit reached

Next included review available in 37 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: eedd5af0-898f-4f85-9a17-35f18bc81925

📥 Commits

Reviewing files that changed from the base of the PR and between 6591d8b and 529296b.

⛔ Files ignored due to path filters (1)
  • .github/workflows/actions.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • .github/dependabot.yml
  • .github/workflows/codeql-reusable.yml
  • .github/workflows/hypatia-scan-reusable.yml

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 3b318081-233c-4b2d-b3f1-f16b4740ba98

📥 Commits

Reviewing files that changed from the base of the PR and between 436a89b and 6591d8b.

⛔ Files ignored due to path filters (1)
  • .github/workflows/actions.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • .github/dependabot.yml
  • .github/workflows/codeql-reusable.yml
  • .github/workflows/hypatia-scan-reusable.yml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (28)
  • GitHub Check: analyze-js / analyze
  • GitHub Check: analyze-actions / analyze
  • GitHub Check: Registry + topology in sync
  • GitHub Check: governance / Trusted-base reduction policy
  • GitHub Check: governance / Exemption ratchet
  • GitHub Check: governance / Well-Known (RFC 9116 + RSR)
  • GitHub Check: governance / Code quality + docs
  • GitHub Check: governance / Licence consistency
  • GitHub Check: governance / Workflow security linter
  • GitHub Check: governance / Actions lockfile verify
  • GitHub Check: governance / Live Actions policy (credentialed advisory)
  • GitHub Check: governance / Debt ratchet
  • GitHub Check: governance / Allowlist Preflight
  • GitHub Check: governance / Security policy checks
  • GitHub Check: governance / Language / package anti-pattern policy
  • GitHub Check: governance / Check Workflow Staleness
  • GitHub Check: governance / Guix packaging policy (Nix retired)
  • GitHub Check: scan / gitleaks
  • GitHub Check: scan / shell-secrets
  • GitHub Check: scan / Hypatia Neurosymbolic Analysis
  • GitHub Check: scan / rust-secrets
  • GitHub Check: Detect proof changes
  • GitHub Check: K9-SVC contractile validation
  • GitHub Check: Scan for hand-authored JavaScript/TypeScript
  • GitHub Check: Verify CLAIMS.a2ml + conformance
  • GitHub Check: AffineScript Verify
  • GitHub Check: Lockfile self-consistency
  • GitHub Check: uses ⊆ actions.lock
⚠️ CI failures not shown inline (4)

GitHub Actions: Actions Lockfile Gate / 0_uses ⊆ actions.lock.txt: fix(ci): codeql-action v4.38.1 -> v4.38.0 SHA pin + dependabot hold (estate-wide startup_failure)

Conclusion: failure

View job details

##[group]Run bash .githooks/validate-actions-lock.sh
 �[36;1mbash .githooks/validate-actions-lock.sh�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 �[0;31m[validate-actions-lock] ERROR: not in actions.lock: github/codeql-action/upload-sarif@1c5b675653bb5c22dbe9b12b556ec555138e09fd�[0m
     normalised to: github/codeql-action@1c5b675653bb5c22dbe9b12b556ec555138e09fd
 �[0;31m[validate-actions-lock] 1 ref(s) missing from the lockfile�[0m
     Regenerate with the LOCKFILE ONLY, and verify the *.yml diff is empty:
       gh actions-lock <workflow paths> --no-migrate-local-actions --no-narrow
       git diff --stat -- '.github/workflows/*.yml'   # MUST be empty
 ##[error]Process completed with exit code 1.

GitHub Actions: Actions Lockfile Gate / uses ⊆ actions.lock: fix(ci): codeql-action v4.38.1 -> v4.38.0 SHA pin + dependabot hold (estate-wide startup_failure)

Conclusion: failure

View job details

##[group]Run bash .githooks/validate-actions-lock.sh
 �[36;1mbash .githooks/validate-actions-lock.sh�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 �[0;31m[validate-actions-lock] ERROR: not in actions.lock: github/codeql-action/upload-sarif@1c5b675653bb5c22dbe9b12b556ec555138e09fd�[0m
     normalised to: github/codeql-action@1c5b675653bb5c22dbe9b12b556ec555138e09fd
 �[0;31m[validate-actions-lock] 1 ref(s) missing from the lockfile�[0m
     Regenerate with the LOCKFILE ONLY, and verify the *.yml diff is empty:
       gh actions-lock <workflow paths> --no-migrate-local-actions --no-narrow
       git diff --stat -- '.github/workflows/*.yml'   # MUST be empty
 ##[error]Process completed with exit code 1.

GitHub Actions: Lock Self-Check / 0_Lockfile self-consistency.txt: fix(ci): codeql-action v4.38.1 -> v4.38.0 SHA pin + dependabot hold (estate-wide startup_failure)

Conclusion: failure

View job details

##[group]Run set -euo pipefail
 �[36;1mset -euo pipefail�[0m
 �[36;1msha="$(git rev-parse HEAD)"�[0m
 �[36;1m# State the population. A gate that does not say what it examined�[0m
 �[36;1m# cannot report that it examined the wrong thing.�[0m
 �[36;1mecho "Commit under test: $sha"�[0m
 �[36;1mecho "Event: pull_request"�[0m
 �[36;1m# On `pull_request` this is the MERGE PREVIEW, i.e. the content that�[0m
 �[36;1m# would land on main, which is exactly the content callers will pin.�[0m
 �[36;1mbash scripts/lock-selfcheck.sh "$sha"�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 Commit under test: b09ffc56257449528aca30c74c8381670030e35f
 Event: pull_request
 ==============================================================
 SHA b09ffc562574   +0000
      Merge 6591d8b4d2d036551a04a33f90060eddf9492c10 into 436a89b30cc988fd5505c9cd8f5dd81110a8606b
   workflows at this SHA: 55   lockfile keys: 46 workflow(s), 94 pair(s)
   action refs used: 181   reusable-workflow calls (not lock-keyed): 3
   VERDICT: POISON — 1 action ref(s) used but NOT keyed in this SHA's own lock.
            Any caller pinned here dies at startup with 0 jobs and no stated reason.
              .github/workflows/scorecard-reusable.yml
                uses  github/codeql-action@1c5b675653bb5c22dbe9b12b556ec555138e09fd
                lock keys for this workflow: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a github/codeql-action@b96794f015dfd88f77b49b1c93e0fa7110f94c63 ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc
 ==============================================================
 AT LEAST ONE SHA IS UNSAFE TO PIN TO (examined: 1)
 ##[error]Process completed with exit code 1.

GitHub Actions: Lock Self-Check / Lockfile self-consistency: fix(ci): codeql-action v4.38.1 -> v4.38.0 SHA pin + dependabot hold (estate-wide startup_failure)

Conclusion: failure

View job details

##[group]Run set -euo pipefail
 �[36;1mset -euo pipefail�[0m
 �[36;1msha="$(git rev-parse HEAD)"�[0m
 �[36;1m# State the population. A gate that does not say what it examined�[0m
 �[36;1m# cannot report that it examined the wrong thing.�[0m
 �[36;1mecho "Commit under test: $sha"�[0m
 �[36;1mecho "Event: pull_request"�[0m
 �[36;1m# On `pull_request` this is the MERGE PREVIEW, i.e. the content that�[0m
 �[36;1m# would land on main, which is exactly the content callers will pin.�[0m
 �[36;1mbash scripts/lock-selfcheck.sh "$sha"�[0m
 shell: /usr/bin/bash -e {0}
 ##[endgroup]
 Commit under test: b09ffc56257449528aca30c74c8381670030e35f
 Event: pull_request
 ==============================================================
 SHA b09ffc562574   +0000
      Merge 6591d8b4d2d036551a04a33f90060eddf9492c10 into 436a89b30cc988fd5505c9cd8f5dd81110a8606b
   workflows at this SHA: 55   lockfile keys: 46 workflow(s), 94 pair(s)
   action refs used: 181   reusable-workflow calls (not lock-keyed): 3
   VERDICT: POISON — 1 action ref(s) used but NOT keyed in this SHA's own lock.
            Any caller pinned here dies at startup with 0 jobs and no stated reason.
              .github/workflows/scorecard-reusable.yml
                uses  github/codeql-action@1c5b675653bb5c22dbe9b12b556ec555138e09fd
                lock keys for this workflow: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a github/codeql-action@b96794f015dfd88f77b49b1c93e0fa7110f94c63 ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc
 ==============================================================
 AT LEAST ONE SHA IS UNSAFE TO PIN TO (examined: 1)
 ##[error]Process completed with exit code 1.
🔇 Additional comments (3)
.github/workflows/codeql-reusable.yml (1)

97-97: LGTM!

Also applies to: 103-103

.github/workflows/hypatia-scan-reusable.yml (1)

245-245: LGTM!

.github/dependabot.yml (1)

13-19: LGTM!


📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated security scanning workflows to use GitHub CodeQL Action v4.38.0.
    • Pinned SARIF security-report uploads to CodeQL Action v4.38.0 for consistent scanning behaviour.
    • Configured dependency updates to retain the verified CodeQL Action version until a later release is approved.

Walkthrough

The pull request updates CodeQL workflow actions from v3 to v4.38.0 and adds a Dependabot rule to hold further CodeQL Action updates.

Changes

CodeQL Action update

Layer / File(s) Summary
Action pins and update hold
.github/workflows/codeql-reusable.yml, .github/workflows/hypatia-scan-reusable.yml, .github/dependabot.yml
The CodeQL initialisation, analysis, and SARIF upload steps now use v4.38.0. Dependabot ignores later github/codeql-action updates and records the current hold. Existing workflow inputs and SARIF settings are unchanged.

Priority: ⬆️ High

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix

Suggested reviewers: joshuajewell

Merge Risk: ⚪ Minimal · up to 6591d

The workflows use the known-green CodeQL v4.38.0 release, preventing the reported startup failures while updates are held; the change is merge-ready.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarises the rollback from v4.38.1 to v4.38.0 and the Dependabot hold, which are the main changes.
Description check ✅ Passed The description is directly related to the workflow rollback, startup failures, SHA updates, Dependabot hold, and follow-up actions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡

❌ Error running CI fixer.
❌ Error running CI fixer.
❌ Error running CI fixer.

❌ Error running CI fixer.

  • Commit to this branch
  • Create a new PR

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

A rabbit checks the action pin,
Four-point-thirty-eight lets scans begin.
Dependabot waits beside the gate,
While SARIF travels at a steady rate.
CodeQL hops on, secure and bright.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

✅ Coding Agent task started: View task and status

The task will inspect the CI failures, validate its fix, and open a stacked fix pull request automatically.

Note: Fixing CI failures is a beta feature and may encounter errors. Expect some limitations and changes as we gather feedback and continue to improve it.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Rate Limit Exceeded

@hyperpolymath have exceeded the limit for the number of chat messages per hour. Please wait 52 minutes and 50 seconds before sending another message.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Rate Limit Exceeded

@hyperpolymath have exceeded the limit for the number of chat messages per hour. Please wait 50 minutes and 29 seconds before sending another message.

@sonarqubecloud

Copy link
Copy Markdown

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Rate Limit Exceeded

@hyperpolymath have exceeded the limit for the number of chat messages per hour. Please wait 46 minutes and 47 seconds before sending another message.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Rate Limit Exceeded

@hyperpolymath have exceeded the limit for the number of chat messages per hour. Please wait 45 minutes and 7 seconds before sending another message.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Rate Limit Exceeded

@hyperpolymath have exceeded the limit for the number of chat messages per hour. Please wait 44 minutes and 49 seconds before sending another message.

@hyperpolymath
hyperpolymath merged commit 2eb9bb1 into main Sep 22, 2026
39 of 42 checks passed
@hyperpolymath
hyperpolymath deleted the fix/codeql-4381-rollback branch September 22, 2026 12:00
hyperpolymath pushed a commit to hyperpolymath/proven-tests-and-benches that referenced this pull request Sep 22, 2026
v4.38.1 (tag AND commit SHA 1c5b675) fails GitHub workflow-startup
validation estate-wide: codeql/hypatia runs die with startup_failure,
zero jobs, no API error text. Full investigation: nexia-list#100.
Rollback to the v4.38.0 commit b96794f015dfd88f77b49b1c93e0fa7110f94c63
(green on deed-ecosystem; satisfies repo SHA-pin policy). actions.lock
re-keyed; dependabot held unconditionally (versions-scoped ignores were
bypassed in SHA form - nexia-list#101).

Canonical fix: hyperpolymath/standards#973.
hyperpolymath added a commit that referenced this pull request Sep 22, 2026
…incident fix) (#978)

## What happened

Dependabot **#977** (`68acee77`, merged today) bumped `codeql-action`
from 4.38.0 **back to 4.38.1** — the version **#973** had escaped hours
earlier because it fails GitHub's workflow-startup validation
estate-wide (nexia-list#100).

Measured on `hyperpolymath/standards` within the hour:

| workflow | state | first red |
|---|---|---|
| `codeql.yml` | red after 4 consecutive greens | 12:09Z |
| `scorecard.yml` | red after 2 consecutive greens | 11:51Z |

The newest run of each reports **`jobs = 0`** — startup death, not a
failing job. ⚠ GitHub surfaces it here as `conclusion=failure`, **not**
`startup_failure`, because the death is in the *called reusable*.
Checking only for `startup_failure` would have missed this entirely.

## The five refs

| workflow | refs |
|---|---|
| `codeql-reusable.yml` | `init`, `analyze` |
| `hypatia-scan-reusable.yml` | `upload-sarif` |
| `scorecard-reusable.yml` | `upload-sarif` ×2 |

⚠ **The first three are the dangerous shape.** #977 replaced the SHA but
inherited #973's comment, so each line reads:

```
uses: github/codeql-action@1c5b675... # v4.38.0 (4.38.1 blocked estate-wide; nexia-list#100)
```

An annotation asserting **the exact opposite of the value it
annotates**. A reviewer reading the comment sees the safe version and
moves on. `scorecard-reusable.yml` was never swept by #973 at all and
kept honest `# v3` / `# v4.38.1` comments — so the *un*fixed file was
the legible one.

## Why the hold did not hold

`.github/dependabot.yml` already carried a hold on
`github/codeql-action`. It matched nothing: the workflows reference the
**subpath** actions, and Dependabot treats each subpath as its own
dependency name. #977's own body says *"Updates
`github/codeql-action/init` from 4.38.0 to 4.38.1"*.

The entry is now `github/codeql-action*`. **Without this the next
scheduled run reopens the same PR and re-breaks both workflows.**

## actions.lock is deliberately untouched

The lock already carried `b96794f` for all three workflows — the
lockfile was the **correct** side of the drift and the workflows were
the stale side. Regenerating it (the cure the gate's own error text
prescribes) would have written `1c5b675` **back into the lock** and
re-legitimised the blocked version. A lock/workflow drift has two
possible stale sides and the message picks one blindly.

## Verification

- Zero refs to `1c5b675` remain under `.github/`
- actions-lock gate: **no error-severity, no `stale` findings** (93
pre-existing `sha-as-ref` warnings unchanged)
- `git diff --stat -- .github/workflows/actions.lock` → empty
- `b96794f` confirmed as the commit that tag `v4.38.0` peels to
- All pre-commit hooks pass, including `validate-actions-lock` — which
was blocking *every* commit carrying a workflow ref

Refs #973, #977, nexia-list#100, nexia-list#101, nexia-list#104

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01WPSJ7fBhVAMcpSffCBWUDo

Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
arena-ai-coding-agent Bot pushed a commit to metadatastician/paint-type that referenced this pull request Sep 24, 2026
… to un-startup-kill CI

Root cause of the estate-wide startup_failure that killed every workflow on
the previous attempt: github/codeql-action v4.38.1 (1c5b675) is rejected by
GitHub's workflow-startup validation — any workflow naming it dies at
startup with zero jobs. Dependabot #105 bumped codeql.yml/oikosbot.yml to
v4.38.1 while leaving actions.lock at v4.38.0, so main inherited both the
startup-kill and a lock drift.

Changes
- codeql.yml (init/analyze) and oikosbot.yml (upload-sarif): pinned to the
  v4.38.0 SHA b96794f015dfd88f77b49b1c93e0fa7110f94c63, matching the estate
  rollback precedent (hyperpolymath/nexia-list#100,
  hyperpolymath/standards#973/#978). persist-credentials: false retained.
- .github/dependabot.yml: full hold on github/codeql-action until upstream
  clears 4.38.1 or a newer release verifies green (a versions-only rule was
  bypassed by dependabot re-bumping in SHA form elsewhere in the estate).
- actions.lock resynced to the workflow YAML (all four lock-sync clauses):
  * codeql/oikosbot entries -> v4.38.0 SHA form with a dependencies record
  * coverage.yml plain drift closed: codecov-action v7.1.0 -> v7.1.1
    (303a32d, nested github-script use re-verified upstream) and
    taiki-e/install-action v2.87.13 -> v2.87.17 (94c31af, no nested uses)
  * pruned the stale slsa-github-generator chain retired by the #91 release
    rewrite (slsa records + orphaned softprops/upload-artifact leaves)

Verified locally: faithful port of scripts/check-lock-sync.sh passes all
clauses; every workflow + lockfile + dependabot.yml parses; workflow-linter
SPDX/permissions checks pass; zero references to v4.38.1/1c5b675 outside
hold comments.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
hyperpolymath added a commit to metadatastician/paint-type that referenced this pull request Sep 24, 2026
… — un-startup-kill CI (#107)

## Summary

Follow-up to #106. That PR landed the #102 conflict resolution but
inherited Dependabot #105's broken state: `github/codeql-action` bumped
to **v4.38.1**, a version under an **estate-wide hold** because GitHub's
workflow-startup validation rejects it — any workflow naming it dies at
startup with zero jobs (hyperpolymath/nexia-list#100,
hyperpolymath/standards#973/#978). This is what caused the
`startup_failure`s observed while #106 was being verified, and it is
still killing **Coverage**, **OikosBot**, and reddening **Governance /
Actions lockfile verify** + **Lock Sync Gate** on main.

## Changes

- `codeql.yml` (init/analyze) and `oikosbot.yml` (upload-sarif): pinned
to the **v4.38.0 SHA** `b96794f` per the estate rollback precedent;
`persist-credentials: false` retained.
- `.github/dependabot.yml`: full hold on `github/codeql-action` until
upstream clears 4.38.1 or a newer release verifies green (the estate
measured that a `versions: ["4.38.1"]` rule gets bypassed when
dependabot re-raises in SHA form).
- `actions.lock` resynced to the workflow YAML (all four
`check-lock-sync.sh` clauses):
- codeql/oikosbot entries → v4.38.0 SHA form with a matching
`dependencies:` record
- plain drift closed: `codecov-action` v7.1.0 → v7.1.1 (`303a32d`,
nested `github-script` use re-verified upstream) and
`taiki-e/install-action` v2.87.13 → v2.87.17 (`94c31af`, no nested uses)
- pruned the stale `slsa-github-generator` chain retired by the #91
release rewrite

## Testing

- Faithful local port of `scripts/check-lock-sync.sh`: all clauses pass
(locked incl. job-level reusable refs, no orphans, transitively closed
with 0 dangling edges, full coverage).
- Every workflow + lockfile + dependabot.yml parses as YAML.
- Workflow Security Linter steps (SPDX headers, permissions) pass
locally.
- Zero references to v4.38.1/`1c5b675` outside hold comments.

<!-- SPDX-License-Identifier: AGPL-3.0-or-later -->

Co-authored-by: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants