|
| 1 | +# PR_26171_008-message-tts-profile-foundation |
| 2 | + |
| 3 | +## Branch Validation |
| 4 | + |
| 5 | +- Branch: `pr/PR_26171_008-message-tts-profile-foundation` |
| 6 | +- Source: clean `main` after PR_26171_006 merge and push. |
| 7 | +- Status: PASS for branch setup and scoped implementation. |
| 8 | + |
| 9 | +## Requirement Checklist |
| 10 | + |
| 11 | +- PASS: Added `messages_tts_profiles` persistence under the grouped `messages` ownership area. |
| 12 | +- PASS: Added Local API contracts for list, get, create, and update TTS profiles. |
| 13 | +- PASS: Added server-seeded `Browser Speech Default` and `Narration Preview` TTS profiles. |
| 14 | +- PASS: TTS profile fields include Name, Description, Provider Key, Voice Name, Language, Volume, Pitch, Rate, and Active/Inactive. |
| 15 | +- PASS: Added Theme V2 TTS Profiles management section to the Messages tool. |
| 16 | +- PASS: TTS profiles are configuration records only. |
| 17 | +- PASS: No speech preview, synthesis, audio playback, audio generation, voice adapters, runtime playback, delete endpoint, dialog trees, localization, translation, or AI voices were added. |
| 18 | +- PASS: Browser uses Local API contracts only and does not generate authoritative keys. |
| 19 | +- PASS: SQLite service generates keys and audit fields. |
| 20 | +- PASS: Missing TTS Name, Provider Key, or Language fails visibly in the UI and actionably in the API. |
| 21 | +- PASS: No inline styles, style blocks, inline scripts, or inline event handlers were introduced. |
| 22 | +- FAIL: Required `npm run test:workspace-v2` lane failed in existing `RootToolsFutureState.spec.mjs` coverage outside the Messages/TTS scope. |
| 23 | + |
| 24 | +## Validation Lane Report |
| 25 | + |
| 26 | +- PASS: `node --check src/dev-runtime/messages/messages-sqlite-service.mjs` |
| 27 | +- PASS: `node --check toolbox/messages/messages-api-client.js` |
| 28 | +- PASS: `node --check toolbox/messages/messages.js` |
| 29 | +- PASS: `node --check tests/playwright/tools/MessagesTool.spec.mjs` |
| 30 | +- PASS: Direct SQLite/API validation for TTS seed, create, update, and restart persistence. |
| 31 | +- PASS: `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --project=playwright --workers=1 --reporter=list` |
| 32 | +- PASS: `git diff --check` on touched files. |
| 33 | +- FAIL: `npm run test:workspace-v2` |
| 34 | + |
| 35 | +## Workspace-V2 Failure Summary |
| 36 | + |
| 37 | +`npm run test:workspace-v2` failed in `tests/playwright/tools/RootToolsFutureState.spec.mjs`: |
| 38 | + |
| 39 | +- Toolbox accordion `.control-card` count was `0`. |
| 40 | +- Header alphabetical expectation failed around `Game Hub` and `Game Journey`. |
| 41 | +- Non-Messages pages reported failed requests to session, platform banner, registry, and toolbox constants APIs. |
| 42 | + |
| 43 | +These failures were already present for the batch and are outside PR_008's Messages TTS profile scope. |
| 44 | + |
| 45 | +## Manual Validation Notes |
| 46 | + |
| 47 | +- Confirmed seeded TTS profiles appear in the Messages UI. |
| 48 | +- Confirmed a custom TTS profile can be created. |
| 49 | +- Confirmed a custom TTS profile can be edited, disabled, and re-enabled. |
| 50 | +- Confirmed Local API returns TTS profile list/get payloads with server-owned ULIDs and audit fields. |
| 51 | +- Confirmed SQLite restart persistence for the custom TTS profile. |
| 52 | +- Confirmed no speech preview or audio playback occurs in this PR. |
| 53 | + |
| 54 | +## Samples Decision |
| 55 | + |
| 56 | +- Full samples smoke was not run because samples are out of scope for Messages TTS profile configuration. |
0 commit comments