Skip to content

Commit 11d62b8

Browse files
committed
PR_26171_065 message studio parent child table foundation
1 parent 701f166 commit 11d62b8

13 files changed

Lines changed: 2173 additions & 960 deletions
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# PR_26171_065 Instruction Compliance Checklist
2+
3+
## Start Gate
4+
5+
- PASS: Read `docs_build/dev/PROJECT_INSTRUCTIONS.md` before changes.
6+
- PASS: Read `docs_build/dev/PROJECT_MULTI_PC.txt` before changes.
7+
- PASS: Reported instruction compliance before implementation edits.
8+
- PASS: Started from `main`.
9+
- PASS: Pulled latest `origin/main`.
10+
- PASS: Repository was clean before branch creation.
11+
- PASS: Created branch `pr/26171-065-message-studio-parent-child-table-foundation`.
12+
13+
## Ownership
14+
15+
- PASS: PR number `065` is odd.
16+
- PASS: Odd PR parity maps to Laptop / Environment 2.
17+
- PASS: Messages belongs to Laptop / Environment 2 ownership.
18+
- PASS: Active implementation path is `toolbox/messages/`.
19+
20+
## Scope Controls
21+
22+
- PASS: One PR purpose only.
23+
- PASS: No database changes.
24+
- PASS: No TTS Studio implementation.
25+
- PASS: No future provider hardcoding.
26+
- PASS: Scoped Message Studio validation ran.
27+
- PASS: Project Workspace validation ran through the legacy command name.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# PR_26171_065 Manual Validation Notes
2+
3+
## Manual Review
4+
5+
- Confirmed active implementation path is `toolbox/messages/`.
6+
- Confirmed no database files were changed.
7+
- Confirmed Message Studio no longer exposes TTS profile creation/editing controls.
8+
- Confirmed TTS profile dropdowns render from existing profile options with a default balanced fallback path in code.
9+
- Confirmed `toolbox/messages/index.html` references Theme V2 and external scripts only.
10+
- Confirmed no inline styles, style blocks, or inline event handlers are present.
11+
12+
## Browser Validation Coverage
13+
14+
- Opened Message Studio through the repo Playwright server.
15+
- Added `Bat Encounter` as a parent message.
16+
- Opened the child Message Parts table from the parent row.
17+
- Added two ordered parts.
18+
- Played the full message and verified two speech calls in part order.
19+
- Played a single part and verified the speech call.
20+
- Verified audio-engine-unavailable behavior shows visible actionable error text and does not create speech calls.
21+
22+
## Out Of Scope Manual Checks
23+
24+
- Did not exercise future TTS Studio profile authoring.
25+
- Did not exercise external provider audio generation.
26+
- Did not exercise database migration paths because this PR has no database changes.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# PR_26171_065 Message Studio Parent Child Table Foundation
2+
3+
## Summary
4+
5+
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.
6+
7+
## Scope
8+
9+
- Updated `toolbox/messages/index.html` to expose the requested parent and child table columns.
10+
- 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.
11+
- Updated `toolbox/messages/message-tts-service-registry.js` so the default balanced playback option can use the first available browser voice through `TextToSpeechEngine`.
12+
- Updated targeted Message Studio Playwright validation.
13+
14+
## Requirement Evidence
15+
16+
- PASS: Active path remains `toolbox/messages/`.
17+
- PASS: Parent table is Messages.
18+
- PASS: Child accordion/subtable is Message Parts.
19+
- PASS: Parent Message Name cell owns the visible expand/collapse cue.
20+
- PASS: One parent expands at a time through existing selected message state.
21+
- PASS: Parent columns are Message Name, Type, Status, Parts, Default TTS Profile, Actions.
22+
- PASS: Child columns are Order, Text, Emotion, TTS Profile, Status, Actions.
23+
- PASS: Empty state references the requested example `Bat Encounter` without creating browser-owned product data.
24+
- PASS: Add Message opens an inline add row under the parent table.
25+
- PASS: Edit Message opens an inline edit row.
26+
- PASS: Add Part opens an inline add row in the child table.
27+
- PASS: Edit Part opens an inline edit row.
28+
- PASS: Play Part exists and uses the existing audio engine when available.
29+
- PASS: Play Message exists and queues active parts in order when the audio engine is available.
30+
- PASS: Audio engine unavailable state shows a visible actionable error.
31+
- PASS: TTS profile selection offers existing profiles and a default balanced option if profiles are unavailable.
32+
- PASS: TTS profile authoring is not owned by Message Studio in this PR.
33+
- PASS: No database schema or seed changes were made.
34+
- PASS: No browser-owned product data was introduced as source of truth.
35+
- PASS: Theme V2 only; no page-local CSS, tool-local CSS, inline styles, style blocks, or inline handlers.
36+
37+
## Validation
38+
39+
- PASS: `node --check toolbox\messages\messages.js`.
40+
- PASS: `node --check toolbox\messages\message-tts-service-registry.js`.
41+
- PASS: `node --check tests\playwright\tools\MessagesTool.spec.mjs`.
42+
- PASS: HTML inline style/script/event scan for `toolbox/messages/index.html`.
43+
- PASS: `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --project=playwright --workers=1 --reporter=list`.
44+
- PASS: `npm run test:workspace-v2` (legacy command name; user-facing language is Project Workspace).
45+
46+
## Out Of Scope
47+
48+
- No TTS Studio implementation.
49+
- No future provider behavior.
50+
- No generated audio export.
51+
- No new database persistence.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# PR_26171_065 Parent Child Table Checklist
2+
3+
## Parent Messages Table
4+
5+
- PASS: Table label is Messages.
6+
- PASS: Header includes Message Name.
7+
- PASS: Header includes Type.
8+
- PASS: Header includes Status.
9+
- PASS: Header includes Parts.
10+
- PASS: Header includes Default TTS Profile.
11+
- PASS: Header includes Actions.
12+
- PASS: Add Message creates an inline add row.
13+
- PASS: Edit Message creates an inline edit row.
14+
- PASS: Play Message button exists.
15+
- PASS: Play Message queues active child parts by order.
16+
17+
## Child Message Parts Table
18+
19+
- PASS: Child table opens under the selected parent message.
20+
- PASS: Child table label is Message Parts.
21+
- PASS: Header includes Order.
22+
- PASS: Header includes Text.
23+
- PASS: Header includes Emotion.
24+
- PASS: Header includes TTS Profile.
25+
- PASS: Header includes Status.
26+
- PASS: Header includes Actions.
27+
- PASS: Add Part creates an inline add row.
28+
- PASS: Edit Part creates an inline edit row.
29+
- PASS: Play Part button exists.
30+
31+
## Ownership Boundaries
32+
33+
- PASS: Message Studio owns text and message part ordering.
34+
- PASS: TTS Profile authoring is left to future TTS Studio work.
35+
- PASS: Audio playback is delegated to the audio engine.
36+
- PASS: Local API remains the source for message and part records.
37+
- PASS: No browser storage or page-local product-data source of truth was added.
38+
39+
## UI Constraints
40+
41+
- PASS: Theme V2 only.
42+
- PASS: External JavaScript only.
43+
- PASS: No inline styles.
44+
- PASS: No style blocks.
45+
- PASS: No inline event handlers.
46+
- PASS: No page-local CSS.
47+
- PASS: No tool-local CSS.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# PR_26171_065 Validation Report
2+
3+
## Commands Run
4+
5+
- `node --check toolbox\messages\messages.js`
6+
- PASS.
7+
- `node --check toolbox\messages\message-tts-service-registry.js`
8+
- PASS.
9+
- `node --check tests\playwright\tools\MessagesTool.spec.mjs`
10+
- PASS.
11+
- `Select-String -Path toolbox\messages\index.html -Pattern '<style|<script(?![^>]+src=)|\son\w+=|style='`
12+
- PASS: no matches.
13+
- `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --project=playwright --workers=1 --reporter=list`
14+
- PASS: 2 tests passed.
15+
- Covers parent Messages table, child Message Parts table, inline add/edit rows, ordered Play Message, Play Part, and unavailable audio engine error.
16+
- `npm run test:workspace-v2`
17+
- PASS: 5 Project Workspace tests passed.
18+
- Note: command name is legacy; user-facing language is Project Workspace.
19+
20+
## Coverage
21+
22+
- PASS: `docs_build/dev/reports/playwright_v8_coverage_report.txt` produced changed runtime JS coverage.
23+
- PASS: `docs_build/dev/reports/coverage_changed_js_guardrail.txt` reports no changed runtime JS coverage warnings.
24+
- PASS: `toolbox/messages/messages.js` covered by targeted browser validation.
25+
- PASS: `toolbox/messages/message-tts-service-registry.js` covered by targeted browser validation.
26+
27+
## Skipped
28+
29+
- Database validation skipped because no database schema, seed, or persistence implementation changed.
30+
- Full samples validation skipped because no samples changed.
31+
- External TTS provider validation skipped because this PR does not implement provider behavior.
Lines changed: 51 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,53 @@
1-
# PR_26171_042 Codex Changed Files Report
2-
3-
## Instruction Compliance Gate
4-
5-
- Current branch before execution: `main`
6-
- Required execution branch before PR branch: `main`
7-
- Branch validation: PASS
8-
- Clean repository before branch creation: PASS
9-
- PR owner/parity: PASS, `042` is even and Idea/Tool Display navigation scope maps to PC / Environment 1.
10-
- Implementation path: PASS, active Idea Board and Theme V2 files only.
11-
- Validation scope: PASS, targeted Idea Board, targeted Toolbox route for Idea Board, and workspace contract lane because shared Tool Display Mode behavior changed.
12-
- Required reports: PASS, `docs_build/dev/reports/codex_review.diff` and this report are updated.
13-
- ZIP requirement: PASS, `tmp/PR_26171_042-idea-board-navigation-fallback-cleanup_delta.zip` is required and produced before final delivery.
14-
15-
## Git Workflow Fields
16-
17-
- Created branch: `codex/pr-26171-042-idea-board-navigation-fallback-cleanup`
18-
- Push result: PASS, branch pushed to `origin/codex/pr-26171-042-idea-board-navigation-fallback-cleanup`.
19-
- PR URL: `https://github.com/ToolboxAid/HTML-JavaScript-Gaming/pull/19`
20-
- Merge result: recorded in final Codex delivery after GitHub merge returns the merge SHA.
21-
- Final main commit: recorded in final Codex delivery after returning to `main` and pulling latest.
22-
- Conflict resolution: PASS, merged latest `origin/main` (`9df4942226b0c1a25cfc9567040fc237d90df8f9`) and resolved conflicts only in singleton generated report artifacts.
23-
24-
## Scoped Files
25-
26-
- `assets/theme-v2/js/tool-display-mode.js`
27-
- `tests/playwright/tools/IdeaBoardTableNotes.spec.mjs`
28-
- `tests/playwright/tools/ToolboxRoutePages.spec.mjs`
29-
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/PLAN_PR.md`
30-
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/BUILD_PR.md`
31-
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/APPLY_PR.md`
32-
- `docs_build/dev/reports/coverage_changed_js_guardrail.txt`
33-
- `docs_build/dev/reports/playwright_v8_coverage_report.txt`
34-
- `docs_build/dev/reports/codex_review.diff`
35-
- `docs_build/dev/reports/codex_changed_files.txt`
36-
37-
## Requirement Evidence
38-
39-
- 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.
40-
- PASS: Removed visible message `Tool navigation is temporarily unavailable. Refresh the page or try again shortly.`
41-
- PASS: Idea Board stays usable when registry-backed navigation cannot load. Static/no-registry Playwright path expands notes and adds a note successfully.
42-
- PASS: Creator-facing UI does not mention server, API, local server, port, registry, snapshot, or implementation details in the navigation fallback area.
43-
- PASS: Navigation failure does not affect Idea Board table functionality.
44-
- PASS: API-backed local route validated by targeted Idea Board and Toolbox route Playwright.
45-
- PASS: Static/no-registry route behavior validated by targeted Idea Board Playwright with the registry snapshot returning no data.
46-
- PASS: Optional previous/next navigation is omitted when unavailable.
47-
- PASS: Idea Board lifecycle, Show filter, Create Project, Archive, chevron, and table row editing behavior were not changed.
1+
# Codex Changed Files - PR_26171_065-message-studio-parent-child-table-foundation
2+
3+
## Git Status Short
4+
```text
5+
M docs_build/dev/reports/coverage_changed_js_guardrail.txt
6+
M docs_build/dev/reports/playwright_v8_coverage_report.txt
7+
M tests/playwright/tools/MessagesTool.spec.mjs
8+
M toolbox/messages/index.html
9+
M toolbox/messages/message-tts-service-registry.js
10+
M toolbox/messages/messages.js
11+
?? docs_build/dev/reports/PR_26171_065-instruction-compliance-checklist.md
12+
?? docs_build/dev/reports/PR_26171_065-manual-validation-notes.md
13+
?? docs_build/dev/reports/PR_26171_065-message-studio-parent-child-table-foundation.md
14+
?? docs_build/dev/reports/PR_26171_065-parent-child-table-checklist.md
15+
?? docs_build/dev/reports/PR_26171_065-validation.md
16+
```
17+
18+
## Scoped Diff Stat
19+
```text
20+
.../dev/reports/coverage_changed_js_guardrail.txt | 2 +
21+
.../dev/reports/playwright_v8_coverage_report.txt | 43 +-
22+
tests/playwright/tools/MessagesTool.spec.mjs | 317 +++++---------
23+
toolbox/messages/index.html | 29 +-
24+
toolbox/messages/message-tts-service-registry.js | 8 +-
25+
toolbox/messages/messages.js | 486 ++++++++++++---------
26+
6 files changed, 415 insertions(+), 470 deletions(-)
27+
```
28+
29+
## Changed Files
30+
- toolbox/messages/index.html
31+
- toolbox/messages/messages.js
32+
- toolbox/messages/message-tts-service-registry.js
33+
- tests/playwright/tools/MessagesTool.spec.mjs
34+
- docs_build/dev/reports/coverage_changed_js_guardrail.txt
35+
- docs_build/dev/reports/playwright_v8_coverage_report.txt
36+
- docs_build/dev/reports/PR_26171_065-message-studio-parent-child-table-foundation.md
37+
- docs_build/dev/reports/PR_26171_065-parent-child-table-checklist.md
38+
- docs_build/dev/reports/PR_26171_065-validation.md
39+
- docs_build/dev/reports/PR_26171_065-manual-validation-notes.md
40+
- docs_build/dev/reports/PR_26171_065-instruction-compliance-checklist.md
41+
- docs_build/dev/reports/codex_review.diff
42+
- docs_build/dev/reports/codex_changed_files.txt
4843

4944
## Validation
50-
51-
- PASS: `node --check assets/theme-v2/js/tool-display-mode.js`
52-
- PASS: `node --check toolbox/idea-board/index.js`
53-
- PASS: `node --check tests/playwright/tools/IdeaBoardTableNotes.spec.mjs`
54-
- PASS: `node --check tests/playwright/tools/ToolboxRoutePages.spec.mjs`
55-
- PASS: `npx playwright test tests/playwright/tools/IdeaBoardTableNotes.spec.mjs --project=playwright --workers=1 --reporter=line --timeout=90000`
56-
- PASS: `npx playwright test tests/playwright/tools/ToolboxRoutePages.spec.mjs --project=playwright --workers=1 --reporter=line -g "Idea Board launches" --timeout=90000`
57-
- PASS: `npm run test:workspace-v2`
58-
- PASS: `git diff --check`
59-
- SKIP: Full samples smoke, per user instruction.
60-
61-
## Coverage Evidence
62-
63-
- PASS: `docs_build/dev/reports/playwright_v8_coverage_report.txt` updated.
64-
- PASS: `docs_build/dev/reports/coverage_changed_js_guardrail.txt` updated.
65-
- PASS: Changed runtime JS coverage lists `assets/theme-v2/js/tool-display-mode.js` at 64% advisory function coverage.
66-
67-
## ZIP Contents
68-
69-
- `assets/theme-v2/js/tool-display-mode.js`
70-
- `docs_build/dev/reports/codex_changed_files.txt`
71-
- `docs_build/dev/reports/codex_review.diff`
72-
- `docs_build/dev/reports/coverage_changed_js_guardrail.txt`
73-
- `docs_build/dev/reports/playwright_v8_coverage_report.txt`
74-
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/APPLY_PR.md`
75-
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/BUILD_PR.md`
76-
- `docs_build/pr/PR_26171_042-idea-board-navigation-fallback-cleanup/PLAN_PR.md`
77-
- `tests/playwright/tools/IdeaBoardTableNotes.spec.mjs`
78-
- `tests/playwright/tools/ToolboxRoutePages.spec.mjs`
45+
- PASS: `node --check toolbox\messages\messages.js`.
46+
- PASS: `node --check toolbox\messages\message-tts-service-registry.js`.
47+
- PASS: `node --check tests\playwright\tools\MessagesTool.spec.mjs`.
48+
- PASS: HTML inline style/script/event scan for `toolbox/messages/index.html`.
49+
- PASS: `npx playwright test tests/playwright/tools/MessagesTool.spec.mjs --project=playwright --workers=1 --reporter=list`.
50+
- PASS: `npm run test:workspace-v2` (legacy command name; user-facing language is Project Workspace).
51+
52+
## ZIP
53+
- Path: `tmp/PR_26171_065-message-studio-parent-child-table-foundation_delta.zip`.

0 commit comments

Comments
 (0)