Skip to content

Commit 083839b

Browse files
committed
PR_26171_016 Message Studio speech test and TTS service picker
1 parent 0903433 commit 083839b

11 files changed

Lines changed: 1058 additions & 2656 deletions
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
PR_26171_016-message-studio-speech-test-and-tts-service-picker manual validation notes
2+
3+
Reviewed Message Studio speech test behavior:
4+
- Speech Test accordion now includes TTS Service and TTS Profile selectors.
5+
- TTS Service is sourced from the existing TextToSpeechEngine browser path.
6+
- Test Speech is disabled before a message or segment target is selected.
7+
- Test Speech uses the selected message row text when a message row is selected.
8+
- Test Speech uses selected segment text when a segment row is selected.
9+
- Selected item readout updates between message row and segment row targets.
10+
- Browser speech synthesis unavailable state is visible and disables the service/test action.
11+
12+
Reviewed prior Text to Speech locations:
13+
- Active engine remains in src/engine/audio/TextToSpeechEngine.js.
14+
- toolbox/text-to-speech/index.html is a placeholder Voice Output page.
15+
- archive/v1-v2/tools/old_text2speech-V2 contains the older full tool implementation.
16+
- No active toolbox/tts or toolbox/text2speech-V2 folder is present.
17+
18+
No external providers, provider keys, AI voices, server audio generation, or audio persistence were manually exercised because they are out of scope.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
PR_26171_016-message-studio-speech-test-and-tts-service-picker validation report
2+
3+
Branch:
4+
PASS - Implemented on pr/26171-016-message-studio-speech-test-and-tts-service-picker.
5+
6+
Static checks:
7+
PASS - node --check toolbox/messages/message-tts-service-registry.js
8+
PASS - node --check toolbox/messages/messages.js
9+
PASS - node --check tests/playwright/tools/MessagesTool.spec.mjs
10+
PASS - node --check src/engine/audio/TextToSpeechEngine.js
11+
PASS - git diff --check
12+
13+
Targeted scans:
14+
PASS - Message Studio contains no external provider/API-key references.
15+
PASS - No new SQLite persistence was added. Existing SQLite references are limited to the pre-existing Messages Playwright harness/dev adapter path.
16+
17+
Targeted Playwright:
18+
PASS - npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --workers=1 --reporter=list
19+
Validated:
20+
- TTS service selector renders existing Browser Speech Synthesis service.
21+
- Test Speech button is disabled before required selections exist.
22+
- Message row speech test calls the existing browser-safe TextToSpeechEngine path.
23+
- Segment row speech test calls the existing browser-safe TextToSpeechEngine path.
24+
- No old Preview Message, Preview Segments, or Stop Preview controls are present.
25+
26+
Requested workspace lane:
27+
FAIL - npm run test:workspace-v2
28+
Failure scope:
29+
- RootToolsFutureState.spec.mjs existing root/tool/navigation/API failures outside Message Studio.
30+
31+
Samples:
32+
SKIPPED - Full samples smoke was out of scope.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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.
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
docs_build/dev/PROJECT_INSTRUCTIONS.md
2-
docs_build/dev/reports/codex_review.diff
1+
docs_build/dev/reports/codex_review.diff
32
docs_build/dev/reports/coverage_changed_js_guardrail.txt
43
docs_build/dev/reports/playwright_v8_coverage_report.txt
5-
docs_build/dev/reports/PR_26171_014-message-studio-table-governance.md
6-
docs_build/dev/reports/PR_26171_014-message-studio-table-governance-manual-validation.txt
7-
docs_build/dev/reports/PR_26171_014-message-studio-table-governance-validation.txt
8-
src/dev-runtime/messages/messages-sqlite-service.mjs
4+
docs_build/dev/reports/PR_26171_016-message-studio-speech-test-and-tts-service-picker.md
5+
docs_build/dev/reports/PR_26171_016-message-studio-speech-test-and-tts-service-picker-manual-validation.txt
6+
docs_build/dev/reports/PR_26171_016-message-studio-speech-test-and-tts-service-picker-validation.txt
97
tests/playwright/tools/MessagesTool.spec.mjs
108
toolbox/messages/index.html
119
toolbox/messages/messages.js
12-
toolbox/messages/messages-api-client.js
10+
toolbox/messages/message-tts-service-registry.js

0 commit comments

Comments
 (0)