Skip to content

ci: restore per-version coverage, add tui-less core job, spare main from cancel - #36

Closed
CryptoJones wants to merge 1 commit into
mainfrom
fix/ci-coverage-matrix
Closed

CryptoJones wants to merge 1 commit into
mainfrom
fix/ci-coverage-matrix

Conversation

@CryptoJones

Copy link
Copy Markdown
Owner

Resolves the CI-hardening cluster.

#24 — cancel-in-progress cancelled main runs

cancel-in-progress is now ${{ github.ref != 'refs/heads/main' }}. Superseded runs are still cancelled on feature branches/PRs to save minutes, but a fast follow-up push to main no longer cancels the prior commit's test/security run — every commit that lands keeps a completed record.

#25 — audit/typecheck/lint narrowed to 3.12 only

lint, typecheck, and security are matrixed over 3.11/3.12/3.13 again. They had been collapsed to a single 3.12 job, so a CVE in (or a typing regression under) a dependency resolved only via a python_version marker on 3.11/3.13 could merge green. pip-audit and mypy now resolve and run per interpreter. gitleaks runs once (if: matrix.python-version == '3.12') since repo contents don't vary by Python.

#20 — no CI coverage of a tui-less core install

New core-install job syncs uv sync --extra dev without --extra tui — exactly what pip install perplexity-agent gives. It import-checks every core module (catching an accidental top-level textual/selectolax import) and runs the non-tui test subset (--ignore=tests/test_tui.py). Verified locally: core modules import clean, 66 non-tui tests collect, and the no-selectolax extract_text fallback satisfies the fetch tests.

Closes #20, closes #24, closes #25.

🤖 Generated with Claude Code

…rom cancel

Three CI-hardening fixes:

- Never cancel in-progress runs on the default branch (#24): cancel-in-progress
  is now `${{ github.ref != 'refs/heads/main' }}`, so a fast follow-up push to
  main can't cancel the prior commit's test/security run.

- Matrix lint/typecheck/security over 3.11/3.12/3.13 again (#25). pip-audit,
  mypy, and ruff had been narrowed to a single 3.12 job, so a CVE or typing
  regression that only surfaces under a version-marked dependency on 3.11/3.13
  could merge green. gitleaks runs once (repo contents are version-independent).

- Add a `core-install` job that syncs WITHOUT the tui extra (#20): every other
  job installs --extra tui, so an accidental top-level textual/selectolax import
  in a core module would pass CI but break `pip install perplexity-agent`. The
  job import-checks the core modules and runs the non-tui test subset.

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

Copy link
Copy Markdown
Owner Author

Superseded by #47 (re-targeted onto v0.2.0; the original was built on a now-stale pre-v0.2.0 base and conflicts).

@CryptoJones
CryptoJones deleted the fix/ci-coverage-matrix branch June 12, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant