Skip to main content

Verification

Use this page before publishing changes.

Python Core​

Style, lint, and type-check the Python surface:

shell
python -m pip install -r requirements-dev.txt
ruff format --check .
ruff check .
ty check --extra-search-path core
python -m pip check
python -m build core

Ty is currently scoped to the core runtime and the CLI compatibility shim in the repo-level pyproject.toml.

GitHub Actions runs these Python quality checks on every push and pull request through .github/workflows/python-quality.yml.

Run the provider-free Python integration tests (the SSE mesh test needs localhost binding):

shell
PYTHONPATH=core .venv/bin/python -m unittest discover core/tests

Targeted tests:

shell
PYTHONPATH=core .venv/bin/python -m unittest discover -s core/tests -p test_native_runtime.py
PYTHONPATH=core .venv/bin/python -m unittest discover -s core/tests -p test_checkpoints.py
PYTHONPATH=core .venv/bin/python -m unittest discover -s core/tests -p test_verification.py
PYTHONPATH=core .venv/bin/python -m unittest core.tests.test_runtime_integration
PYTHONPATH=core .venv/bin/python -m unittest core.tests.test_history_integration
PYTHONPATH=core .venv/bin/python -m unittest core.tests.test_llm_context
PYTHONPATH=core .venv/bin/python -m unittest core.tests.test_help_agent
PYTHONPATH=core .venv/bin/python -m unittest core.tests.test_quality_eval
PYTHONPATH=core .venv/bin/python -m unittest core.tests.test_scout
PYTHONPATH=core .venv/bin/python -m unittest core.tests.test_context_indexer
PYTHONPATH=core .venv/bin/python -m unittest core.tests.test_versioning

Rust CLI​

shell
cargo fmt --manifest-path cli/Cargo.toml -- --check
cargo clippy --locked --manifest-path cli/Cargo.toml --all-targets -- -D warnings
cargo test --locked --manifest-path cli/Cargo.toml
cargo check --locked --manifest-path cli/Cargo.toml
cargo build --release --locked --manifest-path cli/Cargo.toml
cargo build --locked --manifest-path cli/Cargo.toml
PROTOAGENT_TEST_CLI="$PWD/cli/target/debug/proto-cli" .venv/bin/python cli/tests/tui_smoke.py

If formatting or Clippy are missing from a local Rust toolchain, install them with:

shell
rustup component add rustfmt clippy

Runtime diagnostics:

shell
cargo run --locked --manifest-path cli/Cargo.toml -- check

Component version inventory:

shell
cargo run --locked --manifest-path cli/Cargo.toml -- version

No-model smoke test:

shell
PROTOAGENT_SCAFFOLD=1 cargo run --locked --manifest-path cli/Cargo.toml -- run "show diagnostics"

Prompt-profile eval smoke:

shell
cargo run --locked --manifest-path cli/Cargo.toml -- eval profiles --limit 3

Use --live only when a model is configured. Routing evals (eval profiles) auto-deny writes; coding evals (eval coding) use disposable fixtures and narrowly approve fixture edits and their exact test command. They execute on the host.

shell
cargo run --locked --manifest-path cli/Cargo.toml -- eval coding --plan --json

Docusaurus Docs​

shell
cd docs
npm ci
npm run build

Local preview:

shell
npm run start

The generated build output is ignored at docs/build/.

End-To-End Debug Artifact​

For shareable failing-run evidence:

shell
PROTOAGENT_TRACE=1 cargo run --locked --manifest-path cli/Cargo.toml -- run "your failing task" 2>&1 | tee /tmp/protoagent-debug.txt
tail -n 80 "${PROTOAGENT_CONFIG_DIR:-$HOME/.protoagent}/traces.jsonl"

Attach both /tmp/protoagent-debug.txt and the trace tail if available.