Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# PR_26171_061 Engine Audio Ownership Checklist

## Engine Ownership

- PASS: Reusable TTS voice filtering lives in `src/engine/audio/TextToSpeechEngine.js`.
- PASS: Reusable TTS preset shaping lives in `src/engine/audio/TextToSpeechEngine.js`.
- PASS: Reusable TTS queue item helpers live in `src/engine/audio/TextToSpeechEngine.js`.
- PASS: Existing defaults remain in `src/engine/audio/TextToSpeechDefaults.js`.
- PASS: Active toolbox UI consumes the engine module instead of duplicating all engine behavior locally.

## Active Tool Ownership

- PASS: Active tool remains under `toolbox/text-to-speech/`.
- PASS: Active HTML remains Theme V2 only.
- PASS: Active JavaScript remains external.
- PASS: Active tool owns DOM wiring, status display, and control event handling.
- PASS: Active tool does not create database behavior.

## Boundary Checks

- PASS: No `tools/text2speech/` path was created.
- PASS: Archived `old_text2speech-V2` was used as a read-only functionality sample.
- PASS: Archived tool files were not activated in navigation.
- PASS: Browser SpeechSynthesis is the implemented local provider.
- PASS: Planned providers remain documented but do not block browser preview.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# PR_26171_061 Instruction Compliance Checklist

## Pre-Work Gate

- PASS: Read `docs_build/dev/PROJECT_INSTRUCTIONS.md` before file changes.
- PASS: Read `docs_build/dev/PROJECT_MULTI_PC.txt` before file changes.
- PASS: Reported instruction compliance PASS/FAIL before file changes.
- PASS: `git branch --show-current` reported `main` before branch creation.
- PASS: `git checkout main` completed before branch creation.
- PASS: `git pull origin main` completed before branch creation.
- PASS: `git status` reported a clean working tree before branch creation.
- PASS: Created branch `pr/26171-061-text2speech-engine-audio-feature-parity` from clean latest `main`.

## Owner And Parity

- PASS: PR number `061` is odd.
- PASS: Odd parity maps to Laptop / Environment 2.
- PASS: Text To Speech / TTS is owned by Laptop / Environment 2.
- PASS: Implementation path matches active owner path: `toolbox/text-to-speech/`.
- PASS: Shared engine path matches approved reusable audio path: `src/engine/audio/`.

## Hard Stop Checks

- PASS: Instructions were present and readable.
- PASS: Branch workflow could be followed.
- PASS: Repository was clean before branching.
- PASS: No owner mismatch.
- PASS: No parity mismatch.
- PASS: No wrong implementation path.
- PASS: Scoped validation was not skipped.
- PASS: Required reports were created.
- PASS: Required repo ZIP was created.
27 changes: 27 additions & 0 deletions docs_build/dev/reports/PR_26171_061-manual-validation-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# PR_26171_061 Manual Validation Notes

## Manual Review

- Confirmed active Text To Speech path is `toolbox/text-to-speech/`.
- Confirmed no `tools/text2speech/` directory was created.
- Confirmed old functionality sample path is `archive/v1-v2/tools/old_text2speech-V2/`.
- Confirmed active HTML has external scripts only.
- Confirmed active HTML has no inline style attributes or inline event handlers.
- Confirmed no database files were changed.

## Automated Browser Coverage Used For Manual Equivalents

- Opened active Text To Speech page through targeted Playwright validation.
- Verified browser voices render.
- Verified restored control groups render.
- Verified preset shaping updates pitch and volume values.
- Verified named sentence Add, Duplicate, and Delete.
- Verified output summary includes queue JSON.
- Verified Speak, Pause, Resume, and Stop call the browser SpeechSynthesis mock.
- Verified unavailable SpeechSynthesis shows actionable error.

## Out Of Scope Manual Checks

- No paid provider was manually exercised.
- No generated audio file export was manually exercised.
- No database behavior was manually exercised.
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# PR_26171_061 Old TTS Feature Parity Checklist

Functionality sample: `archive/v1-v2/tools/old_text2speech-V2/`

## Controls And Options

- PASS: Gender helper filter restored.
- PASS: Language filter restored.
- PASS: Voice dropdown restored.
- PASS: Voice details restored.
- PASS: Voice Age select restored.
- PASS: Character Preset select restored.
- PASS: SSML-like Preset select restored.
- PASS: Volume slider restored with visible value.
- PASS: Rate / Speed slider restored with visible value.
- PASS: Pitch slider restored with visible value.
- PASS: Name field restored.
- PASS: Text To Speak editor restored.

## Queue And JSON

- PASS: Named Sentences queue restored.
- PASS: Add named sentence restored.
- PASS: Duplicate named sentence restored.
- PASS: Delete named sentence restored.
- PASS: Output Summary JSON restored.
- PASS: Import JSON restored for standalone launch.
- PASS: Copy JSON restored for standalone launch.
- PASS: Export JSON restored for standalone launch.
- PASS: URL JSON source loading restored through `samplePresetPath`.

## Playback And Status

- PASS: Speak restored.
- PASS: Pause restored when browser support exists.
- PASS: Resume restored when browser support exists.
- PASS: Stop restored.
- PASS: Clearable status log restored.
- PASS: Actionable unavailable-browser error restored.
- PASS: No placeholder provider-blocking behavior remains for browser preview.

## Workspace

- PASS: Project Workspace launch detection restored.
- PASS: Standalone JSON actions hide during Project Workspace launch.
- PASS: Return to Project Workspace action restored.
- PASS: Project Workspace toolState loading restored.
- PASS: Project Workspace dirty-state writeback restored.
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# PR_26171_061 Text To Speech Engine Audio Feature Parity

## Summary

Restored active Text To Speech feature parity from the archived `old_text2speech-V2` functionality sample while keeping active implementation in `toolbox/text-to-speech/` and reusable engine behavior in `src/engine/audio/`.

## Changed Scope

- Rebuilt reusable Text To Speech voice filtering, preset shaping, and queue-item helpers in `src/engine/audio/TextToSpeechEngine.js`.
- Expanded `toolbox/text-to-speech/index.html` with Theme V2 controls for the old V2 feature set.
- Rebuilt `toolbox/text-to-speech/text2speech.js` so the active tool consumes the engine audio module.
- Expanded targeted browser validation in `tests/playwright/tools/TextToSpeechFunctional.spec.mjs`.
- Updated Playwright V8 coverage artifacts for changed runtime JavaScript.

## Requirement Checklist

- PASS: Used `archive/v1-v2/tools/old_text2speech-V2/` as the required functionality sample.
- PASS: Reusable TTS behavior lives in `src/engine/audio/`.
- PASS: `toolbox/text-to-speech/` consumes `src/engine/audio/TextToSpeechEngine.js`.
- PASS: Restored old controls/options/features in the active tool.
- PASS: Browser SpeechSynthesis provider remains implemented.
- PASS: Planned provider adapters do not block browser preview behavior.
- PASS: No `tools/text2speech/` path was created.
- PASS: No database files were changed.
- PASS: Theme V2 remains the styling source.
- PASS: HTML uses external JavaScript only.
- PASS: No inline script, style, or event handler was added.

## Restored Feature Set

- Import JSON.
- Copy JSON.
- Export JSON.
- Project Workspace return action during workspace launch.
- Gender helper filter.
- Language filter.
- Browser voice selection.
- Voice details.
- Voice age shaping.
- Character presets.
- SSML-like presets.
- Volume, rate, and pitch sliders with visible values.
- Named sentence Name field.
- Add, Duplicate, and Delete named sentence actions.
- Text To Speak editor.
- Speak, Pause, Resume, and Stop playback actions.
- Named Sentences queue.
- Output Summary JSON.
- Clearable Status log.
- URL JSON preset loading through `samplePresetPath`.
- Project Workspace toolState loading and dirty-state writeback.

## Validation Summary

