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,27 @@
# PR_26171_065 Instruction Compliance Checklist

## Start Gate

- PASS: Read `docs_build/dev/PROJECT_INSTRUCTIONS.md` before changes.
- PASS: Read `docs_build/dev/PROJECT_MULTI_PC.txt` before changes.
- PASS: Reported instruction compliance before implementation edits.
- PASS: Started from `main`.
- PASS: Pulled latest `origin/main`.
- PASS: Repository was clean before branch creation.
- PASS: Created branch `pr/26171-065-message-studio-parent-child-table-foundation`.

## Ownership

- PASS: PR number `065` is odd.
- PASS: Odd PR parity maps to Laptop / Environment 2.
- PASS: Messages belongs to Laptop / Environment 2 ownership.
- PASS: Active implementation path is `toolbox/messages/`.

## Scope Controls

- PASS: One PR purpose only.
- PASS: No database changes.
- PASS: No TTS Studio implementation.
- PASS: No future provider hardcoding.
- PASS: Scoped Message Studio validation ran.
- PASS: Project Workspace validation ran through the legacy command name.
26 changes: 26 additions & 0 deletions docs_build/dev/reports/PR_26171_065-manual-validation-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# PR_26171_065 Manual Validation Notes

## Manual Review

- Confirmed active implementation path is `toolbox/messages/`.
- Confirmed no database files were changed.
- Confirmed Message Studio no longer exposes TTS profile creation/editing controls.
- Confirmed TTS profile dropdowns render from existing profile options with a default balanced fallback path in code.
- Confirmed `toolbox/messages/index.html` references Theme V2 and external scripts only.
- Confirmed no inline styles, style blocks, or inline event handlers are present.

## Browser Validation Coverage

- Opened Message Studio through the repo Playwright server.
- Added `Bat Encounter` as a parent message.
- Opened the child Message Parts table from the parent row.
- Added two ordered parts.
- Played the full message and verified two speech calls in part order.
- Played a single part and verified the speech call.
- Verified audio-engine-unavailable behavior shows visible actionable error text and does not create speech calls.

## Out Of Scope Manual Checks

- Did not exercise future TTS Studio profile authoring.
- Did not exercise external provider audio generation.
- Did not exercise database migration paths because this PR has no database changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# PR_26171_065 Message Studio Parent Child Table Foundation

## Summary

Message Studio now presents a parent Messages table with an expandable child Message Parts table. The active tool remains `toolbox/messages/`, uses Theme V2, and keeps all JavaScript external.

## Scope

- Updated `toolbox/messages/index.html` to expose the requested parent and child table columns.
- Updated `toolbox/messages/messages.js` to render Messages and Message Parts, support inline add/edit rows, and provide row-level Play Message and Play Part actions.
- Updated `toolbox/messages/message-tts-service-registry.js` so the default balanced playback option can use the first available browser voice through `TextToSpeechEngine`.
- Updated targeted Message Studio Playwright validation.

## Requirement Evidence

- PASS: Active path remains `toolbox/messages/`.
- PASS: Parent table is Messages.
- PASS: Child accordion/subtable is Message Parts.
- PASS: Parent Message Name cell owns the visible expand/collapse cue.
- PASS: One parent expands at a time through existing selected message state.
- PASS: Parent columns are Message Name, Type, Status, Parts, Default TTS Profile, Actions.
- PASS: Child columns are Order, Text, Emotion, TTS Profile, Status, Actions.
- PASS: Empty state references the requested example `Bat Encounter` without creating browser-owned product data.
- PASS: Add Message opens an inline add row under the parent table.
- PASS: Edit Message opens an inline edit row.
- PASS: Add Part opens an inline add row in the child table.
- PASS: Edit Part opens an inline edit row.
- PASS: Play Part exists and uses the existing audio engine when available.
- PASS: Play Message exists and queues active parts in order when the audio engine is available.
- PASS: Audio engine unavailable state shows a visible actionable error.
- PASS: TTS profile selection offers existing profiles and a default balanced option if profiles are unavailable.
- PASS: TTS profile authoring is not owned by Message Studio in this PR.
- PASS: No database schema or seed changes were made.
- PASS: No browser-owned product data was introduced as source of truth.
- PASS: Theme V2 only; no page-local CSS, tool-local CSS, inline styles, style blocks, or inline handlers.

## Validation

- PASS: `node --check toolbox\messages\messages.js`.
- PASS: `node --check toolbox\messages\message-tts-service-registry.js`.
- PASS: `node --check tests\playwright\tools\MessagesTool.spec.mjs`.
- PASS: HTML inline style/script/event scan for `toolbox/messages/index.html`.
- PASS: `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --project=playwright --workers=1 --reporter=list`.
- PASS: `npm run test:workspace-v2` (legacy command name; user-facing language is Project Workspace).

## Out Of Scope

