Skip to content

Three pre-existing red non-required checks on main: Allowlist Preflight (empty GH_TOKEN), Workflow security linter (duplicate with in abi-drift.yml), SonarQube (403) #338

Open

Description

@hyperpolymath

Summary

Three non-required checks are red on main and have been since before #337 (measured on 3c3f2621 and e1eefa45, 2026-10-06). None blocks a merge (the only required context is scan / gitleaks), but each one is a real defect, so #337 defers them here rather than hiding them. One issue, three acceptance criteria, so the pile grows by one.

1. governance / Allowlist Preflight — exit 3, cannot read live Actions permissions

Log (run 37468005902, job 112283831352): GH_TOKEN: is empty in the "check-actions-policy" step, gh refuses to run, the script prints ERROR: could not read live Actions permissions for hyperpolymath/boj-server and exits 3.

Cause: governance.yml calls hyperpolymath/standards/.github/workflows/governance-reusable.yml@84355587 and passes no secrets. At that pin the reusable sets GH_TOKEN: ${{ secrets.HYPATIA_SCAN_PAT }} (declared required: false) and fails hard when it is empty. boj-server-cartridges calls the same reusable at 9e9513b1, also with no secrets, and its Allowlist Preflight is green on main, so the newer pin tolerates the absent token.

Acceptance: bump the governance pin to 9e9513b1 or later (regenerate .github/workflows/actions.lock in the same commit, per the lock gates), or pass HYPATIA_SCAN_PAT from the caller; governance / Allowlist Preflight is green on the main head that lands it.

2. governance / Workflow security linter — duplicate with key in abi-drift.yml

Log (job 112283831223): FAIL .github/workflows/abi-drift.yml: duplicate key(s): 'with' (line 86). The "Install Rust toolchain (stable)" step carries two with: maps (toolchain: v1 then toolchain: stable). GitHub rejects the file before any job is created, so abi-drift.yml has not run at all since the duplicate was introduced; an ordinary YAML parser keeps the last key and reports success, which is why nothing else caught it.

Acceptance: one with: map with toolchain: stable; governance / Workflow security linter green; the ABI drift workflow produces a check run on the next pull_request that touches src/abi/ or ffi/.

3. SonarQube — HTTP 403 from SonarCloud

Log (run 37468004225, job 112283822510): GET https://api.sonarcloud.io/analysis/jres?os=linux&arch=x86_64 failed with HTTP 403 Forbidden. Please check the property sonar.token or the environment variable SONAR_TOKEN. The scanner never reaches analysis. Sibling of hyperpolymath/boj-server-cartridges#96.

Acceptance: owner action — a valid SONAR_TOKEN for this project in the repo secrets (set from a real terminal or the web UI, then proved by a green run, not by the secret's updated_at), or the workflow conditioned off until one exists; SonarQube green or skipped-by-design on main, and if it is ever made required, "required" means the quality gate passes.

Scope

Deferred from #337 (a gitleaks-only fix) under AGENTS.md §5c item 3. Each criterion is independently small; 1 and 2 are a single follow-up PR, 3 is an owner action.

https://claude.ai/code/session_0144BSwhFVjj4EJ2u7Y2VHWf

Activity

  1. added
    scope:repoConfined to this repository
    choreRoutine maintenance with no behaviour change
    on Oct 6, 2026
  2. hyperpolymath commented on Oct 7, 2026

    @hyperpolymath
    OwnerAuthor

    Adding a fourth pre-existing red that is not required on main (9180ee6b): governance / UUID v7 conformance.

    • Cause (job 112670729414): ./.machine_readable/CLADE.a2ml: non-v7 UUID literal (5f5df93b-789d-5ff6-8a44-9dc6ed90a7b1). That literal is a v5 UUID.
    • The job runs .standards-uuid/scripts/check-uuid-v7.sh, which accepts only v7. Standards now has the v8 dual-accept check-uuid-v8.sh (standards#1176, ADR-008 Accepted).

    Acceptance criteria

    • governance / UUID v7 conformance is green on main.
    • The fix is either (a) the A2ML→deed migration of CLADE.a2ml, done by kcX per D313, not hand-converted, or (b) repinning governance to a standards revision whose job runs the v8/legacy-typed checker.
    • No .a2ml file is hand-edited.

    Seen while working on #348, where the same check is red for the same reason.

    🤖 Generated with Claude Code

  3. hyperpolymath commented on Oct 7, 2026

    @hyperpolymath
    OwnerAuthor

    More checks that aren't required but are red on main 14386f3e, all already red on its parent 0e700c9d. Found while writing the affirmation in #351.

    1. E2E — Full REST + MCP Bridge, E2E — Order Ticket (FFI layer), Bench — FFI Catalogue + Mount/Unmount + Hash: these fail with 13 compile errors at ffi/zig/src/bench.zig:27:60: error: enum 'Io.Clock' has no member named 'monotonic'. Zig 0.16.0's std.Io no longer has that member.
      • Acceptance: zig build of boj_bench succeeds on 0.16.0, and all three jobs are green on main.
    2. deploy (Deploy to Cloudflare Workers, run 37586422896): exit 1. I didn't find the cause in this session.
      • Acceptance: the cause is identified, and the job is green or deliberately gated off.
    3. Dependabot (run 37586435802): the updater errored on the cargo update for quinn-proto and rustls in /coord-tui and /tray. That leaves open alerts Standardise license: MPL-2.0 + PMPL-1.0-or-later (REUSE) #6 (high, quinn-proto, GHSA-4w2j-m93h-cj5j), Add node operator tray app and browser extension #7 and fix: glama.json, Containerfile rename, and licensing tidy #8 (moderate, rustls, GHSA-2mjx-qc3c-rqvc).
      • Acceptance: the three alerts are closed by the lockfile bumps.

    Not a check, but it blocks local verification: the Justfile doesn't parse. guix-shell is defined at lines 1055 and 1063 (added in #327), so every just recipe fails before running.

    • Acceptance: just --list exits 0.

    🤖 Generated with Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    choreRoutine maintenance with no behaviour changescope:repoConfined to this repository

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions