Skip to content

Commit b31b319

Browse files
authored
PR_26171_069 message TTS profile contract alignment
Align Message Studio and TTS Studio around parent/child profile contracts.
1 parent 43f3ead commit b31b319

17 files changed

Lines changed: 279 additions & 256 deletions
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# PR_26171_069 Manual Validation Notes
2+
3+
- Confirmed Message Studio center work surface now presents the Messages parent table without detached Emotion Profile or Available TTS Profile tables.
4+
- Confirmed Message Parts remain directly under the expanded Message row.
5+
- Confirmed Message Studio exposes Play Message, Play Part, and Stop.
6+
- Confirmed TTS Studio default profiles render the expected parent/child TTS Profiles to Emotion Settings model.
7+
- Confirmed the scoped ZIP must be generated under `tmp/` and not staged.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# PR_26171_069 Message/TTS Ownership Checklist
2+
3+
- PASS: Message Studio owns text entered for Messages.
4+
- PASS: Message Studio owns ordered Message Parts.
5+
- PASS: Message Studio does not expose reusable Emotion Profile authoring.
6+
- PASS: Message Studio does not expose reusable TTS Profile authoring.
7+
- PASS: TTS Studio owns reusable TTS Profiles.
8+
- PASS: TTS Studio owns per-profile Emotion Settings.
9+
- PASS: `src/engine/audio/TextToSpeechEngine.js` remains the playback owner.
10+
- PASS: Message playback and Stop are routed through the Message Studio TTS service registry.
11+
- PASS: Audio output remains generated/played by the shared audio engine path.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# PR_26171_069 Message/TTS Profile Contract Alignment
2+
3+
## Scope
4+
- Align Message Studio and TTS Studio around the parent/child table model.
5+
- Keep Message Studio as the owner of game text and ordered Message Parts.
6+
- Keep TTS Studio as the owner of reusable TTS Profiles and per-profile Emotion Settings.
7+
- Keep playback routed through `src/engine/audio/TextToSpeechEngine`.
8+
9+
## Requirement Evidence
10+
- PASS: Message Studio parent table remains `Messages` in `toolbox/messages/index.html`.
11+
- PASS: Clicking a Message row opens the `Message Parts` child table in `toolbox/messages/messages.js`.
12+
- PASS: Message Parts expose Text, Emotion, TTS Profile, and row actions.
13+
- PASS: Message Studio exposes Play Part, Play Message, and Stop.
14+
- PASS: Stop routes through `toolbox/messages/message-tts-service-registry.js` to `TextToSpeechEngine.stop()`.
15+
- PASS: Message Studio no longer displays Message-owned Emotion Profile or Available TTS Profile side tables.
16+
- PASS: TTS Studio parent table remains `TTS Profiles`.
17+
- PASS: Clicking a TTS Profile row opens the `Emotion Settings` child table.
18+
- PASS: `Man Profile 1` and `Woman Profile 2` seed Neutral, Happy, Angry, and Scared Emotion Settings.
19+
- PASS: No separate Emotion Studio was created.
20+
- PASS: No database schema changes were added.
21+
- PASS: Theme V2 and external JavaScript structure remain in use; no inline styles, style blocks, or inline handlers were added.
22+
23+
## Git Workflow
24+
- Current branch: `codex/pr-26171-069-message-tts-profile-contract-alignment`
25+
- Created branch: `codex/pr-26171-069-message-tts-profile-contract-alignment`
26+
- Push result: pending at report creation
27+
- PR URL: pending at report creation
28+
- Merge result: pending at report creation
29+
- Final main commit: pending at report creation
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# PR_26171_069 Parent/Child Table Checklist
2+
3+
## Message Studio
4+
- PASS: Parent table is `Messages`.
5+
- PASS: Message row click expands the child `Message Parts` table directly under the parent row.
6+
- PASS: Message Parts include Text, Emotion, and TTS Profile controls.
7+
- PASS: Message Parts provide row-level Play Part and inline edit behavior.
8+
- PASS: Message rows provide Play Message and inline edit behavior.
9+
- PASS: Stop is available from Message Studio playback controls.
10+
- PASS: Message-owned detached Emotion Profile and Available TTS Profile tables were removed.
11+
12+
## TTS Studio
13+
- PASS: Parent table is `TTS Profiles`.
14+
- PASS: TTS Profile row click expands the child `Emotion Settings` table.
15+
- PASS: Emotion Settings belong to the selected TTS Profile.
16+
- PASS: Default profile data includes Neutral, Happy, Angry, and Scared settings for the example profiles.
17+
- PASS: No separate Emotion Studio was introduced.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# PR_26171_069 Validation
2+
3+
- PASS: `node --check toolbox/messages/messages.js`
4+
- PASS: `node --check toolbox/messages/message-tts-service-registry.js`
5+
- PASS: `node --check toolbox/text-to-speech/text2speech.js`
6+
- PASS: `node --check tests/playwright/tools/MessagesTool.spec.mjs`
7+
- PASS: `node --check tests/playwright/tools/TextToSpeechFunctional.spec.mjs`
8+
- PASS: `node --check tests/tools/Text2SpeechShell.test.mjs`
9+
- PASS: `node --test tests/tools/Text2SpeechShell.test.mjs`
10+
- PASS: `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs tests/playwright/tools/TextToSpeechFunctional.spec.mjs --project=playwright --workers=1 --reporter=list`
11+
- PASS: `npm run test:workspace-v2`
12+
13+
## Notes
14+
- `npm run test:workspace-v2` is the legacy command name; this report treats it as Project Workspace validation.
15+
- No full samples smoke was run.
Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
1-
docs_build/dev/reports/codex_review.diff
2-
docs_build/dev/reports/codex_changed_files.txt
3-
docs_build/dev/reports/PR_26171_071-merge-conflict-recovery-report.md
4-
docs_build/dev/reports/PR_26171_071-preserved-local-commit-report.md
5-
docs_build/dev/reports/PR_26171_071-discarded-unrelated-work-report.md
6-
docs_build/dev/reports/PR_26171_071-manual-validation-notes.md
7-
docs_build/dev/reports/PR_26171_071-recovery-precleanup.patch.md
8-
docs_build/dev/reports/PR_26171_071-status-before-cleanup.txt
9-
docs_build/dev/reports/PR_26171_071-conflicted-files-before-cleanup.txt
10-
docs_build/dev/reports/PR_26171_071-untracked-files-before-cleanup.txt
1+
A docs_build/dev/reports/PR_26171_069-manual-validation-notes.md
2+
A docs_build/dev/reports/PR_26171_069-message-tts-ownership-checklist.md
3+
A docs_build/dev/reports/PR_26171_069-message-tts-profile-contract-alignment.md
4+
A docs_build/dev/reports/PR_26171_069-parent-child-table-checklist.md
5+
A docs_build/dev/reports/PR_26171_069-validation.md
6+
A docs_build/pr/PR_26171_069-message-tts-profile-contract-alignment/APPLY_PR.md
7+
A docs_build/pr/PR_26171_069-message-tts-profile-contract-alignment/BUILD_PR.md
8+
A docs_build/pr/PR_26171_069-message-tts-profile-contract-alignment/PLAN_PR.md
9+
M tests/playwright/tools/MessagesTool.spec.mjs
10+
M tests/playwright/tools/TextToSpeechFunctional.spec.mjs
11+
M tests/tools/Text2SpeechShell.test.mjs
12+
M toolbox/messages/index.html
13+
M toolbox/messages/message-tts-service-registry.js
14+
M toolbox/messages/messages.js
15+
M toolbox/text-to-speech/text2speech.js
16+
M docs_build/dev/reports/codex_review.diff
17+
M docs_build/dev/reports/codex_changed_files.txt
77.6 KB
Binary file not shown.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# PR_26171_069-message-tts-profile-contract-alignment Apply
2+
3+
## Apply Steps
4+
5+
1. Start from clean latest `main`.
6+
2. Create `codex/pr-26171-069-message-tts-profile-contract-alignment`.
7+
3. Implement only the BUILD scope.
8+
4. Run targeted Message Studio validation.
9+
5. Run targeted TTS Studio validation.
10+
6. Run `npm run test:workspace-v2`.
11+
7. Stage only scoped files.
12+
8. Commit.
13+
9. Push branch.
14+
10. Create PR.
15+
11. Resolve merge conflicts if encountered and rerun validation.
16+
12. Merge after validation passes.
17+
13. Return to `main` and pull latest.
18+
14. Produce final code file change list only, excluding MD, TXT, reports, and other non-code files.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# PR_26171_069-message-tts-profile-contract-alignment Build
2+
3+
## Source Of Truth
4+
5+
Use this BUILD doc, the original PR request, `docs_build/dev/PROJECT_INSTRUCTIONS.md`, and `docs_build/dev/PROJECT_MULTI_PC.txt`.
6+
7+
## Singular Purpose
8+
9+
Align Message Studio and TTS Studio around reusable TTS Profiles, per-profile Emotion Settings, and Message Parts playback.
10+
11+
## Exact Targets
12+
13+
- `toolbox/messages/index.html`
14+
- `toolbox/messages/messages.js`
15+
- `toolbox/messages/message-tts-service-registry.js`
16+
- `toolbox/text-to-speech/index.html`
17+
- `toolbox/text-to-speech/text2speech.js`
18+
- `src/engine/audio/TextToSpeechEngine.js`
19+
- Targeted Message Studio Playwright/unit tests.
20+
- Targeted TTS Studio Playwright/unit tests.
21+
- `docs_build/dev/reports/codex_review.diff`
22+
- `docs_build/dev/reports/codex_changed_files.txt`
23+
- PR-specific report.
24+
- Message/TTS ownership checklist.
25+
- Parent-child table checklist.
26+
- Validation report.
27+
- Manual validation notes.
28+
29+
## Requirements
30+
31+
- Message Studio parent table is Messages.
32+
- Clicking a Message row opens the Message Parts child table.
33+
- Message Parts select Text, Emotion, and TTS Profile.
34+
- Message Studio exposes Play Part, Play Message, and Stop.
35+
- Message playback uses `src/engine/audio/TextToSpeechEngine`.
36+
- Default TTS Profile exists until real profiles are available.
37+
- TTS Studio parent table is TTS Profiles.
38+
- Clicking a TTS Profile row opens Emotion Settings child table.
39+
- Emotion settings belong to the selected TTS Profile.
40+
- Do not create separate Emotion Studio.
41+
- Include example profiles with Neutral, Happy, Angry, and Scared settings.
42+
- Message Studio owns text and ordered message parts.
43+
- TTS Studio owns reusable profiles and per-profile emotion settings.
44+
- `src/engine/audio` owns playback.
45+
- Audio owns generated/played output.
46+
- Use Theme V2 and external JavaScript only.
47+
- Do not add inline styles, style blocks, inline event handlers, page-local CSS, or tool-local CSS.
48+
- Do not add database changes unless an existing Local API contract already supports them.
49+
- Do not use browser-owned product data as source of truth.
50+
- Do not add silent fallbacks.
51+
52+
## Validation
53+
54+
- Run targeted Message Studio validation.
55+
- Run targeted TTS Studio validation.
56+
- Run `npm run test:workspace-v2`.
57+
- Do not run full samples smoke.
58+
59+
## ZIP
60+
61+
Produce `tmp/PR_26171_069-message-tts-profile-contract-alignment_delta.zip` with repo-structured changed files only.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# PR_26171_069-message-tts-profile-contract-alignment Plan
2+
3+
## Purpose
4+
5+
Align Message Studio and TTS Studio around the parent/child table model and shared TTS profile contract.
6+
7+
## Scope
8+
9+
- Message Studio owns Messages and ordered Message Parts.
10+
- Message Parts select Text, Emotion, and TTS Profile.
11+
- Message Studio provides Play Part, Play Message, and Stop using `src/engine/audio/TextToSpeechEngine`.
12+
- TTS Studio owns TTS Profiles and per-profile Emotion Settings.
13+
- TTS Profile rows expand to Emotion Settings child rows.
14+
- Keep Theme V2 only, external JavaScript only, no page-local or tool-local CSS.
15+
- Add targeted validation and required PR reports.
16+
17+
## Non-Goals
18+
19+
- Do not add database schema or persistence changes.
20+
- Do not create a separate Emotion Studio.
21+
- Do not introduce browser storage as product source of truth.
22+
- Do not change unrelated tools or shared runtime behavior beyond the audio playback contract needed by Message Studio.
23+
24+
## Validation
25+
26+
- Targeted Message Studio validation.
27+
- Targeted TTS Studio validation.
28+
- `npm run test:workspace-v2` with note that the command name is legacy and the user-facing language is Project Workspace.
29+
30+
## Delivery
31+
32+
- Commit, push, create PR, resolve conflicts if encountered, merge after validation passes, return to `main`, pull latest, and produce `tmp/PR_26171_069-message-tts-profile-contract-alignment_delta.zip`.

0 commit comments

Comments
 (0)