- No TTS Studio implementation.
- No future provider behavior.
- No generated audio export.
- No new database persistence.
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# PR_26171_065 Parent Child Table Checklist

## Parent Messages Table

- PASS: Table label is Messages.
- PASS: Header includes Message Name.
- PASS: Header includes Type.
- PASS: Header includes Status.
- PASS: Header includes Parts.
- PASS: Header includes Default TTS Profile.
- PASS: Header includes Actions.
- PASS: Add Message creates an inline add row.
- PASS: Edit Message creates an inline edit row.
- PASS: Play Message button exists.
- PASS: Play Message queues active child parts by order.

## Child Message Parts Table

- PASS: Child table opens under the selected parent message.
- PASS: Child table label is Message Parts.
- PASS: Header includes Order.
- PASS: Header includes Text.
- PASS: Header includes Emotion.
- PASS: Header includes TTS Profile.
- PASS: Header includes Status.
- PASS: Header includes Actions.
- PASS: Add Part creates an inline add row.
- PASS: Edit Part creates an inline edit row.
- PASS: Play Part button exists.

## Ownership Boundaries

- PASS: Message Studio owns text and message part ordering.
- PASS: TTS Profile authoring is left to future TTS Studio work.
- PASS: Audio playback is delegated to the audio engine.
- PASS: Local API remains the source for message and part records.
- PASS: No browser storage or page-local product-data source of truth was added.

## UI Constraints

- PASS: Theme V2 only.
- PASS: External JavaScript only.
- PASS: No inline styles.
- PASS: No style blocks.
- PASS: No inline event handlers.
- PASS: No page-local CSS.
- PASS: No tool-local CSS.
31 changes: 31 additions & 0 deletions docs_build/dev/reports/PR_26171_065-validation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# PR_26171_065 Validation Report

## Commands Run

- `node --check toolbox\messages\messages.js`
- PASS.
- `node --check toolbox\messages\message-tts-service-registry.js`
- PASS.
- `node --check tests\playwright\tools\MessagesTool.spec.mjs`
- PASS.
- `Select-String -Path toolbox\messages\index.html -Pattern '<style|<script(?![^>]+src=)|\son\w+=|style='`
- PASS: no matches.
- `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --project=playwright --workers=1 --reporter=list`
- PASS: 2 tests passed.
- Covers parent Messages table, child Message Parts table, inline add/edit rows, ordered Play Message, Play Part, and unavailable audio engine error.
- `npm run test:workspace-v2`
- PASS: 5 Project Workspace tests passed.
- Note: command name is legacy; user-facing language is Project Workspace.

## 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: `toolbox/messages/messages.js` covered by targeted browser validation.
- PASS: `toolbox/messages/message-tts-service-registry.js` covered by targeted browser validation.

## Skipped

- Database validation skipped because no database schema, seed, or persistence implementation changed.
- Full samples validation skipped because no samples changed.
- External TTS provider validation skipped because this PR does not implement provider behavior.
127 changes: 51 additions & 76 deletions docs_build/dev/reports/codex_changed_files.txt
Original file line number Diff line number Diff line change
@@ -1,78 +1,53 @@
# PR_26171_042 Codex Changed Files Report

## Instruction Compliance Gate

- Current branch before execution: `main`
- Required execution branch before PR branch: `main`
- Branch validation: PASS
- Clean repository before branch creation: PASS
- PR owner/parity: PASS, `042` is even and Idea/Tool Display navigation scope maps to PC / Environment 1.
- Implementation path: PASS, active Idea Board and Theme V2 files only.
- Validation scope: PASS, targeted Idea Board, targeted Toolbox route for Idea Board, and workspace contract lane because shared Tool Display Mode behavior changed.
- Required reports: PASS, `docs_build/dev/reports/codex_review.diff` and this report are updated.
- ZIP requirement: PASS, `tmp/PR_26171_042-idea-board-navigation-fallback-cleanup_delta.zip` is required and produced before final delivery.

## Git Workflow Fields

- Created branch: `codex/pr-26171-042-idea-board-navigation-fallback-cleanup`
- Push result: PASS, branch pushed to `origin/codex/pr-26171-042-idea-board-navigation-fallback-cleanup`.
- PR URL: `https://github.com/ToolboxAid/HTML-JavaScript-Gaming/pull/19`
- Merge result: recorded in final Codex delivery after GitHub merge returns the merge SHA.
- Final main commit: recorded in final Codex delivery after returning to `main` and pulling latest.
- Conflict resolution: PASS, merged latest `origin/main` (`9df4942226b0c1a25cfc9567040fc237d90df8f9`) and resolved conflicts only in singleton generated report artifacts.

## Scoped Files

