From 244f5be616c6db5c914d9162f267fb328aeea726 Mon Sep 17 00:00:00 2001 From: Beon de Nood Date: Mon, 16 Mar 2026 15:26:10 -0400 Subject: [PATCH] chore: bump version to 2.5.0 and update changelog --- CHANGELOG.md | 32 +++++++++++++++++++------------- capiscio_sdk/__init__.py | 2 +- capiscio_sdk/_rpc/process.py | 2 +- pyproject.toml | 2 +- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b55334..e27bdf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,23 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.5.0] - 2026-03-16 + ### Added -- **Automatic Binary Download**: SDK now automatically downloads capiscio-core binary if not found - - Downloads from GitHub releases (defaults to v2.4.0) +- **Warmup CLI**: Binary pre-caching command for faster cold starts (#43) +- **Windows TCP Fallback**: Embedded gRPC server uses TCP on Windows where Unix sockets are unavailable (#39) +- **Automatic Binary Download**: SDK downloads capiscio-core binary if not found (#32) - Platform detection for macOS (arm64/x86_64), Linux (arm64/x86_64), and Windows - - Binary caching in `~/.capiscio/bin/` directory - - Automatic executable permissions for Unix-like systems - - Fallback search order: `CAPISCIO_BINARY` env var → local development path → system PATH → cached binary → auto-download -- **Middleware Auto-Events**: `CapiscioMiddleware` now supports automatic event emission - - Opt-in via `emitter` parameter — pass an `EventEmitter` to enable - - Emits `request.received`, `verification.success`/`verification.failed`, and `request.completed` events - - Standardized fields: `method`, `path`, `caller_did`, `duration_ms`, `status_code` - - Safe by design: emitter errors never break request handling - - Excluded paths emit no events - - New event type constants: `EVENT_REQUEST_RECEIVED`, `EVENT_REQUEST_COMPLETED`, `EVENT_REQUEST_FAILED`, `EVENT_VERIFICATION_SUCCESS`, `EVENT_VERIFICATION_FAILED` + - Binary caching in `~/.capiscio/bin/` + - Fallback search order: `CAPISCIO_BINARY` env var → local path → system PATH → cached → auto-download +- **Middleware Auto-Events**: `CapiscioMiddleware` supports automatic event emission via `emitter` parameter (#33) +- **Environment Variable Key Injection**: Support for ephemeral environments via env vars (#35) + +### Fixed +- **Dev Mode Identity Persistence**: Persist and recover `did:key` identity across restarts (#44) +- Wire `BadgeKeeper.on_renew` to `SimpleGuard.set_badge_token` for automatic badge refresh (#42) +- Eliminate agent card JSON dependency from `connect`, `simple_guard`, and FastAPI integration (#37) +- Improve binary install experience with better error messages (#38) +- Improve identity recovery and directory structure (#31) +- Make config keyword-only for backward compatibility (#30) +- Create agent when name specified but not found in `connect()` (#29) ### Changed -- **Improved Process Management**: Enhanced error logging and binary discovery +- Enhanced error logging and binary discovery ## [2.4.1] - 2026-02-08 diff --git a/capiscio_sdk/__init__.py b/capiscio_sdk/__init__.py index 93b6709..afaf959 100644 --- a/capiscio_sdk/__init__.py +++ b/capiscio_sdk/__init__.py @@ -14,7 +14,7 @@ >>> result = validate_agent_card(card_dict) # Uses Go core """ -__version__ = "2.4.1" +__version__ = "2.5.0" # Core exports from .executor import CapiscioSecurityExecutor, secure, secure_agent diff --git a/capiscio_sdk/_rpc/process.py b/capiscio_sdk/_rpc/process.py index 9877a88..abfeb99 100644 --- a/capiscio_sdk/_rpc/process.py +++ b/capiscio_sdk/_rpc/process.py @@ -22,7 +22,7 @@ DEFAULT_SOCKET_PATH = DEFAULT_SOCKET_DIR / "rpc.sock" # Binary download configuration -CORE_VERSION = "2.4.0" +CORE_VERSION = "2.5.0" GITHUB_REPO = "capiscio/capiscio-core" CACHE_DIR = DEFAULT_SOCKET_DIR / "bin" diff --git a/pyproject.toml b/pyproject.toml index a0df8df..0dbd896 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "capiscio-sdk" -version = "2.4.1" +version = "2.5.0" description = "Runtime security middleware for A2A agents" readme = "README.md" requires-python = ">=3.10"