From a87fa8ad5cef7074136beb24f767cbb5c91da0cd Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Tue, 6 Oct 2026 19:49:27 +0100 Subject: [PATCH] fix(ci): unblock estate-audit, workflow linter and rust-ci - main-estate-audit.yml: bump all cicd-suite gate pins 5a10b72e -> 4c772eb2 (cicd-suite main). At 5a10b72e the Required Files Gate runs `functional_lines=$(grep -vE ... | wc -l)` under the harness's `bash -e -o pipefail`; on this repo's comment-only CODEOWNERS grep exits 1 and the step dies with no message after "found toolchain". cicd-suite fa71ac2a (#32) fixed it with `grep -c ... || true`. actions.lock entry and dependency record moved to the same SHA. - main-estate-audit.yml: add the SPDX header and a top-level `permissions: contents: read` the governance workflow linter requires. - Justfile: indent the column-0 shell lines inside the doctor, heal and help-me shebang recipes. A column-0 line ends a just recipe, so the file did not parse ("unknown start of token '-'" at 72:12) and the Recipes Set gate, which the Required Files gate had been masking, failed. - rust-ci.yml: bump rust-ci-reusable d135b05b -> standards main eafcfbb5, which passes `toolchain: stable` to the SHA-pinned dtolnay/rust-toolchain (it failed: "'toolchain' is a required input"). - benches: use std::hint::black_box; criterion::black_box is deprecated and clippy -D warnings rejects it (12 errors). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm --- .github/workflows/actions.lock | 6 +-- .github/workflows/main-estate-audit.yml | 56 +++++++++++++------------ .github/workflows/rust-ci.yml | 2 +- Justfile | 54 ++++++++++++------------ benches/git_reticulator_bench.rs | 3 +- 5 files changed, 63 insertions(+), 58 deletions(-) diff --git a/.github/workflows/actions.lock b/.github/workflows/actions.lock index 9a5ace2..341c41b 100644 --- a/.github/workflows/actions.lock +++ b/.github/workflows/actions.lock @@ -8,7 +8,7 @@ workflows: - 'github/codeql-action@b96794f015dfd88f77b49b1c93e0fa7110f94c63' '.github/workflows/main-estate-audit.yml': - 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' - - 'hyperpolymath/cicd-suite@5a10b72e574ef63855fafd4568a4c178657f3294' + - 'hyperpolymath/cicd-suite@4c772eb235b04455307d5c03cbbc4f45130f7f0f' '.github/workflows/pages.yml': - 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' - 'actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346' @@ -47,9 +47,9 @@ dependencies: commit: 'sha1-b96794f015dfd88f77b49b1c93e0fa7110f94c63' owner_id: 9919 repo_id: 259445878 - 'hyperpolymath/cicd-suite@5a10b72e574ef63855fafd4568a4c178657f3294': + 'hyperpolymath/cicd-suite@4c772eb235b04455307d5c03cbbc4f45130f7f0f': ref: 'main' - commit: 'sha1-5a10b72e574ef63855fafd4568a4c178657f3294' + commit: 'sha1-4c772eb235b04455307d5c03cbbc4f45130f7f0f' owner_id: 6759885 repo_id: 1326697643 uses: diff --git a/.github/workflows/main-estate-audit.yml b/.github/workflows/main-estate-audit.yml index 4296074..987cedd 100644 --- a/.github/workflows/main-estate-audit.yml +++ b/.github/workflows/main-estate-audit.yml @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: MPL-2.0 # This workflow is managed by gh actions-lock. name: Central Estate CI/CD Audit @@ -8,6 +9,9 @@ on: pull_request: branches: [ "main" ] +permissions: + contents: read + jobs: estate-audit: runs-on: ubuntu-latest @@ -15,79 +19,79 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Required Files Gate - uses: hyperpolymath/cicd-suite/actions/required-files-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/required-files-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Code Hygiene Gate - uses: hyperpolymath/cicd-suite/actions/code-hygiene-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/code-hygiene-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Manifest Validation Gate - uses: hyperpolymath/cicd-suite/actions/manifest-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/manifest-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Idris2 ABI Purity Gate - uses: hyperpolymath/cicd-suite/actions/idris2-abi-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/idris2-abi-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Zig UnifiedApiAdapter API Gate - uses: hyperpolymath/cicd-suite/actions/zig-unified-api-adapter-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/zig-unified-api-adapter-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Contractile Validation Gate - uses: hyperpolymath/cicd-suite/actions/contractile-validation-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/contractile-validation-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Recipes Set Validation Gate - uses: hyperpolymath/cicd-suite/actions/recipes-set-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/recipes-set-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Affirmation Document Gate - uses: hyperpolymath/cicd-suite/actions/affirmation-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/affirmation-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Academic Referencing Gate - uses: hyperpolymath/cicd-suite/actions/referencing-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/referencing-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Semantic Audit Gate - uses: hyperpolymath/cicd-suite/actions/semantic-audit-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/semantic-audit-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: SPDX License Gate - uses: hyperpolymath/cicd-suite/actions/spdx-license-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/spdx-license-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Proof Runner Gate - uses: hyperpolymath/cicd-suite/actions/proof-runner-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/proof-runner-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: PRAT Testing Gate - uses: hyperpolymath/cicd-suite/actions/prat-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/prat-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Panic Attack & Pons Gate - uses: hyperpolymath/cicd-suite/actions/custom-tools-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/custom-tools-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: WWW & Well-Known Compliance Gate - uses: hyperpolymath/cicd-suite/actions/www-compliance-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/www-compliance-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: BoJ Cartridge Validation Gate - uses: hyperpolymath/cicd-suite/actions/boj-cartridge-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/boj-cartridge-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Formatting Validation Gate - uses: hyperpolymath/cicd-suite/actions/formatting-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/formatting-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Accreditations & Badges Gate - uses: hyperpolymath/cicd-suite/actions/badges-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/badges-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Metrics Extraction Gate - uses: hyperpolymath/cicd-suite/actions/metrics-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/metrics-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Linguist & Banned Languages Gate - uses: hyperpolymath/cicd-suite/actions/linguist-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/linguist-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Test & Benchmarks Dashboard Gate - uses: hyperpolymath/cicd-suite/actions/tests-benches-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/tests-benches-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Hosting & Site Status Gate - uses: hyperpolymath/cicd-suite/actions/hosting-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/hosting-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Git-Sea Analytics Gate - uses: hyperpolymath/cicd-suite/actions/gitsea-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/gitsea-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Trust & Humans Validation Gate - uses: hyperpolymath/cicd-suite/actions/trust-humans-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/trust-humans-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Are We UnAPI Gate (Secret Scanning) - uses: hyperpolymath/cicd-suite/actions/secrets-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/secrets-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main - name: Reasonably Good Token Validation Gate - uses: hyperpolymath/cicd-suite/actions/vaulted-tokens-check@5a10b72e574ef63855fafd4568a4c178657f3294 # main + uses: hyperpolymath/cicd-suite/actions/vaulted-tokens-check@4c772eb235b04455307d5c03cbbc4f45130f7f0f # main diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index 5a70c61..c14a974 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -16,7 +16,7 @@ permissions: jobs: rust-ci: - uses: hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@d135b05bfc647d0c0fbfedc7e80f37ea50f49236 + uses: hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml@eafcfbb5933dde8b42fdbd61483794bb75fb4c97 # The reusable job tests default features only; this keeps the feature-gated # git ingest compiling (it silently broke once — git2 0.21 API drift). diff --git a/Justfile b/Justfile index b3e4f4d..c75414e 100644 --- a/Justfile +++ b/Justfile @@ -68,14 +68,14 @@ doctor: check "just" just "1.25" check "git" git "2.40" check "Rust (cargo)" cargo "1.80" -# Optional tools -if command -v panic-attack >/dev/null 2>&1; then - echo " [OK] panic-attack — available" - PASS=$((PASS + 1)) -else - echo " [WARN] panic-attack — not found (pre-commit scanner)" - WARN=$((WARN + 1)) -fi + # Optional tools + if command -v panic-attack >/dev/null 2>&1; then + echo " [OK] panic-attack — available" + PASS=$((PASS + 1)) + else + echo " [WARN] panic-attack — not found (pre-commit scanner)" + WARN=$((WARN + 1)) + fi echo "" echo " Result: $PASS passed, $FAIL failed, $WARN warnings" if [ "$FAIL" -gt 0 ]; then @@ -91,15 +91,15 @@ heal: echo " Git Reticulator Heal — Automatic Tool Installation" echo "═══════════════════════════════════════════════════" echo "" -if ! command -v cargo >/dev/null 2>&1; then - echo "Installing Rust via rustup..." - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - source "$HOME/.cargo/env" -fi -if ! command -v just >/dev/null 2>&1; then - echo "Installing just..." - cargo install just 2>/dev/null || echo "Install just from https://just.systems" -fi + if ! command -v cargo >/dev/null 2>&1; then + echo "Installing Rust via rustup..." + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + source "$HOME/.cargo/env" + fi + if ! command -v just >/dev/null 2>&1; then + echo "Installing just..." + cargo install just 2>/dev/null || echo "Install just from https://just.systems" + fi echo "" echo "Heal complete. Run 'just doctor' to verify." @@ -133,20 +133,20 @@ help-me: echo " Git Reticulator — Common Workflows" echo "═══════════════════════════════════════════════════" echo "" -echo "FIRST TIME SETUP:" -echo " just doctor Check toolchain" -echo " just heal Fix missing tools" -echo "" + echo "FIRST TIME SETUP:" + echo " just doctor Check toolchain" + echo " just heal Fix missing tools" + echo "" echo "DEVELOPMENT:" echo " cargo build Build the project" echo " cargo test Run tests" echo "" -echo "PRE-COMMIT:" -echo " just assail Run panic-attacker scan" -echo "" -echo "LEARN:" -echo " just tour Guided project tour" -echo " just default List all recipes" + echo "PRE-COMMIT:" + echo " just assail Run panic-attacker scan" + echo "" + echo "LEARN:" + echo " just tour Guided project tour" + echo " just default List all recipes" # Print the current CRG grade (reads from READINESS.md '**Current Grade:** X' line) diff --git a/benches/git_reticulator_bench.rs b/benches/git_reticulator_bench.rs index 6cae7a6..46b9e4c 100644 --- a/benches/git_reticulator_bench.rs +++ b/benches/git_reticulator_bench.rs @@ -13,9 +13,10 @@ // engine/precedes - node partial-order query (condenses internally per call) // engine/ingest - std-only filesystem walk of this repo's own `src/` tree -use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; use git_reticulator::ingest; use git_reticulator::lattice::{Lattice, LatticeBuilder, SemanticLevel}; +use std::hint::black_box; /// Build a synthetic lattice of `modules` modules, each with `files_per` files, /// each with `defs_per` definitions (Module ⊃ File ⊃ Definition). Definitions