All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog 1.1.0, and this project adheres to Semantic Versioning.
0.4.1 - 2026-05-08
PyPI metadata refresh for category-search discovery. No code changes; package wire format and API are identical to 0.4.0.
pyproject.toml: rewrotedescriptionto lead with the literal category-search phrase ("Python AI agent budget control — enforce LLM cost limits, tool permissions, and multi-tenant policies before agent actions execute"). Expandedkeywordsfrom 12 to 21, organized into category-search terms, framework targeting (langgraph,crewai,autogen,openai-agents,mcp, etc.), and brand. AddedTopic :: Scientific/Engineering :: Artificial Intelligenceclassifier for PyPI browse-by-category surfacing.
0.4.0 - 2026-04-27
Dynamic subject and action fields on the @cycles decorator.
- Subject fields (
tenant,workspace,app,workflow,agent,toolset), action fields (action_kind,action_name,action_tags), anddimensionsnow accept callables in addition to constants. Callables are invoked with the decorated function's*args, **kwargsat reservation time, enabling per-call budget routing and dynamic action labeling. Mirrors the Java client's SpEL behavior. (#45)
_build_reservation_bodysignature widened to threadargs/kwargsthrough to the new_resolve_valuehelper. Internal API only; no protocol or wire-format changes.
0.3.0 - 2026-04-08
Add streaming support.
- Claude settings and git workflow guidelines (#22)
CLAUDE.md,settings.json, and SessionStart hook (#24)- Coverage badge reflecting actual coverage (#32)
- Project URLs for PyPI sidebar links (#34)
- Real integration tests for nightly pipeline (#36)
StreamReservationcontext manager for streaming DX (#39)
- Standardize
CLAUDE.mdandsettings.json: fix typo, add schema, add gitignore entries (#23) - Refactor CI workflow to use shared workflow from
.githubrepository (#25) - Analyze codebase metrics (#26)
- Improve package metadata and discoverability (#33)
- Bump
actions/upload-artifactfrom 4 to 7 (#31) - Bump
actions/checkoutfrom 4 to 6 (#30) - Bump
actions/setup-pythonfrom 5 to 6 (#29) - Bump
actions/download-artifactfrom 4 to 8 (#28)
- Contract test UTF-8 encoding for Windows compatibility (#27)
- API response codes and parameter names in integration tests (#37)
- Guard
requestsimport so CI collection doesn't fail (#38)
0.2.0 - 2026-03-24
Bug fixes, support for 0.1.24 spec, more tests.
- Comprehensive integration examples for Cycles Python client (#9)
- API key creation instructions to README (#13)
- Badges to README for PyPI, CI, and License (#15)
- Documentation links to README (#16)
- Documentation for nested
@cyclesdecorator behavior and best practices (#17) - Budget state and extension error codes, charged amount to response (#20)
- Raise test coverage threshold from unconfigured to 95% (#10)
- Move coverage config to
[tool.coverage]so pytest works without pytest-cov (#12) - Analyze spring issue (#18)
- Default overage policy from
REJECTtoALLOW_IF_AVAILABLE(#19) - Bump version to 0.2.0 for protocol v0.1.24 (#21)
- Redundant
--cov-fail-under=85from CI workflow (#11)
- Broken docs URLs and add API key comment to examples (#14)
0.1.3 - 2026-03-15
Minor updates, bug fixes, test coverage.
- Comprehensive audit report and code quality improvements (#7)
- Enforce 85% pytest coverage threshold in CI (#8)
- Review Python cycles client (#5)
- Close all coverage gaps, achieve 100% coverage (#6)
0.1.2 - 2026-03-13
Cleanup, bug fixes, spec alignment, test coverage.
- Comprehensive test coverage and input validation (#2)
- Validate Python client (#4)
- Enforce spec-required fields and fix estimate validation (#3)
0.1.1 - 2026-03-12
- Minor doc updates.
0.1.0 - 2026-03-12
Initial public release.
- Comprehensive error handling and improved API model validation (#1)