v2.1.0 — Test Quality Scoring, Language-Aware Recommendations, CI/CD Improvements
What's new in v2.1.0
Test Quality Scoring (#104)
Every oracle generate run now includes a static-analysis quality score — no extra flags needed.
- Coverage breadth: test function count + negative/error path detection + parametrize bonus
- Assertion density: framework-aware assertion count per test (pytest `assert`, playwright `expect`, vitest `expect`, k6 `check`)
- Flakiness risk: deductions for hardcoded `waitForTimeout`/`sleep` calls, `random.*`, timestamp-dependent assertions
- Composite 0–100 score with letter grade A–F
- Surfaced in CLI text output, `--json`, GitHub Action PR comment table, and SARIF `properties`
Language-Aware Framework Selection (#94)
The recommender now reads project metadata (detected from `package.json`, `tsconfig.json`, `requirements.txt`) and filters framework candidates to those matching the project's languages. TypeScript/JavaScript projects route API tests to Playwright; Python projects route to pytest. Falls back to the unfiltered order if no language match is detected.
Explicit Framework Hints (#98)
Prompts can now name a framework directly — `oracle generate "write vitest tests for …"` — and the classifier honours it, bypassing the automatic recommender. Useful when you want to override the default for a specific generation.
Commit-to-PR Workflow (#96)
New `oracle-commit-test.yml` workflow: triggered manually via `workflow_dispatch`, it checks out a PR branch, re-runs Oracle, commits the generated file, and posts a follow-up comment. The PR comment now includes a "Add to your regression suite" section linking directly to this workflow.
Environment Utilities (#99)
New CLI subcommands and core modules for first-run configuration:
- `oracle env-setup` — interactive wizard
- `oracle env-setup-legacy` — non-interactive flow for scripts
- `agent/core/provider_ping.py` — no-cost API-key validation via `models.list`
- `agent/core/env_writer.py` — idempotent `.env` merge (refuses to rewrite quoted/multiline values)
Other
- #97 Spec: skills can bundle executable code via `cli:`/`entry:` fields
- #100 Runnable example prompts for all four frameworks (Playwright, pytest, Vitest, k6)
- #101 `scripts/extract_python_docstrings.py` — materialises module docstrings as harness knowledge
- #95 Action: pass extracted JSON values via temp files (fixes empty PR comment fields)
- #92/#93 Classifier: HTTP verb/path signals route to API tests; CI test-runner fix
Stats
- 437 tests passing (up from 361 at v2.0.0)
- All CI checks green: Architecture Enforcer, Security Reviewer, Harness, Docs Lint, Quality & Integrity
Upgrading
pip install --upgrade git+https://github.com/bri-stevenski/oracle-test-ai-agent@v2.1.0
# or
pipx install git+https://github.com/bri-stevenski/oracle-test-ai-agent@v2.1.0GitHub Action users: bump your pin to @v2.1.0 or move the floating @v2 tag.