|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project are documented here. |
| 4 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 5 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 6 | + |
| 7 | +## [1.2.0] - 2026-06-23 |
| 8 | + |
| 9 | +### Fixed |
| 10 | +- **Text-to-speech was completely broken.** `synthesize_speech` POSTed to the non-existent |
| 11 | + `/speech:synthesize`; the correct SaluteSpeech endpoint is `/text:synthesize`. Every TTS |
| 12 | + call previously failed. |
| 13 | +- **Recognition MIME types were wrong** for several formats. SaluteSpeech has no `audio/wav` |
| 14 | + content-type — WAV is now sent as `audio/x-pcm;bit=16;rate=<sr>` with the sample rate read |
| 15 | + from the file header. `.flac` now uses `audio/flac` (was `audio/x-flac`), and `.pcm` now |
| 16 | + requires a `sample_rate` and emits `audio/x-pcm;bit=16;rate=<sr>`. `.mp3`, `.ogg`, and |
| 17 | + `.opus` were already correct and are unchanged. |
| 18 | + |
| 19 | +### Added |
| 20 | +- Configurable OAuth scope via `SALUTE_SPEECH_SCOPE` (default `SALUTE_SPEECH_PERS`), so |
| 21 | + corporate accounts (`SALUTE_SPEECH_CORP`, `SALUTE_SPEECH_B2B`) can authenticate. |
| 22 | +- `list_models` now reports the English voice **Kira** (`Kin_24000`/`Kin_8000`), the 8000 Hz |
| 23 | + telephony variants of every voice, the `alaw` synthesis format, and a note that the sample |
| 24 | + rate comes from the voice id suffix and other languages are selected via SSML. |
| 25 | +- Friendly size guard: recognition input over the 2 MB / 1 minute synchronous limit now |
| 26 | + fails with an actionable message pointing to the async flow (instead of a raw HTTP 413). |
| 27 | +- TLS troubleshooting: a clear OAuth error hint and a README section about installing the |
| 28 | + Russian Trusted Root CA (НУЦ Минцифры) via `NODE_EXTRA_CA_CERTS`. |
| 29 | +- All tool handlers now return `isError` on failure, so the model sees readable errors |
| 30 | + instead of opaque protocol errors. |
| 31 | +- `.alaw`/`.ulaw` recognition input mapping (`audio/pcma`/`audio/pcmu`). |
| 32 | +- New tests: WAV header parsing, size guard, recognition output shaping, exported |
| 33 | + `getAuthKey` priority, TLS-hint wrapping, and client retry behavior (429/500/abort). |
| 34 | + Handler tests assert request URL + content-type, locking in the endpoint and MIME fixes. |
| 35 | + |
| 36 | +### Changed |
| 37 | +- Recognition tools now return a flattened `text` transcript alongside `emotions` and the |
| 38 | + raw API body (the transcript lives in `result[]`). |
| 39 | +- Synthesis input is validated to 1–4000 characters (the documented limit). |
| 40 | +- `.mcp.json` example uses `SALUTESPEECH_API_KEY` to match the README. |
| 41 | +- Removed unused type interfaces (`RecognitionResult`, `SynthesisResponse`, `SaluteModel`). |
| 42 | + |
| 43 | +## [1.1.0] |
| 44 | + |
| 45 | +- Upgrade to 5 tools, Vitest test suite, and Streamable HTTP transport. |
| 46 | + |
| 47 | +## [1.0.0] |
| 48 | + |
| 49 | +- Initial release. |
0 commit comments