Commit Graph

13 Commits

Author SHA1 Message Date
Claude 0e74d77259 fix(toolchain): preserve lint findings from modules that pass version check
The golangci-lint version mismatch detection was doing an early return
that discarded all findings, even from modules that linted successfully.
In a mixed-version setup (e.g. tests/fixtures/proof-repo uses a different
Go version than cli/), real lint errors from passing modules were silently
dropped and the gate under-reported.

Now the version mismatch is recorded but findings are counted first —
only when zero real findings exist does the tool fall back to "skipped".

https://claude.ai/code/session_01YWC8ZyAyN7kZRXEpNLTN2n
2026-04-12 18:35:19 +00:00
Claude 5ad36c2c79 fix(nightly): resolve three causes of CI build failures
1. Skip TestRunHarvest_PersistsDiscoveryWarnings when running as root
   (root bypasses filesystem permission checks, making the chmod(0) trick
   ineffective — fixes CLI test failures in root-based CI environments)

2. Detect golangci-lint / Go version mismatch gracefully — when the linter
   is built with an older Go than the project targets, treat it as "skipped"
   instead of "findings" (fixes false security gate blocks)

3. Fix gosec severity counting in toolchain-validate.sh — previously ALL
   findings were added to SECURITY_HIGH_COUNT regardless of severity level,
   causing MEDIUM/LOW findings to incorrectly block the security gate. Now
   properly categorizes findings by HIGH/MEDIUM/LOW.

Fixes #91, #89, #83

https://claude.ai/code/session_01YWC8ZyAyN7kZRXEpNLTN2n
2026-04-12 18:28:16 +00:00
Boden Fuller cc3259f262 fix(ci): pin golangci-lint v2 contract 2026-04-11 14:09:00 -04:00
Boden Fuller 4bfd0e0e01 fix(security): quiet fixture scanner blockers 2026-04-11 11:02:15 -04:00
Boden Fuller b3afcc2c1a fix(security-gate): resolve three persistent BLOCKED_HIGH findings
1. gosec G118 false positive: context.WithTimeout/WithCancel functions that
   return the cancel func to their caller were flagged as leaking it. Add G118
   to the gosec exclude list alongside other expected CLI tool patterns.

2. golangci-lint nolint syntax: proof-repo/main.go used "// nolint: errcheck"
   (with spaces) which golangci-lint v2 ignores. Fix to "//nolint:errcheck".

3. radon complexity: reverse_engineer_rpi.py (an AI-authored analysis script)
   has 6 E/F-grade functions counted twice (skills/ + skills-codex/ copy).
   Exclude skills-codex/ (generated copy) and */reverse_engineer_rpi.py
   (analysis script, not production code) from radon scans.
2026-02-27 10:08:08 -05:00
Boden Fuller 6f619afb44 ci: add codex-runtime-sections validation job
New CI job validates codex skills against residual marker allowlist.
Updated summary job to include new gate.
2026-02-26 11:02:23 -05:00
Boden Fuller 87ab6349a6 fix(ci): suppress semgrep IFS-tampering audit rule (low confidence/impact) 2026-02-25 13:25:45 -05:00
Boden Fuller 7c3ab6cf5f fix(ci): make security-toolchain-gate blocking and split security/quality findings
Security findings (gosec, gitleaks, semgrep, trivy, hadolint) now block CI.
Quality findings (golangci-lint, radon, ruff) are non-blocking warnings.
Also adds .golangci.yml for errcheck config and fixes staticcheck QF1012.
2026-02-24 05:57:03 -05:00
Boden Fuller d909f0b7c6 fix(ci): exclude worktrees from security scan, fix errcheck finding
- Exclude .claude/worktrees/ from toolchain-validate.sh find paths
  (was inflating findings 4x by scanning stale worktree copies)
- Fix unchecked fmt.Sscanf return in rpi_parallel.go
2026-02-24 05:44:16 -05:00
Boden Fuller 9c0fd16f3b fix: resolve 96 security toolchain findings across Go, Python, and Docker
- Go errcheck (28): handle unchecked error returns (defer close, fmt.Fprint*, test env/cleanup)
- Go staticcheck (10): De Morgan's law, Sprintf→Fprintf, TrimPrefix, tagged switch
- Go unused (28): remove dead testPhasedStateBuilder and taskDistributions
- Python ruff (12): remove unused imports/vars, fix f-strings, rename ambiguous var
- Hadolint (2): add --no-install-recommends, consolidate RUN instructions
- Toolchain: raise radon threshold C→E (align with Go budget), exclude .tmp/ from scans
2026-02-23 14:51:29 -05:00
Boden Fuller 07eca1bb6b fix: security toolchain gate — install missing tools, exclude G704
Install ruff, radon, golangci-lint, trivy, hadolint in CI so the
security-toolchain-gate job finds all 11 scanners. Add gosec G704
(SSRF via taint) to exclusion list — CLI makes HTTP requests to
configured endpoints by design.
2026-02-22 18:32:48 -05:00
Boden Fuller 1a78c745b4 prune goals 83→25, add trust-and-prove track specs
Council consensus: feature saturation reached. Removed 58 grep-for-string,
file-exists, and keyword-in-README goals. Kept only goals guarding real
mechanical invariants. Added Track 1 (RPI orchestrator stabilization) and
Track 2 (flywheel proof) evolution cycle specs.

Also includes pending security hardening, workflow fixes, and script cleanup.
2026-02-21 21:23:53 -05:00
Boden Fuller 37d4b5b2ae Merge branch 'codex/rpi-supervisor-cli' into main 2026-02-21 19:41:50 -05:00