- `assets/theme-v2/js/tool-display-mode.js`
- `tests/playwright/tools/IdeaBoardTableNotes.spec.mjs`
- `tests/playwright/tools/ToolboxRoutePages.spec.mjs`
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/PLAN_PR.md`
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/BUILD_PR.md`
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/APPLY_PR.md`
- `docs_build/dev/reports/coverage_changed_js_guardrail.txt`
- `docs_build/dev/reports/playwright_v8_coverage_report.txt`
- `docs_build/dev/reports/codex_review.diff`
- `docs_build/dev/reports/codex_changed_files.txt`

## Requirement Evidence

- PASS: Removed creator-visible Tool Display Mode navigation diagnostic fallback. `tool-display-mode.js` now logs the navigation load failure to console only and appends no status paragraph.
- PASS: Removed visible message `Tool navigation is temporarily unavailable. Refresh the page or try again shortly.`
- PASS: Idea Board stays usable when registry-backed navigation cannot load. Static/no-registry Playwright path expands notes and adds a note successfully.
- PASS: Creator-facing UI does not mention server, API, local server, port, registry, snapshot, or implementation details in the navigation fallback area.
- PASS: Navigation failure does not affect Idea Board table functionality.
- PASS: API-backed local route validated by targeted Idea Board and Toolbox route Playwright.
- PASS: Static/no-registry route behavior validated by targeted Idea Board Playwright with the registry snapshot returning no data.
- PASS: Optional previous/next navigation is omitted when unavailable.
- PASS: Idea Board lifecycle, Show filter, Create Project, Archive, chevron, and table row editing behavior were not changed.
# Codex Changed Files - PR_26171_065-message-studio-parent-child-table-foundation

## Git Status Short
```text
M docs_build/dev/reports/coverage_changed_js_guardrail.txt
M docs_build/dev/reports/playwright_v8_coverage_report.txt
M tests/playwright/tools/MessagesTool.spec.mjs
M toolbox/messages/index.html
M toolbox/messages/message-tts-service-registry.js
M toolbox/messages/messages.js
?? docs_build/dev/reports/PR_26171_065-instruction-compliance-checklist.md
?? docs_build/dev/reports/PR_26171_065-manual-validation-notes.md
?? docs_build/dev/reports/PR_26171_065-message-studio-parent-child-table-foundation.md
?? docs_build/dev/reports/PR_26171_065-parent-child-table-checklist.md
?? docs_build/dev/reports/PR_26171_065-validation.md
```

## Scoped Diff Stat
```text
.../dev/reports/coverage_changed_js_guardrail.txt | 2 +
.../dev/reports/playwright_v8_coverage_report.txt | 43 +-
tests/playwright/tools/MessagesTool.spec.mjs | 317 +++++---------
toolbox/messages/index.html | 29 +-
toolbox/messages/message-tts-service-registry.js | 8 +-
toolbox/messages/messages.js | 486 ++++++++++++---------
6 files changed, 415 insertions(+), 470 deletions(-)
```

## Changed Files
- toolbox/messages/index.html
- toolbox/messages/messages.js
- toolbox/messages/message-tts-service-registry.js
- tests/playwright/tools/MessagesTool.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_065-message-studio-parent-child-table-foundation.md
- docs_build/dev/reports/PR_26171_065-parent-child-table-checklist.md
- docs_build/dev/reports/PR_26171_065-validation.md
- docs_build/dev/reports/PR_26171_065-manual-validation-notes.md
- docs_build/dev/reports/PR_26171_065-instruction-compliance-checklist.md
- docs_build/dev/reports/codex_review.diff
- docs_build/dev/reports/codex_changed_files.txt

## Validation

- PASS: `node --check assets/theme-v2/js/tool-display-mode.js`
- PASS: `node --check toolbox/idea-board/index.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`
- PASS: `git diff --check`
- SKIP: Full samples smoke, per user instruction.

## Coverage Evidence

- PASS: `docs_build/dev/reports/playwright_v8_coverage_report.txt` updated.
- PASS: `docs_build/dev/reports/coverage_changed_js_guardrail.txt` updated.
- PASS: Changed runtime JS coverage lists `assets/theme-v2/js/tool-display-mode.js` at 64% advisory function coverage.

## ZIP Contents

- `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`
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/APPLY_PR.md`
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/BUILD_PR.md`
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/PLAN_PR.md`
- `tests/playwright/tools/IdeaBoardTableNotes.spec.mjs`
- `tests/playwright/tools/ToolboxRoutePages.spec.mjs`
- PASS: `node --check toolbox\messages\messages.js`.
- PASS: `node --check toolbox\messages\message-tts-service-registry.js`.
- PASS: `node --check tests\playwright\tools\MessagesTool.spec.mjs`.
- PASS: HTML inline style/script/event scan for `toolbox/messages/index.html`.
- PASS: `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --project=playwright --workers=1 --reporter=list`.
- PASS: `npm run test:workspace-v2` (legacy command name; user-facing language is Project Workspace).

## ZIP
- Path: `tmp/PR_26171_065-message-studio-parent-child-table-foundation_delta.zip`.
Loading
Loading