Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions AUDIT.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,3 +224,18 @@ Widened the `@cycles` decorator to accept callables — in addition to constants
- **Signature change:** `_build_reservation_body` now takes `args` and `kwargs` parameters; both `CyclesLifecycle.execute` and `AsyncCyclesLifecycle.execute` thread them through.

Protocol conformance: No protocol or wire-format changes. The reservation request body shape is unchanged — only the source of each field's value is widened. Verified by new unit tests in `TestCallableSubjectFields`, `TestCallableActionFields`, `TestCallableDimensions` plus an end-to-end decorator test asserting the captured request body.

## PyPI Metadata Refresh (added 2026-05-08)

**Files:** `pyproject.toml`
**Version:** 0.4.1

Metadata-only release retargeting the package for category-search discovery on PyPI. No code, no test, no protocol changes — wire format and API are identical to 0.4.0.

- **Description rewritten** to 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."`
- **Keywords expanded 12 → 21**, organized into category-search terms (`ai-agent`, `agent-budget`, `budget-control`, `cost-control`, `cost-enforcement`, `spending-limit`, `llm-cost`, `runtime-authority`, `action-control`, `multi-tenant`), framework targeting (`langchain`, `langgraph`, `crewai`, `autogen`, `openai-agents`, `mcp`, `openai`, `anthropic`), and brand (`cycles`, `runcycles`).
- **Classifier added:** `Topic :: Scientific/Engineering :: Artificial Intelligence`.

Driven by Python-side adoption diagnostic finding the biggest sub-gap was discovery, not SDK feature parity. Companion changes: GitHub topics on this repo (`governance` dropped, `mcp` added) and Python framework integration guide retitling on `runcycles/docs` (PR #568).

Protocol conformance: No protocol or wire-format changes. Existing test suite at 100% coverage; no test additions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [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.

### Changed

- `pyproject.toml`: rewrote `description` to 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"). Expanded `keywords` from 12 to 21, organized into category-search terms, framework targeting (`langgraph`, `crewai`, `autogen`, `openai-agents`, `mcp`, etc.), and brand. Added `Topic :: Scientific/Engineering :: Artificial Intelligence` classifier for PyPI browse-by-category surfacing.

## [0.4.0] - 2026-04-27

Dynamic subject and action fields on the `@cycles` decorator.
Expand Down Expand Up @@ -120,6 +128,7 @@ Initial public release.

- Comprehensive error handling and improved API model validation (#1)

[0.4.1]: https://github.com/runcycles/cycles-client-python/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/runcycles/cycles-client-python/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/runcycles/cycles-client-python/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/runcycles/cycles-client-python/compare/v0.1.3...v0.2.0
Expand Down
33 changes: 23 additions & 10 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,35 @@ build-backend = "hatchling.build"

[project]
name = "runcycles"
version = "0.4.0"
description = "Python client for the Cycles budget-management protocol"
version = "0.4.1"
description = "Python AI agent budget control — enforce LLM cost limits, tool permissions, and multi-tenant policies before agent actions execute."
readme = "README.md"
license = "Apache-2.0"
requires-python = ">=3.10"
keywords = [
"cycles",
"budget",
# Category-search keywords (lead with these — what people actually type)
"ai-agent",
"agent-budget",
"agent-governance",
"budget-control",
"cost-control",
"metering",
"ai",
"llm",
"agents",
"governance",
"cost-enforcement",
"spending-limit",
"llm-cost",
"runtime-authority",
"action-control",
"multi-tenant",
# Framework-specific (the integrations we want to surface for)
"langchain",
"langgraph",
"crewai",
"autogen",
"openai-agents",
"mcp",
"openai",
"anthropic",
"langchain",
# Brand
"cycles",
"runcycles",
]
classifiers = [
Expand All @@ -32,6 +44,7 @@ classifiers = [
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Framework :: AsyncIO",
"Typing :: Typed",
]
Expand Down
Loading