- PASS: `node --check src\engine\audio\TextToSpeechEngine.js`
- PASS: `node --check toolbox\text-to-speech\text2speech.js`
- PASS: `node --test tests\tools\Text2SpeechShell.test.mjs`
- PASS: `npx playwright test tests/playwright/tools/TextToSpeechFunctional.spec.mjs`
- PASS: `npm run test:workspace-v2`
- Note: command name is legacy; user-facing language is Project Workspace.
- PASS: `git diff --check`
- PASS: changed runtime JS coverage collected for `src/engine/audio/TextToSpeechEngine.js`.
- PASS: changed runtime JS coverage collected for `toolbox/text-to-speech/text2speech.js`.

## Out Of Scope

- No database changes.
- No external paid provider implementation.
- No generated audio file export provider.
- No new `tools/text2speech/` path.
- No archived tool activation.
42 changes: 42 additions & 0 deletions docs_build/dev/reports/PR_26171_061-validation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# PR_26171_061 Validation Report

## Commands Run

- `node --check src\engine\audio\TextToSpeechEngine.js`
- PASS.
- `node --check toolbox\text-to-speech\text2speech.js`
- PASS.
- `node --test tests\tools\Text2SpeechShell.test.mjs`
- PASS: 3 tests passed.
- `npx playwright test tests/playwright/tools/TextToSpeechFunctional.spec.mjs`
- PASS: 2 tests passed.
- Covers restored controls, preset shaping, queue add/duplicate/delete, output summary, pause/resume, speak, stop, and unavailable SpeechSynthesis error handling.
- PASS: rerun after merging `origin/main` into the PR branch for conflict resolution.
- `npm run test:workspace-v2`
- PASS: 5 Project Workspace tests passed.
- Note: command name is legacy; user-facing language is Project Workspace.
- Note: first execution used a 120s timeout and timed out before completion; rerun with a longer timeout completed successfully.
- PASS: rerun after merging `origin/main` into the PR branch for conflict resolution.
- `git diff --check`
- PASS.

## Coverage

- PASS: `docs_build/dev/reports/playwright_v8_coverage_report.txt` produced changed runtime JS coverage.
- PASS: `docs_build/dev/reports/coverage_changed_js_guardrail.txt` reports no changed runtime JS coverage warnings.
- PASS: `src/engine/audio/TextToSpeechEngine.js` covered at 71%.
- PASS: `toolbox/text-to-speech/text2speech.js` covered at 71%.

## Artifact Verification

- PASS: `docs_build/dev/reports/codex_review.diff` exists.
- PASS: `docs_build/dev/reports/codex_changed_files.txt` exists.
- PASS: `tmp/PR_26171_061-text2speech-engine-audio-feature-parity_delta.zip` exists.
- PASS: ZIP size is greater than zero.
- PASS: ZIP contents preserve repo-relative paths.

## Skipped

- Full samples validation skipped because no sample JSON or sample runtime behavior changed.
- Database validation skipped because no database files or runtime persistence changed.
- External provider validation skipped because paid/provider generation is out of scope and browser SpeechSynthesis is the implemented provider for this PR.
123 changes: 43 additions & 80 deletions docs_build/dev/reports/codex_changed_files.txt
Original file line number Diff line number Diff line change
@@ -1,91 +1,54 @@
# Codex Changed Files - PR_26171_041-idea-board-production-polish
# Codex Changed Files - PR_26171_061-text2speech-engine-audio-feature-parity

## Git Workflow
- Current branch: `codex/pr-26171-041-idea-board-production-polish`.
- Expected starting branch: `main` (PASS before branch creation).
- Created branch: `codex/pr-26171-041-idea-board-production-polish`.
- Commit before conflict resolution: `ca626873a4cf19925229851b0da2a4ff55c2073f`.
- Initial push result: PASS, branch pushed to `origin/codex/pr-26171-041-idea-board-production-polish`.
- PR URL: `https://github.com/ToolboxAid/HTML-JavaScript-Gaming/pull/17`.
- Conflict resolution: merged `origin/main` at `0a364f85516aea82e38eea2f498fde5980f9adf9`; conflicts were limited to `codex_changed_files.txt` and `codex_review.diff`.
- Conflict resolution push result: pending until after merge-validation commit.
- Merge result: pending until after PR validation/merge.
- Final main sync: pending until after merge and final pull.
- Starting branch: `main`.
- Created branch: `pr/26171-061-text2speech-engine-audio-feature-parity`.
- Initial commit: `e4541d63719ab777b0654c8fecf4b13237d31256`.
- PR branch was merged with `origin/main` during PR conflict recovery.
- Conflicts were limited to generated report artifacts.

