Testing
The repository contract (seeAGENTS.md) is: the full pytest suite with
100% line and branch coverage for the Python code. The same contract
runs locally on the Runner machine and remotely on GitHub.
Local contract commands
Run them from the repository root (production interpreter/usr/bin/python3, Python 3.14):
Remote CI (GitHub Actions)
.github/workflows/ci.yml runs the same contract on every pull_request
and every push to main: one job, Python 3.14 pinned via
actions/setup-python (GitHub-hosted runners do not have the production
interpreter at the production path, so the workflow pins the same minor
version and runs the identical commands through python3 on PATH),
requirements.txt installed, then the two contract commands above. No
lint, no matrix, no cache.
The same single job also runs the Mintlify docs build smoke (Issue #116):
the official mint CLI’s mint validate (strict build validation of the
docs/ site — config, pages, links — non-zero exit on any warning or
error).
A PR is not mergeable while CI is red — the Runner’s merge gate also
requires a mergeable PR.
What the tests cover
- Behavioral tests for the runner, the CLI, slots, progress
publishing, activity streaming and the resume/review/merge logic (the
majority of the suite, including end-to-end tests against real
gitandghfixtures). - Static contract tests that pin the repository to its own docs and
files:
AGENTS.mdcontract items, the label set, the systemd units (15-minute schedule, preflight), the CI workflow, the LICENSE, and the documentation site underdocs/(this page’s claims are enforced bytests/test_docs_site.py; the Chinese pages and the EN/ZH parity bytests/test_docs_i18n.py; the Mermaid diagrams bytests/test_docs_mermaid.py).