You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make `text2speach-V2` match how browser SpeechSynthesis behaves: Language is selected first, and Voice only shows voices whose `SpeechSynthesisVoice.lang` matches that language.
6
+
7
+
## Scope
8
+
9
+
Changed only `text2speach-V2` language/voice UI, control filtering, schema/default ordering, and Workspace Manager V2 Playwright coverage.
10
+
11
+
No `start_of_day` files were changed.
12
+
13
+
`docs/dev/codex_commands.md` and `docs/dev/commit_comment.txt` were updated locally as required and remain ignored so they cannot be committed.
14
+
15
+
## Implementation Summary
16
+
17
+
- Moved Language above Voice in the Speech Options form.
18
+
- Moved `language` before `voice` in the text2speach-V2 required-field/default/schema order.
19
+
- Filtered Voice options to `speechSynthesis.getVoices()` entries whose `lang` matches the selected Language.
20
+
- Added visible voice match details under Voice, including match count and voice names.
21
+
- Auto-selects the first matching voice when a language change invalidates the previous selected voice.
22
+
- Clears Voice, disables Speak, and logs a visible failure when the selected Language has no matching voices.
23
+
- Preserved the existing queue payload shape and required queue item fields.
24
+
25
+
## Tool Completion Status
26
+
27
+
Failing behavior before: Language and Voice were independent, so selecting Language did not change audible voice behavior or the Voice dropdown contents.
28
+
29
+
Tool fixed: `text2speach-V2`.
30
+
31
+
Remaining failures after targeted validation: none found in `npm run test:workspace-v2`.
32
+
33
+
## Playwright Impact
34
+
35
+
Playwright impacted: Yes.
36
+
37
+
Coverage added/updated for:
38
+
39
+
- language-first control ordering
40
+
- dynamic Voice filtering by selected Language
41
+
- auto-selection of the first matching voice when the prior Voice becomes invalid
42
+
- invalid voice reset behavior when a language has no matching voices
43
+
- visible Voice match counts/details
44
+
- delayed `voiceschanged` population respecting the selected Language filter
45
+
- existing full TTS options, schema-valid default queue, speech actions, and Workspace Manager V2 launch behavior
46
+
47
+
Expected pass behavior: Language controls the Voice list, Voice never shows non-matching voices, selection adjustments are logged, and Speak is disabled when no matching voice exists.
48
+
49
+
Expected fail behavior: tests fail if Language is not first, non-matching voices appear, an invalid selected Voice remains active, Voice match details are missing, or delayed voice population ignores the language filter.
Skipped. The full samples smoke test is intentionally out of scope because this PR is limited to text2speach-V2 language/voice filtering behavior and targeted Workspace Manager V2 coverage, not broad sample runtime behavior.
2. Confirm Language appears above Voice in Speech Options.
98
+
3. Confirm the default `en-US` language shows only matching `en-US` voices and the visible Voice details line reports match count/name details.
99
+
4. Change Language to `en-GB`; Voice should auto-select the first matching `en-GB` voice and the status log should report the adjustment.
100
+
5. Change Language to a locale with no available voices; Voice should clear, Speak should disable, and the status log should explain that no matching voice exists.
101
+
6. Change back to a language with matching voices and confirm Speak becomes available again.
102
+
103
+
Expected outcome: Voice options are always language-filtered, selection changes are visible/logged, and no non-matching or hidden fallback voice is used.
0 commit comments