## Git Status
## Scoped Diff Stat
```text
M assets/theme-v2/css/tables.css
M assets/theme-v2/js/tool-display-mode.js
M docs_build/dev/reports/codex_changed_files.txt
M docs_build/dev/reports/codex_review.diff
M docs_build/dev/reports/coverage_changed_js_guardrail.txt
M docs_build/dev/reports/playwright_v8_coverage_report.txt
M src/shared/toolbox/tool-metadata-inventory.js
M tests/playwright/tools/IdeaBoardTableNotes.spec.mjs
M tests/playwright/tools/ToolboxRoutePages.spec.mjs
M toolbox/idea-board/index.html
M toolbox/idea-board/index.js
...R_26171_061-engine-audio-ownership-checklist.md | 25 +
...R_26171_061-instruction-compliance-checklist.md | 32 +
.../PR_26171_061-manual-validation-notes.md | 27 +
...R_26171_061-old-tts-feature-parity-checklist.md | 48 ++
..._061-text2speech-engine-audio-feature-parity.md | 71 ++
docs_build/dev/reports/PR_26171_061-validation.md | 42 +
docs_build/dev/reports/codex_changed_files.txt | 118 +--
.../dev/reports/coverage_changed_js_guardrail.txt | 7 +-
.../dev/reports/playwright_v8_coverage_report.txt | 36 +-
src/engine/audio/TextToSpeechEngine.js | 208 ++++-
.../tools/TextToSpeechFunctional.spec.mjs | 30 +
toolbox/text-to-speech/index.html | 119 +--
toolbox/text-to-speech/text2speech.js | 853 +++++++++++++++++----
13 files changed, 1317 insertions(+), 299 deletions(-)
```

## Diff Stat
```text
assets/theme-v2/css/tables.css | 70 +++++++-
assets/theme-v2/js/tool-display-mode.js | 2 +-
.../dev/reports/coverage_changed_js_guardrail.txt | 5 +-
.../dev/reports/playwright_v8_coverage_report.txt | 11 +-
src/shared/toolbox/tool-metadata-inventory.js | 6 +-
.../playwright/tools/IdeaBoardTableNotes.spec.mjs | 71 +++++++-
tests/playwright/tools/ToolboxRoutePages.spec.mjs | 26 ++-
toolbox/idea-board/index.html | 31 ++--
toolbox/idea-board/index.js | 191 ++++++++++++++++++++-
9 files changed, 368 insertions(+), 45 deletions(-)
```

## Requirement Evidence
- PASS: Removed creator-visible Create Project from the right-side Next Steps area; no disabled `data-idea-board-create-project` panel remains.
- PASS: Create Project is shown only in a Ready idea row's Actions column.
- PASS: Clicking Create Project changes the idea status from Ready to Project and replaces Create Project/Delete with Open Project and Archive.
- PASS: Project rows show Open Project and Archive and do not show Delete.
- PASS: Added Archived status; archived rows are hidden by default.
- PASS: Archived rows show Restore and Delete.
- PASS: Restore returns archived ideas to their previous non-archived status, with Refining fallback in runtime.
- PASS: Delete is guarded so Project ideas cannot be deleted unless archived first.
- PASS: Status dropdown uses New, Exploring, Refining, Ready, Project, and Archived.
- PASS: Added compact Show checkbox dropdown beside the visible table description line, with default statuses New, Exploring, Refining, Ready, and Project selected and Archived unselected.
- PASS: Show dropdown supports any checkbox combination plus Select All and Clear All.
- PASS: Updated creator-facing copy to "Capture, compare, and shape game ideas." and "Scan, compare, and update early ideas."
- PASS: Replaced creator-visible Tool Display Mode navigation error with safe copy that does not mention server/API/local server/port/implementation details.
- PASS: Chevron renders to the left of the Idea text, inline, same size, same color, and on the same text line; the whole Idea cell remains the expansion target.
- PASS: Notes count remains informational only.
- PASS: Table-first structure, inline Add Idea/Add Note, row-level Save/Cancel, status dropdown edit mode, notes indentation, and single-open accordion behavior remain covered.
## Changed Files
- src/engine/audio/TextToSpeechEngine.js
- toolbox/text-to-speech/index.html
- toolbox/text-to-speech/text2speech.js
- tests/playwright/tools/TextToSpeechFunctional.spec.mjs
- docs_build/dev/reports/coverage_changed_js_guardrail.txt
- docs_build/dev/reports/playwright_v8_coverage_report.txt
- docs_build/dev/reports/PR_26171_061-text2speech-engine-audio-feature-parity.md
- docs_build/dev/reports/PR_26171_061-instruction-compliance-checklist.md
- docs_build/dev/reports/PR_26171_061-old-tts-feature-parity-checklist.md
- docs_build/dev/reports/PR_26171_061-engine-audio-ownership-checklist.md
- docs_build/dev/reports/PR_26171_061-validation.md
- docs_build/dev/reports/PR_26171_061-manual-validation-notes.md
- docs_build/dev/reports/codex_review.diff
- docs_build/dev/reports/codex_changed_files.txt

