|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## v0.1.0 (2026-03-07) |
| 3 | +## v0.3.0 — Initial AgentWrit Public Release (2026-04-14) |
4 | 4 |
|
5 | | -Initial release of the AgentWrit Python SDK. |
| 5 | +First public release of the AgentWrit Python SDK. Complete rewrite from the internal v0.1.0/v0.2.0 codebase. |
6 | 6 |
|
7 | | -### Features |
| 7 | +### Core API |
8 | 8 |
|
9 | | -- **AgentWritApp** -- main entry point with app authentication on init |
10 | | -- **get_token()** -- full 8-step credential flow (app auth, launch token, Ed25519 challenge-response, caching) |
11 | | -- **delegate()** -- scope-attenuated delegation to another registered agent (C7 Delegation Chain) |
12 | | -- **revoke_token()** -- self-revocation for credential cleanup (C4 Expiration & Revocation) |
13 | | -- **validate_token()** -- online token validation against the broker (C3 Zero-Trust) |
14 | | -- **Token caching** -- by (agent_name, scope) key, proactive renewal at 80% TTL, thread-safe |
15 | | -- **Retry with backoff** -- exponential backoff on 5xx/connection errors, Retry-After on 429 |
16 | | -- **Error hierarchy** -- AgentWritError, AuthenticationError, ScopeCeilingError, RateLimitError, BrokerUnavailableError, TokenExpiredError |
17 | | -- **Type safety** -- mypy strict mode, no Any in source, TypedDict for all broker responses |
18 | | -- **Security** -- ephemeral Ed25519 keys (never on disk), client_secret never in output, TLS verified by default, thread-safe app token state |
| 9 | +- **AgentWritApp** — main entry point; authenticates with the broker on first use (lazy auth) |
| 10 | +- **create_agent()** — registers an agent with Ed25519 challenge-response, returns an `Agent` object |
| 11 | +- **Agent** — lifecycle management: `renew()`, `release()`, `delegate()` |
| 12 | +- **validate()** — module-level online token validation against the broker |
| 13 | +- **scope_is_subset()** — module-level scope comparison utility |
19 | 14 |
|
20 | | -### Testing |
| 15 | +### Models |
| 16 | + |
| 17 | +- `AgentClaims`, `ValidateResult`, `RegisterResult`, `HealthStatus`, `DelegatedToken`, `ProblemDetail` — typed dataclasses for all broker responses |
| 18 | + |
| 19 | +### Error Handling |
21 | 20 |
|
22 | | -- 122 unit tests (no broker required) |
23 | | -- 16 integration tests (live broker) |
24 | | -- 7 live acceptance test scripts (SDK-S1 through SDK-S8) |
25 | | -- Security review: all HIGH/MEDIUM findings resolved |
| 21 | +- `AgentWritError` base exception with RFC 7807 `ProblemDetail` support |
| 22 | +- Typed hierarchy: `AuthenticationError`, `AuthorizationError`, `RateLimitError`, `ProblemResponseError`, `TransportError` |
26 | 23 |
|
27 | | -### Demo |
| 24 | +### Transport |
| 25 | + |
| 26 | +- `httpx`-based HTTP transport with automatic error dispatch |
| 27 | +- User-Agent: `agentwrit-python/0.3.0` |
| 28 | + |
| 29 | +### Testing |
28 | 30 |
|
29 | | -- Interactive demo app (FastAPI + HTMX) with pattern/NIST annotations |
30 | | -- 6 scenarios: Read Data, Write, Scope Violation, Delegation, Full Lifecycle, Blast Radius |
| 31 | +- 99 unit tests (no broker required) |
| 32 | +- 15 acceptance stories against live broker |
| 33 | +- Integration test suite with session-scoped fixtures |
31 | 34 |
|
32 | | -### Documentation |
| 35 | +### Demos |
33 | 36 |
|
34 | | -- README with full API, security properties, and pattern component mapping |
35 | | -- API reference (docs/api-reference.md) |
36 | | -- Getting started guide (docs/getting-started.md) |
37 | | -- Pattern component annotations in all module docstrings |
| 37 | +- MedAssist AI (FastAPI + HTMX) — multi-agent medical encounter pipeline |
| 38 | +- Support Tickets (Flask + HTMX + SSE) — triage/knowledge/response agent pipeline |
0 commit comments