|
| 1 | +# PR_26171_016-message-studio-speech-test-and-tts-service-picker |
| 2 | + |
| 3 | +## Branch Validation |
| 4 | + |
| 5 | +PASS - Work was implemented on `pr/26171-016-message-studio-speech-test-and-tts-service-picker` after starting from `main`. |
| 6 | + |
| 7 | +## Summary |
| 8 | + |
| 9 | +Message Studio now exposes a TTS Service picker and guarded Test Speech action. The picker is sourced from the existing browser-safe `TextToSpeechEngine` path, and speech tests run only through browser `SpeechSynthesis` when that engine is available. No external provider calls, API keys, AI voice generation, audio generation, or new database persistence were added. |
| 10 | + |
| 11 | +## Prior Text To Speech Search |
| 12 | + |
| 13 | +- PASS - `src/engine/audio/TextToSpeechEngine.js` exists and still provides the browser-safe speech engine path. |
| 14 | +- PASS - `src/engine/audio/TextToSpeechDefaults.js` exists and still defines Text to Speech V2 defaults. |
| 15 | +- PASS - `toolbox/text-to-speech/index.html` exists as a public Voice Output placeholder/wireframe. |
| 16 | +- PASS - `toolbox/tts/` does not exist. |
| 17 | +- PASS - Active `toolbox/text2speech-V2/` is not present. |
| 18 | +- PASS - The older full Text to Speech V2 implementation is archived under `archive/v1-v2/tools/old_text2speech-V2/`. |
| 19 | +- PASS - Shared Text to Speech contracts/schemas still exist under `src/shared/contracts/tools/textToSpeechContract.js` and `src/shared/schemas/tools/text2speech-V2.schema.json`. |
| 20 | + |
| 21 | +## Requirement Checklist |
| 22 | + |
| 23 | +- PASS - Searched the requested TTS locations and broader speech/TTS references. |
| 24 | +- PASS - Added a TTS Service dropdown to Message Studio. |
| 25 | +- PASS - Service options come from `TextToSpeechEngine` through `toolbox/messages/message-tts-service-registry.js`. |
| 26 | +- PASS - Added unavailable/disabled service state when browser speech synthesis is unavailable. |
| 27 | +- PASS - Added a Test Speech button for the selected Message Row or selected Segment Row. |
| 28 | +- PASS - Button remains disabled until a service, message or segment, emotion profile, active TTS profile, and voice are available. |
| 29 | +- PASS - Test Speech uses browser-local speech only through the existing engine. |
| 30 | +- PASS - No external provider calls, AI voice generation, API keys, or generated audio were introduced. |
| 31 | +- PASS - No new SQLite persistence, SQLite DDL, SQLite seed data, or SQLite service was introduced. |
| 32 | +- PASS - Existing SQLite references remain test/dev technical debt only; the report documents Postgres as authoritative direction. |
| 33 | + |
| 34 | +## Impacted Lane |
| 35 | + |
| 36 | +Message Studio Theme V2 tool, existing browser-safe TTS engine integration, and targeted Message Studio Playwright coverage. |
| 37 | + |
| 38 | +## Validation Summary |
| 39 | + |
| 40 | +- PASS - `node --check toolbox/messages/message-tts-service-registry.js` |
| 41 | +- PASS - `node --check toolbox/messages/messages.js` |
| 42 | +- PASS - `node --check tests/playwright/tools/MessagesTool.spec.mjs` |
| 43 | +- PASS - `node --check src/engine/audio/TextToSpeechEngine.js` |
| 44 | +- PASS - `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --workers=1 --reporter=list` |
| 45 | +- PASS - External provider/API-key scan returned no Message Studio matches. |
| 46 | +- PASS - `git diff --check` |
| 47 | +- FAIL - `npm run test:workspace-v2` failed in existing `RootToolsFutureState.spec.mjs` coverage outside this PR scope. |
| 48 | + |
| 49 | +## Workspace V2 Failure Details |
| 50 | + |
| 51 | +The required `npm run test:workspace-v2` command failed with five failures: |
| 52 | + |
| 53 | +- `root tools surface links current tool pages without old_* routes`: expected toolbox accordion cards, received zero. |
| 54 | +- `common header renders primary navigation order across active pages`: existing Game Journey/Game Hub alphabetical expectation mismatch. |
| 55 | +- `learn wireframe pages load with shared Theme V2 structure`: unrelated failed requests for `/api/session/current` and `/api/platform-settings/banner`. |
| 56 | +- `tool template future-state page loads from root Theme V2 paths`: unrelated failed requests for `/api/session/current`, `/api/toolbox/registry/snapshot`, and `/api/platform-settings/banner`. |
| 57 | +- `representative active tool pages align center cleanup and registry group colors`: unrelated failed requests for toolbox constants, registry snapshot, session, and banner endpoints. |
| 58 | + |
| 59 | +These failures were not introduced by the Message Studio speech test picker changes and were not fixed because they are outside this PR scope. |
| 60 | + |
| 61 | +## Database Direction |
| 62 | + |
| 63 | +Postgres remains authoritative. This PR did not add SQLite persistence or new SQLite runtime behavior. The existing Message Studio Playwright harness still uses the legacy dev SQLite adapter and is documented as technical debt only. |
| 64 | + |
| 65 | +## Samples Decision |
| 66 | + |
| 67 | +SKIPPED - Full samples validation was not run because samples are outside the Message Studio speech test and TTS service picker scope. |
0 commit comments