# v5.0.0 Release Notes

## What changed

- completed the next-major public surface cleanup for HTTP and MCP by removing duplicated compatibility paths, flattening runtime routes, and keeping resources as the preferred MCP read surface
- aligned speech request submission with the `SpeakSwiftly 5.0.0` and `TextForSpeech 0.19.0` request model, including direct `source_format`, `text_profile_id`, `request_context`, `cwd`, and `repo_root` forwarding
- added HTTP and MCP request-context defaults so ordinary speech callers can omit `request_context` while TextForSpeech still receives source, app, topic, route or tool, server, and MCP client metadata
- captured MCP `clientInfo` during session initialization and folded it into speech request context, producing caller names such as `Codex via SpeakSwiftlyServer` when clients provide identity metadata
- aligned Codex plugin hook docs, doctor checks, and skill guidance with plugin-managed hooks and duplicate user-level hook repair
- added a logging-only Codex `PermissionRequest` hook probe so approval prompt payloads can be inspected before deciding whether they should become speakable TTS events

## Breaking changes

- older duplicated HTTP and MCP compatibility surfaces removed by the next-major API cleanup are not carried forward
- MCP read workflows should prefer `speak-swiftly://...` resources; tools remain for queueing speech, mutations, control operations, and clients that cannot read resources cleanly

## Migration or upgrade notes

- downstream HTTP and MCP speech callers can continue sending explicit `request_context`; caller-provided fields override server defaults
- callers no longer need to send `request_context` just to identify the HTTP or MCP surface, route, tool, server app, or MCP client identity when the MCP client provided `clientInfo`
- Codex users should prefer the installed plugin hook payload; user-level `Stop` hooks are treated as duplicate repair targets rather than the supported install path
- this release pins `SpeakSwiftly` to the upstream final `5.0.0` tag

## Verification performed

```bash
sh scripts/repo-maintenance/validate-all.sh
```

```bash
curl -X POST http://127.0.0.1:7337/models/unload
SPEAKSWIFTLYSERVER_E2E=1 xcrun swift test --filter ServerTransportE2ETests
curl -X POST http://127.0.0.1:7337/models/reload
```
