Skip to content

Commit c482330

Browse files
Merge branch 'main' into dependabot/cargo/criterion-0.8.2
2 parents cfbbe39 + 192a25a commit c482330

50 files changed

Lines changed: 2256 additions & 628 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot/coding-agent.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
mcp_servers:
2+
boj-server:
3+
command: npx
4+
args: ["-y", "@hyperpolymath/boj-server@latest"]
5+
env:
6+
BOJ_URL: http://localhost:7700

.github/workflows/chapel-ci.yml

Lines changed: 40 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,17 @@ concurrency:
2727

2828
permissions: read-all
2929

30+
# Pinned Chapel deb (Ubuntu 22.04 amd64; installs cleanly on the
31+
# ubuntu24 runner). SHA-256 verified against the GitHub Releases asset;
32+
# mismatch fails the install step. Bumped 2.3.0 -> 2.8.0 (issue #181)
33+
# to track sibling estate repos proven (#141) and panic-attack (#85),
34+
# both of which validated this URL+SHA combo against the same
35+
# `ubuntu-latest` runner image we use here.
36+
env:
37+
CHAPEL_VERSION: '2.8.0'
38+
CHAPEL_DEB_URL: 'https://github.com/chapel-lang/chapel/releases/download/2.8.0/chapel-2.8.0-1.ubuntu22.amd64.deb'
39+
CHAPEL_DEB_SHA256: '944a454b8a791f344312fcd261b562871159b74f5ef41d81e11833eb21d85f60'
40+
3041
jobs:
3142
# Job 1: Compile Chapel .chpl files into a static library.
3243
#
@@ -35,30 +46,35 @@ jobs:
3546
# compiling, the workflow fails.
3647
#
3748
# Why --static and not --dynamic:
38-
# The official apt deb (chapel-2.3.0-1.ubuntu24.amd64.deb) ships only
39-
# the CHPL_LIB_PIC=none runtime variant. Building a shared library
40-
# requires CHPL_LIB_PIC=pic runtime objects which are not in the
41-
# package; the linker rejects the non-PIC `libchpl.a` with
49+
# The official apt deb (chapel-${CHAPEL_VERSION}-1.ubuntu22.amd64.deb)
50+
# ships only the CHPL_LIB_PIC=none runtime variant. Building a shared
51+
# library requires CHPL_LIB_PIC=pic runtime objects which are not in
52+
# the package; the linker rejects the non-PIC `libchpl.a` with
4253
# `relocation R_X86_64_TPOFF32 ... can not be used when making a
4354
# shared object`. Until the CI image ships a PIC-enabled runtime
44-
# (or we adopt a from-source Chapel build), the metalayer is
55+
# (or we adopt a from-source Chapel build via the
56+
# `chapel-pic-from-source` Justfile recipe), the metalayer is
4557
# distributed as `libechidna_chapel.a` and the Zig FFI links it
4658
# statically.
4759
chapel-build:
4860
name: Compile Chapel Metalayer
49-
runs-on: ubuntu-latest
61+
runs-on: ubuntu-22.04
5062
steps:
5163
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
5264

53-
- name: Install Chapel
65+
- name: Install Chapel ${{ env.CHAPEL_VERSION }} (SHA-pinned .deb)
5466
run: |
55-
# Install Chapel from official apt repository.
56-
# SHA256 of the deb is pinned for supply-chain integrity; bump
57-
# alongside the version tag when upgrading.
58-
curl -fsSL --max-time 300 \
59-
https://github.com/chapel-lang/chapel/releases/download/2.3.0/chapel-2.3.0-1.ubuntu24.amd64.deb \
60-
-o /tmp/chapel.deb
61-
sudo dpkg -i /tmp/chapel.deb || sudo apt-get install -f -y
67+
set -euo pipefail
68+
# libunwind-dev is a runtime link-time dep for chpl-built binaries
69+
# on the ubuntu .deb path; sibling estate repo panic-attack (#85)
70+
# established this preinstall as the working pattern, reused by
71+
# proven (#141). Without it the chapel-build smoke link fails with
72+
# `error while loading shared libraries: libunwind.so.8`.
73+
sudo apt-get update -qq
74+
sudo apt-get install -y libunwind-dev
75+
curl -fsSL --max-time 300 --retry 3 -o /tmp/chapel.deb "$CHAPEL_DEB_URL"
76+
echo "$CHAPEL_DEB_SHA256 /tmp/chapel.deb" | sha256sum --check
77+
sudo apt-get install -y /tmp/chapel.deb
6278
chpl --version
6379
6480
- name: Compile Chapel proof search library (static)
@@ -93,7 +109,7 @@ jobs:
93109
# `src/zig_ffi/build.zig`.
94110
zig-ffi:
95111
name: Build & Test Zig FFI Bridge
96-
runs-on: ubuntu-latest
112+
runs-on: ubuntu-22.04
97113
steps:
98114
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
99115

