# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.0] — 2026-04-29

### Added
- OAuth (PKCE) login against `claude.ai` for Claude Pro / Max subscriptions,
  including automatic token refresh and persistent storage at
  `~/.config/dispatch/claude_oauth.json` (mode 0600).
- Streaming and non-streaming chat against `/v1/messages`, including the full
  Claude Code header-cloaking set required by the Pro / Max entitlement.
- Tool use with automatic `proxy_` name prefixing / stripping (OAuth mode)
  and built-in tool passthrough (`web_search`, `code_execution`, `text_editor`,
  `computer`).
- Extended thinking: `enabled` mode for Sonnet/Opus 4.5, `adaptive` mode
  with `display: "summarized"` for Opus 4.7+ and Sonnet 4.6+.
- Prompt caching with `cache_control` breakpoint placement (up to 4 per
  request), automatic TTL ordering enforcement, and per-request
  `cache_retention: :short | :long | :none` control.
- `usage_report` against `/api/oauth/usage` returning a `UsageReport` with
  four `UsageLimitEntry` rows (5h, 7d, 7d-opus, 7d-sonnet) plus profile
  metadata from `/api/oauth/profile`.
- Per-request usage cost computed from a bundled price table
  (`Usage#cost` as a `UsageCost` struct).
- `list_models` with bundled pricing data and a runtime overlay from
  `GET /v1/models`.
- `count_tokens` via `POST /v1/messages/count_tokens`.
- `RateLimiter` integration with configurable `min_request_interval` and
  optional rolling-window quota.
- Strict-tool schema fallback: automatic retry without `strict: true` on
  Anthropic 400 "compiled grammar too large" / "schema too complex" errors.
- Streaming retry logic: up to 3 exponential-backoff retries for transient
  failures that occur before any consumer output has been emitted.
- `authenticate!`, `authenticated?`, `logout!` auth lifecycle hooks.
- `Dispatch::Adapter::Tester::Playbooks::Claude` smoke playbook in
  `dispatch-adapter-tester` for recorded (CI) and live testing.

[Unreleased]: https://github.com/realtradam/dispatch-adapter-claude/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/realtradam/dispatch-adapter-claude/releases/tag/v0.1.0
