-
Add warning support to ReportCollector and renderer. a0ebb0c
-
Add
id-token: writepermission to publish-docs workflow. 65619e1
-
Bump the github-actions group across 1 directory with 3 updates. 03d52c6
Bumps the github-actions group with 3 updates in the / directory: actions/upload-pages-artifact, actions/deploy-pages and softprops/action-gh-release.
Updates
actions/upload-pages-artifactfrom 4 to 5Updates
actions/deploy-pagesfrom 4 to 5Updates
softprops/action-gh-releasefrom 2 to 3
updated-dependencies: - dependency-name: actions/upload-pages-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions
signed-off-by: dependabot[bot] support@github.com
-
[pre-commit.ci] pre-commit autoupdate. 53a5eee
updates: - github.com/astral-sh/ruff-pre-commit: v0.15.6 → v0.15.12
-
Replace type union syntax with
Optionalfor Python 3.9 compatibility. f69ee72 -
Include warning phase in rendered output and fix verbose docstring. 1bd2275
Each warning entry in ## Warnings now shows its phase prefix (e.g. [runtest], [collect], [config]) so AI agents can distinguish test-phase warnings from configuration-phase warnings. Also corrects the render_report docstring to describe verbose as an int verbosity level rather than a bool.
co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
- Update dependencies. faccdd2
- Fix Lower Python version requirement to 3.9 in pyproject.toml. dc9e97b
- Expand Python version matrix to include 3.9 and 3.10, update project status to Beta, and adjust supported Python classifiers. 4214619
-
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
-
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
-
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-actions
signed-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
-
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## Skippedsection, 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
-
Set up basic pytest plugin structure with hook implementations and tests. 98e58f3
-
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 to_longrepr_reason. Remove unusedpytest_sessionfinishexport. 6abf199 -
Refactor
render_reportto avoid reusing generic variable names for section lines (e.g.,lines), improving clarity and maintainability. 2af8595 -
Refactor
pytest_sessionfinishto integrate directly intoAgentDigestPlugin, removing redundant module-level hook implementation. Update related unit tests accordingly. d258540 -
Update charset-normalizer to version 3.4.6 in dependency lockfile. c52384e
- Initial commit. 8f45839