# Changelog

All notable changes to the Nanorix Python SDK will be documented in this file.

## 0.2.0 — 2026-03-26

### Breaking changes

- Renamed "template" to "capsulefile" across the entire SDK (zero customers, clean cut)
- `client.templates` -> `client.capsulefiles`
- `Template` model -> `Capsulefile`
- `TemplateFile` model -> `CapsulefileFile`
- `TemplateList` model -> `CapsulefileList`
- `template_id` param -> `capsulefile_id`
- `template` param in `capsules.start()`/`capsules.run()` -> `capsulefile`
- `wait_until_ready()` -> `wait_until_finalized()` (polls for "finalized" status)
- Default status changed from "building" to "draft"
- API endpoints changed from `/v1/templates` to `/v1/capsulefiles`

## 0.1.0 — 2026-03-25

### Initial release

- Sync and async clients (`Client`, `AsyncClient`)
- Capsulefile management: create (three-step), list, get, delete, wait_until_finalized
- Capsule lifecycle: start, upload, execute, download, destroy
- One-shot processing: `client.capsules.run()` wraps full lifecycle
- Workspace mode: `LiveCapsule` object with step-by-step methods
- CDP access: `CdpAccess` with `.full()`, `.verification()`, `.verify_url`
- Typed exception hierarchy mapping HTTP status codes
- Retry with exponential backoff on 429 and 5xx
- Pydantic v2 models with forward compatibility (`extra="allow"`)
- PEP 561 type stubs (`py.typed`)
- 45 tests with respx mocks
