# v8.0.0 Release Notes

## What Changed

- Raised the `SpeakSwiftly` dependency floor to `9.0.0`.
- Raised the `TextForSpeech` dependency floor to `0.22.0`.
- Added request-purpose defaults for HTTP and MCP speech routes.
- Defaulted live speech requests to `speech` and retained file or batch requests
  to `audioFile`.
- Passed caller-provided `prefacePolicy` through to `TextForSpeech` so clients
  can override the source/topic preface policy while request purpose stays
  route- or tool-owned.
- Updated MCP resources and tool descriptions to document route- and tool-owned
  request purpose.

## Breaking Changes

- Public HTTP and MCP clients no longer set request purpose directly. The server
  applies purpose from the HTTP route or MCP tool before forwarding the upstream
  request context.
- The shared request-context shape now follows `TextForSpeech.RequestContext`
  from `0.22.0`.

## Migration Notes

- Omit request purpose from HTTP and MCP payloads; use `/speech/live` or
  `generate_speech` for live playback and `/speech/files`, `/speech/batches`,
  `generate_audio_file`, or `generate_batch` for retained audio generation.
- Omit `prefacePolicy` to follow default behavior, set `"always"` to force the
  source/topic preface, or set `"never"` to suppress it.
- Do not send `source_format`; generation text is auto-detected and source-file
  requests can be inferred from file extensions.

## Verification

- `swift test`
- `sh scripts/repo-maintenance/validate-all.sh`
