Skip to content

chore(deps): bump the actions group with 2 updates - #34

Merged
hyperpolymath merged 1 commit into
mainfrom
dependabot/github_actions/actions-9b7c4f1bbf
Oct 8, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
dependabot/github_actions/actions-9b7c4f1bbf

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 6, 2026

Copy link
Copy Markdown
Contributor

Bumps the actions group with 2 updates: leanprover/lean-action and github/codeql-action.

Updates leanprover/lean-action from 1.6.0 to 1.6.1

Release notes

Sourced from leanprover/lean-action's releases.

v1.6.1

Changed

  • pin the actions/cache steps, and all actions used by this repository's workflows, to full commit SHAs, so that lean-action works in organizations that require SHA-pinned actions
Changelog

Sourced from leanprover/lean-action's changelog.

v1.6.1 - 2026-10-02

Changed

  • pin the actions/cache steps, and all actions used by this repository's workflows, to full commit SHAs, so that lean-action works in organizations that require SHA-pinned actions
Commits

Updates github/codeql-action from 4.38.0 to 4.38.2

Release notes

Sourced from github/codeql-action's releases.

v4.38.2

  • Update default CodeQL bundle version to 2.27.1. #4160

v4.38.1

  • The CodeQL Action now has experimental support for CodeQL releases for which per-language bundles are available. Per-language bundles support analysis for a single language and are therefore smaller than the combined bundles that allow analysis for all supported languages. As a result, per-language bundles take up less space on disk and are faster to download. We expect to roll this change out to everyone in the coming weeks. #4146
Changelog

Sourced from github/codeql-action's changelog.

4.38.2 - 24 Sept 2026

  • Update default CodeQL bundle version to 2.27.1. #4160

4.38.1 - 18 Sept 2026

  • The CodeQL Action now has experimental support for CodeQL releases for which per-language bundles are available. Per-language bundles support analysis for a single language and are therefore smaller than the combined bundles that allow analysis for all supported languages. As a result, per-language bundles take up less space on disk and are faster to download. We expect to roll this change out to everyone in the coming weeks. #4146
Commits
  • 2892aa5 Merge pull request #4168 from github/update-v4.38.2-a6ef2c96f
  • 8ad03a3 Trigger workflows
  • 98af865 Update changelog for v4.38.2
  • a6ef2c9 Merge pull request #4156 from github/mario-campos/fix-validate-cmd
  • 1ef28a1 Merge pull request #4166 from github/dependabot/github_actions/dot-github/wor...
  • 26cb08b Merge pull request #4163 from github/mbg/fix-getCommitOid-stubs
  • f035ce3 Merge pull request #4165 from github/dependabot/npm_and_yarn/npm-minor-8eaed9...
  • 5e4e255 Rebuild
  • b13f5f4 Bump ruby/setup-ruby
  • c87fe57 Rebuild
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the actions group with 2 updates: [leanprover/lean-action](https://github.com/leanprover/lean-action) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `leanprover/lean-action` from 1.6.0 to 1.6.1
- [Release notes](https://github.com/leanprover/lean-action/releases)
- [Changelog](https://github.com/leanprover/lean-action/blob/main/CHANGELOG.md)
- [Commits](leanprover/lean-action@v1.6.0...v1.6.1)

Updates `github/codeql-action` from 4.38.0 to 4.38.2
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@v4.38.0...v4.38.2)

---
updated-dependencies:
- dependency-name: leanprover/lean-action
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: github/codeql-action
  dependency-version: 4.38.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Oct 6, 2026
@coderabbitai

coderabbitai Bot commented Oct 6, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 4d5482e0-5d11-471b-b629-bab470fe1b7a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@hyperpolymath
hyperpolymath merged commit ea1920a into main Oct 8, 2026
4 of 5 checks passed
@hyperpolymath
hyperpolymath deleted the dependabot/github_actions/actions-9b7c4f1bbf branch October 8, 2026 17:27
hyperpolymath added a commit that referenced this pull request Oct 14, 2026
)

**Stack 2/3 for MRC-01 (rung 3).** Stack 1/3, the toolchain move to
v4.34.0, merged as #36. Next: `…-docs`
(correspondence table, falsifier, STATE/ROADMAP), stacked on this
branch.

## `Marches/Cut.lean` (new)

A **cut** of the region DAG is a set of regions closed under
predecessors: every region that can cross into the cut is in it. This is
classical downward closure. It is *not* choreographic-types'
party-indexed `Consistent`, which is a merge condition at choices; the
next PR in the stack records that as a falsifier finding.

| Theorem | Says |
|---|---|
| `Cut.edge_crosses_past` | In an acyclic graph every edge `r → r'`
leaves the principal cut `↓r`. |
| `Cut.path_back_crosses_no_cut` | Negative: an edge on a cycle crosses
no cut. `Acyclic` is load-bearing. |
| `DiscSys.trace_cross_crosses_cut` | **Every crossing in a well-typed
composite trace crosses a cut** that holds the trace's start and not its
end. |
| `DiscSys.trace_mem_back`, `trace_inside` | A trace that ends in a cut
was inside it all along, and fired every label inside it. |
| `DiscSys.no_reentry` | A trace that leaves a cut never re-enters it.
This is `no_back_cross` lifted from one interface to every cut. |
| `DiscSys.composeCut` | **Prefix-closure: `compose` restricted to a cut
prefix is a `Discipline`.** |
| `composeCut_trace_embed` / `composeCut_trace_reflect` | Its traces are
exactly the composite's traces that end in the prefix: the frontier's
future is irrelevant to the prefix. |
| `trace_cross_crosses_cut`, `trace_stays_in_B` | The same results for
the two-region `Interface` of `Compose.lean`, read as the 2-node DAG
`Reassembly.boolUp`. |
| `CutExhibit.*` | A concrete `twoTropical` trace that instantiates the
theorems, plus a negative control on a self-loop. |

## `Marches/Tropical.lean`: the grade at the crossing

`TropicalGrade` reads `TropicalNat` as a (min,+) grade: `alt = min`,
`seq = +`, `one = 0`.

- K-4 laws: `seq_unitl` (`𝟙 ⊗ x = x`) and `alt_idem` (`x ⊕ x = x`).
- S-3 inside marches: `better_reverses_altLe`. `better` runs **with**
cost, while the ⊕-induced order runs **against** it, as in
resource-algebra's Loss and opposite to its MaxPlus. `altLe_one` puts
`𝟙` at the top, as Loss's `fin 0`. `s3_witness` uses the same numbers as
resource-algebra's S-3 (`2 ≼ 1`).
- The Agda side is not imported or re-declared. `altLe` is marches' own
order, and the doc comment says so.

## Evidence (local, Lean v4.34.0)

```
$ rm -rf .lake && lake build
Build completed successfully (15 jobs).
$ grep -rnw sorry Marches/ Marches.lean ; echo $?
1
$ lake env lean Marches/BadGadget.lean
[(false, false), (true, true), (false, false), (true, true)]
```

`#print axioms` over all 45 declarations added in `Cut.lean` and
`TropicalGrade`: every one reports `does not depend on any axioms`. I
re-proved three grade lemmas that had picked up `propext` through core
`Nat` lemmas, to match the existing kernel, which is also axiom-free.

`grep -ni converg Marches/Cut.lean` → only the delimitation line (45).

## CI: two red checks that are not this PR's

- **`CI` (the `lake build` + no-sorries job) ends in
`startup_failure`.** This has happened on every run since the Dependabot
bump #34 (runs 78–81, including on `main`). That
bump moved `ci.yml` to `leanprover/lean-action@v1.6.1` and `codeql.yml`
to `codeql-action@v4.38.2`, but `.github/workflows/actions.lock` still
pins `@v1.6.0` / `@v4.38.0`. The lockfile is enforced at startup ("Using
locked action versions from the workflow's lockfile"). Fix: re-run `gh
actions-lock` on `main`, as #25 did. I have not
hand-edited the machine-generated lockfile. Until that lands, the local
gate output above is the build evidence.
- **`estate-audit` fails at the Required Files Gate.** This is red on
`main` since at least run 41 (1 Oct). Reproduced locally against
`cicd-suite@5a10b72`: the gate runs under `bash -e -o pipefail`, and for
this repo's comment-only `.github/CODEOWNERS`, `functional_lines=$(grep
-vE '^\s*(#|//|;|$)' "$f" | wc -l)` selects no lines. `grep` exits 1,
pipefail fails the assignment, and the step exits with no `::error::`.
That is the very case the gate's "Rule 1" means to allow. The fix
belongs in hyperpolymath/cicd-suite, e.g. `{ grep -vE … "$f" || true; }
| wc -l`.

## Status rows

New README rows are PROVEN by `lake build`, and "conditional" where they
consume `Acyclic`. No cross-prover claim is made in this PR. Rung 3
stays OPEN.

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

https://claude.ai/code/session_01VTeVWDEJgdYKsUNr4uhnXX

---
_Generated by [Claude
Code](https://claude.ai/code/session_01VTeVWDEJgdYKsUNr4uhnXX)_

Co-authored-by: Claude <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request Oct 14, 2026
…tes (#38)

**Stack 3/3 for MRC-01 (rung 3).** 1/3 merged as
#36 (toolchain) and 2/3 as #37
(`Marches/Cut.lean` + K-4 laws). This branch was cut from #37's head
before its squash. `main` has since been merged in, without rewriting
history. The squash tree is byte-identical to that head, so the diff
against `main` is only this PR's docs and shell glue, plus one Lean
comment (the `Tropical.lean` seam note).

## What

- **`docs/kcut-correspondence.adoc`**: marches' Lean names paired with
choreographic-types' Agda names, at pinned commits. It is a table, not a
link. Every pairing is **ASSUMED (port-and-reprove)**, in
resource-algebra's M-2 idiom. Rows KC-1…KC-8 cover cuts, downward
closure, K-5 (`cut-projectable`), K-2 (`proj-cut`), the K-4 laws, the
S-3/W-4 direction, and M-2.
- **`scripts/fetch-siblings.sh`**: clones the siblings at their pins
into `_build/dependencies` (now git-ignored), using the
choreographic-types pattern. Pins: choreographic-types `edb784a`,
resource-algebra `cf9235c`, tropical-types `e172f8a`.
- **`scripts/check-correspondence.sh`**: the mechanical part. It checks
that every Lean name cited exists in this build (`#check`), that every
Agda name exists at its pin, and that every pin appears in the table.
Negative control: a fabricated Lean name and a fabricated Agda name go
through the same checks and must be refused. It checks **names, not
meanings**.
- **`FALSIFIERS.adoc` F6**: "the correspondence is nominal." It **fires
on one proposed row**. At `edb784a`, Agda's `Consistent p c`
(`Projection.agda:89`) is a party-indexed merge condition at choices,
and marches has no parties. So MRC-01's `Acyclic ↔ Consistent` pairing
is withdrawn (KC-3, status OPEN). F6 stays open, narrowed.
- **`Marches/Tropical.lean` seam note**: now points at resource-algebra
M-2, and records where `TropicalAdapterPath.lean` actually lives
(below).
- **`ROADMAP.adoc` rung 3**: now a gated table. 3a–3c are met; 3d
(TropicalAdapterPath import), 3e (echo-types bridge) and 3f (postern)
are OPEN, so the rung stays OPEN and there is no tag.
- **`STATE.adoc`**: records the session. **`README`** gets one ASSUMED
row and a note on the check script; **`LIMITATIONS`** gets one bullet;
**`ARCHITECTURE`** lists `docs/` and `scripts/`.

## Citation corrections found while reading the pins

- T-2's `receiver-knows` / `sender-knows` are in
`src/Choreographic/Instances.agda` (lines 172 and 177), not
`Transport.agda`. `Transport.agda` holds the generic `knows-local-cut`.
- `TropicalAdapterPath.lean` is in **hyperpolymath/tropical-types**. Its
lake package is named `tropical-resource-typing`, which is the name the
ROADMAP used. It is pinned to Lean **v4.13.0**, so expect friction when
3d imports it into v4.34.0.
- marches' `TropicalNat` is min-plus, so it sits with `Loss`, not
`MaxPlus`. It is not one of M-2's two (max-plus) objects (KC-8).

## Evidence (this head)

```
$ lake build
Build completed successfully (15 jobs).
$ grep -rnw sorry Marches/ Marches.lean ; echo $?
1
$ lake env lean Marches/BadGadget.lean
[(false, false), (true, true), (false, false), (true, true)]
$ scripts/check-correspondence.sh
choreographic-types at edb784a
resource-algebra at cf9235c
tropical-types at e172f8a
PASS: 15 Lean names and 16 sibling names exist at the pins; both negative controls refused
$ shellcheck scripts/*.sh   # clean
$ grep -ni converg Marches/Cut.lean docs/kcut-correspondence.adoc scripts/*.sh
Marches/Cut.lean:45:  not protocol convergence; agda-routing owns that ground (LIMITATIONS.adoc).
docs/kcut-correspondence.adoc:20:Delimitation: nothing here is a convergence claim; agda-routing owns that
```

Mutation test: I renamed one Lean name, one Agda name and one pin in the
doc. The script printed `MISSING (Lean)`, `MISSING (sibling)` and `PIN
NOT IN TABLE`, then `FAIL` with exit 1. Restoring the doc gives `PASS`
again.

## postern

Not reachable from this account on 2026-10-14 (`add_repo`: not found or
no access; no `list_repos` match). No cross-issue was filed. The MRC-01
import plan is kept in the correspondence doc, ready to file.

## CI

The same two pre-existing red checks as on `main` apply here, and
neither is caused by this PR:

- `CI` ends in `startup_failure`: `actions.lock` has drifted since
#34. The fix is `gh actions-lock`, as in
#25.
- `estate-audit` fails because of a cicd-suite pipefail bug on a
comment-only CODEOWNERS.

The full diagnosis is in #37.
`check-correspondence.sh` needs network access, so it is not wired into
CI here.

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

https://claude.ai/code/session_01VTeVWDEJgdYKsUNr4uhnXX

---
_Generated by [Claude
Code](https://claude.ai/code/session_01VTeVWDEJgdYKsUNr4uhnXX)_

---------

Co-authored-by: Claude <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request Oct 14, 2026
## One root cause behind both red checks

`.github/workflows/actions.lock` drifted. It does this in two ways:

| Check | Why it fails | Evidence |
|---|---|---|
| `CI` → `startup_failure` (no check run at all) | Dependabot
(#34) bumped `ci.yml` to
`leanprover/lean-action@v1.6.1` and `codeql.yml` to
`github/codeql-action@v4.38.2`, but the lock still names `v1.6.0` /
`v4.38.0`. | Every `CI` run since #34 (runs 78–81) |
| `estate-audit` → silent exit 1 | The lock pins
`hyperpolymath/cicd-suite@main` to `5a10b72`. That is before
hyperpolymath/cicd-suite#32 (`fa71ac2`, 22 Sept) fixed the Required
Files Gate's `grep -v … \| wc -l` under `-e -o pipefail` on a
comment-only CODEOWNERS. | Reproduced locally at `5a10b72`. Upstream
`main` now uses `grep -cvE … \|\| true`. |

So the upstream gate bug is **already fixed**, and nothing needs filing
on cicd-suite. marches just needs its lock advanced.

**Why Dependabot keeps causing this.** dependabot-core can rewrite
`actions.lock`, but only behind a server-side experiment
(`Experiments.enabled?(:github_actions_lockfile)` in
`github_actions/file_fetcher.rb`). That isn't something `dependabot.yml`
can enable, so every Actions bump will drift the lock again until GitHub
rolls it out.

## The fix: relock remotely, automatically

New `.github/workflows/actions-lock.yml` runs the official extension,
`github/gh-actions-lock` (pinned **v0.2.0**, the latest release, 12
Oct), on GitHub's runners:

- **When:**
- On every push to `main` that changes a workflow, so a merged
Dependabot bump is relocked within minutes.
- Weekly on Monday, after Dependabot, so branch pins like
`cicd-suite@main` track latest.
  - On demand.
- **What:** `gh actions-lock --relock --no-narrow
--no-migrate-local-actions`, scoped to two groups:
  - the workflows the lock already tracks;
- every workflow with no `uses:`, which is recorded as `[]` with nothing
to rewrite.

A workflow that has refs but isn't tracked yet, i.e. the estate's
canonical `secret-scanner.yml` caller, is never onboarded automatically,
because v0.2.0 may turn its SHA ref into a tag.
- **Guard:** a run that would change anything but `actions.lock` is
refused, the same assert as #25. Otherwise it opens
or updates a lockfile-only PR from `ci/relock-actions`.
- **No `uses:`**, so it runs precisely when the lock is stale. This
follows `labels.yml`.
- **Token:** it falls back to `GITHUB_TOKEN`. Two repo settings matter:
1. **Settings → Actions → General → "Allow GitHub Actions to create and
approve pull requests"** must be on, or `gh pr create` fails.
2. A PR opened with `GITHUB_TOKEN` does not trigger CI. Adding one
secret, **`AUTOMATION_TOKEN`** (a fine-grained token on this repo with
Contents, Issues, Pull requests and Workflows set to read/write), makes
CI run on the bots' PRs. It also covers the case where GitHub refuses a
`GITHUB_TOKEN` write under `.github/workflows/`. The track-latest
workflows in #42 share it.

**Merging this starts the first relock automatically**, because it's a
push to `main` that touches a workflow. I'll watch that run and the PR
it opens.

## Checks

```
$ actionlint -shellcheck=$(which shellcheck) .github/workflows/actions-lock.yml   # v1.7.7
(clean)
```

The run itself can only be exercised on GitHub. This sandbox can't reach
the GitHub API, which is why the relock has to run remotely in the first
place. The scope computation was dry-run locally and picks
`actions-lock.yml`, `ci.yml`, `codeql.yml`, `label-triage.yml`,
`labels.yml`, `main-estate-audit.yml` and `pages.yml`.

This PR's own `CI` and `estate-audit` will still be red, for the reasons
above. The relock PR fixes both.

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

https://claude.ai/code/session_01VTeVWDEJgdYKsUNr4uhnXX

---------

Co-authored-by: Claude <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request Oct 14, 2026
…n copy (#44)

Not a rung (CI). This is the marches half of
hyperpolymath/cicd-suite#50.

## Why `estate-audit` failed after 8s

- The 26-step copy of cicd-suite's workflow held here was frozen by
`actions.lock` at `cicd-suite@5a10b72`. That commit predates cicd-suite
#32, which fixed the Required Files Gate.
- All 26 gates ran in one job, so the first failure masked the rest.
- `prat` and `semantic-audit` were stubs that could not fail.

## What changes

- **`.github/workflows/main-estate-audit.yml`** is now a ten-line caller
of cicd-suite's reusable audit, pinned at a full SHA. It reports five
checks (`estate / governance`, `hygiene`, `manifests`, `languages`,
`advisory`), and each runs every gate even after one fails. The stubs
are gone.
- **`.github/workflows/actions.lock`:** the caller is de-onboarded by
cicd-suite's `scripts/deonboard-estate-audit.sh`. This removes its entry
and the three dependencies only it reached (`cicd-suite@main`,
`deed-ecosystem@f9d999b`, `k9-ecosystem@2155aa2`), and adds nothing.
Onboarded, a cross-repo reusable call startup-fails with zero jobs under
`sha_pinning_required`. The relock workflow in #41 scopes itself to
tracked workflows plus those with no `uses:`, so it leaves the caller
out.
- **`.github/workflows/track-estate-audit.yml`** (new, no `uses:`): each
week it opens a PR that moves the pin to cicd-suite HEAD, and that PR's
own audit run is the check. If someone has pushed a commit to its
branch, it leaves the branch alone rather than force-pushing over it. It
needs `AUTOMATION_TOKEN`, the same secret #41 and #42 use, with Pull
requests and Workflows set to write.
- **STATE.adoc** entry.

## Merge order

The pin is `afa28ff`, the head of cicd-suite#50, so this PR's
pull_request run exercises the cross-repo call for real. **Merge
cicd-suite#50 first.** I will then re-pin this PR to #50's merge commit
before it leaves draft.

cicd-suite's current `main` (`4f54042`) is also callable, since it has
had `workflow_call` since cicd-suite #7. However, it is the old
single-job, 26-step audit. Until #50 merges, the weekly bot would
propose moving back to it.

## Verification

- **On this PR:** all five `estate / *` checks are green against
cicd-suite #50.
- **Lint:** actionlint 1.7.7 is clean on both workflows.
- **Lean gates:**
  - `lake build` → `Build completed successfully (15 jobs).`
  - `grep -rnw sorry` is empty.
- `#eval orbit` prints `[(false, false), (true, true), (false, false),
(true, true)]`.
  - No Lean file changed.
- **Local harness:** cicd-suite's 24 composite gates at `1aa6bfb` were
run as composite steps (`bash -e -o pipefail`) against this branch, and
all 24 exit 0. Negative control: with the gates at `5a10b72`,
required-files fails, which reproduces the original failure.

## Expected red, not caused by this PR

`CI` and `CodeQL` end in `startup_failure` on main too. Dependabot (#34)
bumped `lean-action` and `codeql-action` without relocking, so the lock
drifted. The fix is #41's relock workflow, which takes effect after #41
merges.

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

https://claude.ai/code/session_01VTeVWDEJgdYKsUNr4uhnXX

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant