Releases: callowayproject/pytest-agent-digest
0.3.1
0.3.0
0.2.0
Fixes
-
Fix linting errors. 711d308
-
Fix 8 code quality and latent bug issues identified in code roast. b85aa81
- Strip ANSI from skip_reason in _extract_skip_reason (bug fix)
- Deduplicate pytest_sessionfinish: shared setup, branch only on destination
- Pass verbose as int instead of bool to render_report
- Remove empty pytest_runtest_logreport module-level stub
- Use sys.executable instead of hardcoded "python" in benchmark
- Update benchmark model to claude-haiku-4-5-20251001
- Replace manual counts loop with collections.Counter
- Remove defensive len-check on skip longrepr tuple (trust the contract)
co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
New
-
Add token benchmarking script and integrate Anthropic API. 04bd2b1
- Introduce
benchmark_tokens.pyfor comparing token counts between raw pytest output and LLM reports. - Use Anthropic API for token counting to validate a core success metric: ≥20% token reduction.
- Add unit tests for benchmarking functionality, API integration, and output comparison.
- Update
uv.lockto includeanthropicdependency. - Generate and restructure documentation using
gen_doc_stubs.py. - Refactor existing files for improved organization: move docs structure to
docs/reference/api. - Add
zensical.tomlfor streamlined configuration of Markdown rendering and documentation features.
- Introduce
-
Add CLAUDE.md for development guidelines and lockfile for dependency management. 0c6725b
Other
-
Bump the github-actions group with 9 updates. 6b54c69
Bumps the github-actions group with 9 updates:
Package From To actions/checkout 46actions/download-artifact 48actions/setup-python 56astral-sh/setup-uv 57github/codeql-action 34docker/login-action 34docker/metadata-action 56docker/build-push-action 67actions/attest-build-provenance 24Updates
actions/checkoutfrom 4 to 6Updates
actions/download-artifactfrom 4 to 8Updates
actions/setup-pythonfrom 5 to 6Updates
astral-sh/setup-uvfrom 5 to 7Updates
github/codeql-actionfrom 3 to 4Updates
docker/login-actionfrom 3 to 4Updates
docker/metadata-actionfrom 5 to 6Updates
docker/build-push-actionfrom 6 to 7Updates
actions/attest-build-provenancefrom 2 to 4
updated-dependencies: - dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actionssigned-off-by: dependabot[bot] support@github.com
-
Handle missing outcome in renderer by falling back to uppercase string of the outcome. 210a2aa
-
Migrate
pytest_llm_reporttopytest_agent_digest, renaming all modules, classes, and references accordingly. Remove unfinished doc stubs and update package metadata (__init__.py) for new plugin. e2f95c8 -
Implement Ticket 7: add integration tests and skipped test handling. a776968
- Add four new integration tests to validate
--llm-reportbehavior under various scenarios: mixed outcomes order, empty sessions,tb=no, and combined term/file outputs. - Update
collector.pyto handle skipped tests during thesetupphase by capturing their results for accurate Markdown reporting.
- Add four new integration tests to validate
-
Implement Ticket 6: file output mode (--llm-report=file). 538ea3f
- Save test results to a Markdown file (default path:
test-results.md) and confirm output in stdout. - Support custom output paths via
--llm-report-fileandllm_report_fileini option. - New behavior overwrites files on subsequent runs instead of appending.
- File output mode does not suppress pytest default output.
- Add integration tests for all acceptance criteria.
- Save test results to a Markdown file (default path:
-
Implement Ticket 5: terminal output mode (--llm-report=term). 3d914df
- Unregister pytest's built-in terminalreporter when term mode is active
(uses trylast=True on pytest_configure so the reporter is already
registered before we remove it) - Render and print the Markdown report to stdout in pytest_sessionfinish
- Add integration tests: Markdown in stdout, reporter suppressed, verbose
passes section, no ANSI codes, both modes together
co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Unregister pytest's built-in terminalreporter when term mode is active
-
Implement Ticket 4: Markdown renderer. 5f22ad2
Add
pytest_llm_report/renderer.pywithrender_report()that converts a
populatedReportCollectorinto a Markdown string. The output includes a
summary line, a## Failuressection (failed + xpassed), a## Skipped
section, and an optional## Passessection (verbose mode only). Traceback
code blocks are suppressed whentb_style="no"orlongrepris absent.34 new unit tests in
tests/test_renderer.pycover all acceptance criteria:
no tests, all-passed (non-verbose + verbose), mixed outcomes,--tb=no, ANSI
round-trip, no trailing whitespace, and single blank-line separation between
sections.co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
-
Implement Ticket 3: test result collector. faf2e08
- Add collector.py with TestResult dataclass, ReportCollector class,
and strip_ansi helper covering all five outcome classifications - Wire ReportCollector into plugin via LLMReportPlugin class so
pytest_runtest_logreport has access to session-scoped state - 29 new unit tests cover all outcome paths, ANSI stripping, counts
property, and has_failures property
co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Add collector.py with TestResult dataclass, ReportCollector class,
-
Set up basic pytest plugin structure with hook implementations and tests. 98e58f3
Updates
-
Delete .github/workflows/release-container.yaml. 7a682a8
-
Remove unused container release workflow, update Anthropic and Coverage dependencies, and refine documentation build and deployment steps. 126b0f7
-
Refactor
_extract_longreprand_extract_skip_reasonto deduplicate logic for handlinglongrepr, moving shared functionality t...