@@ -121,7 +137,7 @@ jobs:
121137
# Re-enable strict gating once #133's Chapel + FFI rehabilitation lands.
122138
rust-chapel-feature:
123139
name: Rust Build with Chapel Feature
124-
runs-on: ubuntu-latest
140+
runs-on: ubuntu-22.04
125141
needs: zig-ffi
126142
continue-on-error: true
127143
steps:
@@ -159,18 +175,20 @@ jobs:
159175
# and flip this job to strict.
160176
rust-chapel-real:
161177
name: Rust Build — Real Chapel Library (allow-fail, L2.3+ gate)
162-
runs-on: ubuntu-latest
178+
runs-on: ubuntu-22.04
163179
needs: [chapel-build, zig-ffi]
164180
continue-on-error: true
165181
steps:
166182
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
167183

168-
- name: Install Chapel
184+
- name: Install Chapel ${{ env.CHAPEL_VERSION }} (SHA-pinned .deb)
169185
run: |
170-
curl -fsSL --max-time 300 \
171-
https://github.com/chapel-lang/chapel/releases/download/2.3.0/chapel-2.3.0-1.ubuntu24.amd64.deb \
172-
-o /tmp/chapel.deb
173-
sudo dpkg -i /tmp/chapel.deb || sudo apt-get install -f -y
186+
set -euo pipefail
187+
sudo apt-get update -qq
188+
sudo apt-get install -y libunwind-dev
189+
curl -fsSL --max-time 300 --retry 3 -o /tmp/chapel.deb "$CHAPEL_DEB_URL"
190+
echo "$CHAPEL_DEB_SHA256 /tmp/chapel.deb" | sha256sum --check
191+
sudo apt-get install -y /tmp/chapel.deb
174192
chpl --version
175193
176194
- name: Install Zig

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
pull_request:
88
branches: [main, master]
99
schedule:
10-
- cron: '0 6 * * 1'
10+
- cron: '0 6 1 * *' # monthly 1st 06:00 UTC
1111

1212
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
1313
# updates do not pile up queued runs against the shared account-wide

.github/workflows/mvp-smoke.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
uses: Swatinem/rust-cache@65012b490220f477f20ab979e35ae732e6de4e68 # v2
3939

4040
- name: Install just
41-
uses: taiki-e/install-action@184183c2401be73c3bf42c2e61268aa5855379c1 # v2.78.1
41+
uses: taiki-e/install-action@e49978b799e49ff429d162b7a30601a569ab6538 # v2.81.1
4242
with:
4343
# Governance R1 requires versioned family-tool pins
4444
# (just|must|trust|adjust|bust|dust|intend); bare `tool: just`

.github/workflows/scorecard-enforcer.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ jobs:
4949
publish_results: true
5050

5151
- name: Upload SARIF
52-
uses: github/codeql-action/upload-sarif@c6f931105cb2c34c8f901cc885ba1e2e259cf745 # v4
52+
uses: github/codeql-action/upload-sarif@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4
5353
with:
5454
sarif_file: results.sarif
5555

5656
- name: Persist SARIF for downstream score-gate job
57-
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
57+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
5858
with:
5959
name: scorecard-results
6060
path: results.sarif
@@ -67,7 +67,7 @@ jobs:
6767
contents: read
6868
steps:
6969
- name: Download SARIF from scorecard job
70-
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v5.0.0
70+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v5.0.0
7171
with:
7272
name: scorecard-results
7373