## Validation
- PASS: `node --check toolbox/idea-board/index.js`.
- PASS: `node --check assets/theme-v2/js/tool-display-mode.js`.
- PASS: `node --check src/shared/toolbox/tool-metadata-inventory.js`.
- PASS: `node --check tests/playwright/tools/IdeaBoardTableNotes.spec.mjs`.
- PASS: `node --check tests/playwright/tools/ToolboxRoutePages.spec.mjs`.
- PASS: `npx playwright test tests/playwright/tools/IdeaBoardTableNotes.spec.mjs --project=playwright --workers=1 --reporter=line --timeout=90000`.
- PASS: `npx playwright test tests/playwright/tools/ToolboxRoutePages.spec.mjs --project=playwright --workers=1 --reporter=line -g "Idea Board launches" --timeout=90000`.
- PASS: `npm run test:workspace-v2` (workspace-contract lane, 5 passed).
- PASS: `node --check src\engine\audio\TextToSpeechEngine.js`.
- PASS: `node --check toolbox\text-to-speech\text2speech.js`.
- PASS: `node --test tests\tools\Text2SpeechShell.test.mjs`.
- PASS: `npx playwright test tests/playwright/tools/TextToSpeechFunctional.spec.mjs`.
- PASS: `npm run test:workspace-v2` (legacy command name; user-facing language is Project Workspace).
- PASS: `git diff --check`.
- PASS: Post-conflict rerun completed after merging `origin/main` at `0a364f85516aea82e38eea2f498fde5980f9adf9`.
- PASS: Playwright V8 coverage report produced because runtime JavaScript changed.
- WARN: Coverage report marks `src/shared/toolbox/tool-metadata-inventory.js` as not collected by browser V8 coverage; advisory only per project instructions.
- SKIPPED: Full samples smoke was not run per request.
- PASS: Post-conflict validation rerun after merging `origin/main` into the PR branch.

## ZIP
- Path: `tmp/PR_26171_041-idea-board-production-polish_delta.zip`.
- Size: final size reported in the delivery summary after conflict-resolution ZIP refresh.
- Contents:
- assets/theme-v2/css/tables.css
- assets/theme-v2/js/tool-display-mode.js
- docs_build/dev/reports/codex_changed_files.txt
- docs_build/dev/reports/codex_review.diff
- docs_build/dev/reports/coverage_changed_js_guardrail.txt
- docs_build/dev/reports/playwright_v8_coverage_report.txt
- src/shared/toolbox/tool-metadata-inventory.js
- tests/playwright/tools/IdeaBoardTableNotes.spec.mjs
- tests/playwright/tools/ToolboxRoutePages.spec.mjs
- toolbox/idea-board/index.html
- toolbox/idea-board/index.js
- Path: `tmp/PR_26171_061-text2speech-engine-audio-feature-parity_delta.zip`.
Loading
Loading