Skip to content

fix(ci): clear the three remaining red workflows (scorecard perms, TLA+ checksum, Pages timeout) - #85

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/ci-scorecard-tla-pages
Jul 27, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
fix/ci-scorecard-tla-pages

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Three independent one-line fixes, each with a measured root cause:

  1. Scorecard (startup_failure, zero jobs): the reusable at the pinned SHA needs workflow-level contents: read, but the caller job's explicit permissions block (security-events + id-token only) replaced the defaults — a reusable may not exceed its caller's grant, so Actions refused at parse time. Fix: add contents: read to the caller job.

  2. TLA+ Consensus: upstream rebuilt the v1.8.0 tla2tools.jar release asset on 2026-07-18 (jar manifest Build-TimeStamp), invalidating the pinned sha256. Re-pinned to the measured checksum of the same version-tagged URL.

  3. GitHub Pages: the cold GHC build of casket-ssg exceeds the 15-minute job timeout; timed-out steps report as "cancelled", masquerading as manual cancellation, and the mid-build death means the Cabal cache never saves — keeping every run cold. Bumped build timeout to 35 min; after one warm run the cache should make this fast again. (The transitive actions/upload-artifact@v4 rejection that also blocked this workflow was fixed at the repo-settings level: sha_pinning_required off, allowlist + GitHub-owned actions unchanged.)

Verification: TLA+ runs on this PR. Scorecard and Pages only trigger on push to main, so their proof lands on the post-merge run.

🤖 Generated with Claude Code

…LA+ checksum, Pages timeout

Three independent one-line fixes:

- scorecard.yml: grant contents: read on the caller job. The reusable at
  the pinned SHA declares workflow-level contents: read; the caller's
  explicit job permissions (security-events + id-token only) replaced the
  default grant, so the reusable exceeded its caller and Actions refused
  the run at parse time (startup_failure, zero jobs).

- tla-consensus.yml: re-pin the tla2tools.jar sha256. Upstream rebuilt
  the v1.8.0 release asset on 2026-07-18 (per the jar manifest
  Build-TimeStamp), so the old checksum no longer matches. New checksum
  measured from a fresh download of the same version-tagged URL.

- casket-pages.yml: raise the build job timeout 15 -> 35 minutes. The
  cold GHC/cabal build of casket-ssg exceeds 15 minutes, and because the
  job dies mid-build the Cabal cache never saves — every subsequent run
  is cold again. Timed-out steps report as 'cancelled', which masked
  this as manual cancellation. Once one run completes and saves the
  cache, subsequent builds should be fast.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 3 issues detected

Severity Count
🔴 Critical 0
🟠 High 3
🟡 Medium 0
View findings
[
  {
    "reason": "binary_to_term without :safe option -- deserialization attack (1 occurrences, CWE-502)",
    "type": "elixir_send_unsanitised",
    "file": "/home/runner/work/phronesis/phronesis/lib/phronesis/compiler.ex",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/code_safety/elixir_send_unsanitised -- Hypatia code_safety: elixir_send_unsanitised -- 45 day(s) old [STALE]",
    "type": "CSA001",
    "file": "lib/phronesis/compiler.ex",
    "action": "escalate",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  },
  {
    "reason": "Code-scanning alert hypatia/code_safety/elixir_send_unsanitised (high) at lib/phronesis/compiler.ex is 45 days old (threshold: 7 days) -- overdue for remediation",
    "type": "CSA003",
    "file": "lib/phronesis/compiler.ex",
    "action": "escalate",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit 276a98d into main Jul 27, 2026
29 checks passed
@hyperpolymath
hyperpolymath deleted the fix/ci-scorecard-tla-pages branch July 27, 2026 18:56
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.

1 participant