.github/workflows/security-scan.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ permissions:
2020

2121
jobs:
2222
scan:
23-
uses: hyperpolymath/panic-attack/.github/workflows/scan-and-report.yml@ea88be7da68e07249ae7df8b948ecb8ecfb9664c # main 2026-05-20
23+
uses: hyperpolymath/panic-attack/.github/workflows/scan-and-report.yml@4c8b800de1c2b95954043a42109b82b925cd30f3 # main 2026-05-20
2424
secrets:
2525
VERISIMDB_PAT: ${{ secrets.VERISIMDB_PAT }}

.machine_readable/6a2/STATE.a2ml

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,46 @@ type = "state-file"
88

99
[metadata]
1010
project = "echidna"
11-
version = "2.1.1"
12-
last-updated = "2026-05-19"
11+
version = "2.3.0"
12+
last-updated = "2026-06-02"
1313
status = "active"
14+
release-tag = "v2.3.0"
1415

1516
[project-context]
1617
name = "echidna"
1718
completion-percentage = 100
18-
phase = "v1.6.0 Released — Phase 0 of comprehensive backend expansion landed"
19+
phase = "v2.3.0 Released — saturation+typing (#198) + GNN training wiring (#207) + dispatcher all-17-adapters (PR pending SPDX hook) + comprehensive contractile family (#214) + first owner-authorised GNN training run completed (best MRR 0.92)"
20+
21+
[session-2026-06-02]
22+
description = "Major wave: 20+ PRs across echidna+echidnabot+gitbot-fleet+hyperpolymath"
23+
notable-pr-merges = [
24+
"#176 panic-attack Critical bound (load_octads_jsonl)",
25+
"#178 echo-types audit cross-doc",
26+
"#179 6 SHA-pin bumps + proven manifest fix",
27+
"#182 doc maxout (+wiki sync)",
28+
"#183 Chapel 2.3 → 2.8 bump (ubuntu-22.04 .deb pin)",
29+
"#184 v2.3.0 release reconcile (#173 Option B)",
30+
"#185 mktemp swap for scripts/",
31+
"#186 FFI audit §§9-11 (FLINT + Zig bridges + Zig overlay)",
32+
"#188 GraphQL +3 ops (verifyProof/suggestTactics/proverStatus) closes #180",
33+
"#189 nix purge per estate policy",
34+
"#198 saturation+typing (corpus 4→17, 42-discipline embedding)",
35+
"#199 a2ml-validate to 6bff6ec (s-expression form)",
36+
"#206 wave3 CI/CD closeout (C001-C005)",
37+
"#207 GNN training wiring (CorpusLoader)",
38+
"#209 Palimpsest framework reference restored",
39+
"#210 JSON dep fix (corpus_loader.jl)",
40+
"#211 EchidnaML CUDA.version() fix + training doc skeleton",
41+
"#212 training run 2026-06-02 results (MRR 0.92, 17 epochs coq, 16 lean)",
42+
"#214 contractile family (5 files, 805 ins / 307 del — comprehensive A/B/D/T### error codes)",
43+
]
44+
new-issues-filed-as-trackers = [
45+
"#177 panic-attack FFI follow-ups",
46+
"#187 panic-attack classifications path mismatch (audits/ vs reports/audits/)",
47+
"#190-197 long-tail roadmap trackers (OpenTheory/Dedukti/SPARK/AI-sketch/Cap'n Proto/Stage 5/L2.3/Verisim)",
48+
]
49+
known-blocker = "feat/corpus-dispatcher-all-17-adapters branch ready to wire 13 missing adapters into CLI dispatcher; blocked by src/rust/main.rs SPDX-FileCopyrightText hook requiring owner manual flip from 'ECHIDNA Project Team' to canonical 'Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>' before commit accepted"
50+
gnn-training-run = "models/neural/{best_model,final_model,gnn_ranker,checkpoint_epoch_{5,10,15}} — 952MB total; gnn_ranker production-deployable (162MB)"
1951

2052
[expansion-roadmap]
2153
# 2026-04-26 — design landed; Phase 0 foundation pushed. Goal: push prover

0 commit comments

Comments
 (0)