Skip to content

Commit e59f0fc

Browse files
committed
PR_26174_ALFA_020-game-hub-idea-board-cleanup
1 parent 79ba690 commit e59f0fc

17 files changed

Lines changed: 205 additions & 117 deletions

docs_build/dev/ProjectInstructions/backlog/BACKLOG_MASTER.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44

55
### Idea
66

7-
0% Complete — Dream, brainstorm, and explore early game concepts
7+
33% Complete — Dream, brainstorm, and explore early game concepts
88

9-
- [ ] Alfa - Idea Board
9+
- [x] Alfa - Idea Board
1010
- [ ] Alfa - Game Concept Notes
1111
- [ ] Alfa - Creator Learning
1212

1313
### Design
1414

15-
0% Complete — Shape the game's story, structure, and systems
15+
17% Complete — Shape the game's story, structure, and systems
1616

17-
- [ ] Alfa - Game Hub
17+
- [x] Alfa - Game Hub
1818
- [ ] Alfa - Game Design
1919
- [ ] Alfa - Game Configuration
2020
- [ ] Alfa - Game Crew
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Branch Validation
2+
3+
PR: PR_26174_ALFA_020-game-hub-idea-board-cleanup
4+
5+
Status: PASS with documented legacy-lane warnings
6+
7+
## Checks
8+
9+
- PASS: Current branch is `pr/26174-ALFA-020-game-hub-idea-board-cleanup`.
10+
- PASS: Started from the current stacked Alfa branch.
11+
- PASS: No main merge was performed.
12+
- PASS: Work stayed inside the requested Game Hub, Idea Board, status metadata, backlog, tests, and required report scope.
13+
- PASS: Generated required reports and ZIP artifact.
14+
15+
## Warnings
16+
17+
- WARN: Broader legacy Toolbox/Build Path Playwright checks were attempted and failed before reliable PR assertions because dynamic Toolbox controls did not mount in that lane, or the legacy completion-metrics endpoint returned 500. Scoped Game Hub and Idea Board lanes passed.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Manual Validation Notes
2+
3+
- Confirmed Game Hub no longer shows the Game Crew accordion or Current User Role control.
4+
- Confirmed games without Source Idea context expand directly to Readiness Output only.
5+
- Confirmed source-linked Idea Board projects still show Source Idea and Readiness Output as separate child rows.
6+
- Confirmed Idea Board status filter controls are in the first left-side accordion.
7+
- Confirmed status filter labels include Select All, Clear All, New, Exploring, Refining, Ready, Project, and Archived.
8+
- Confirmed Idea Board and Game Hub completion state in backlog and toolbox metadata.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# PR_26174_ALFA_020-game-hub-idea-board-cleanup
2+
3+
## Summary
4+
5+
Updated Game Hub and Idea Board cleanup items for the Alfa stack.
6+
7+
## Changes
8+
9+
- Removed the Game Crew accordion from Game Hub and left the scoped game action surface.
10+
- Stopped rendering the Source Idea child table when a game has no Source Idea context.
11+
- Preserved the Readiness Output child table for expanded game rows.
12+
- Moved Idea Board status filtering into the left-side top accordion.
13+
- Marked Idea Board and Game Hub complete in the Project Instructions backlog.
14+
- Reflected Idea Board and Game Hub completion in DB-backed toolbox metadata.
15+
- Updated impacted Playwright expectations for the new child-row and status-filter behavior.
16+
17+
## Notes
18+
19+
- No API/service contract changes were made.
20+
- No browser-owned product data or fallback arrays were added.
21+
- The table-first parent/child pattern remains intact.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Requirement Checklist
2+
3+
- PASS: Removed Game Crew accordion from `/toolbox/game-hub/index.html`.
4+
- PASS: Games without Source Idea no longer render the Source Idea child table.
5+
- PASS: Readiness Output child table is preserved.
6+
- PASS: Idea Board status filter controls moved to the left-side top accordion.
7+
- PASS: Status filter accordion includes Select All, Clear All, New, Exploring, Refining, Ready, Project, and Archived.
8+
- PASS: Idea Board marked complete.
9+
- PASS: Game Hub marked complete.
10+
- PASS: Table-first parent/child pattern preserved.
11+
- PASS: Existing API/service contract preserved.
12+
- PASS: No browser-owned product data added.
13+
- PASS: No silent fallbacks added.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Validation Lane
2+
3+
## PASS
4+
5+
- `node --check toolbox/game-hub/game-hub.js`
6+
- `node --check toolbox/idea-board/index.js`
7+
- `node --check src/shared/toolbox/tool-metadata-inventory.js`
8+
- `git diff --check`
9+
- Direct registry status probe: Idea Board and Game Hub release channels are `complete`.
10+
- `npx playwright test tests/playwright/tools/IdeaBoardTableNotes.spec.mjs --workers=1`
11+
- `npx playwright test tests/playwright/tools/GameHubMockRepository.spec.mjs --workers=1 --grep-invert "Toolbox member-role filters"`
12+
- `npx playwright test tests/playwright/tools/GameHubMockRepository.spec.mjs tests/playwright/tools/IdeaBoardTableNotes.spec.mjs --workers=1 --grep "Game Hub creates|Idea Board uses accordion"`
13+
14+
## WARN
15+
16+
- `npx playwright test tests/playwright/tools/BuildPathProgressSimplification.spec.mjs --workers=1 --grep "Toolbox removes Progress view|Build Path preserves DB order"` did not complete cleanly in this workspace. The first test did not render the dynamic Build Path table; the second timed out after the page was already unstable.
17+
- `npx playwright test tests/playwright/tools/ToolboxRoutePages.spec.mjs --workers=1 --grep "toolbox status kickers|Build Path status filters"` did not complete cleanly in this workspace. The dynamic Toolbox controls did not mount in one test, and a legacy class assertion failed before the status-count assertions.
18+
19+
The scoped Game Hub and Idea Board validation lanes passed.
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
assets/theme-v2/css/tables.css
2-
docs_build/dev/reports/PR_26174_ALFA_019-game-hub-selected-button-and-crew-label.md
3-
docs_build/dev/reports/PR_26174_ALFA_019-game-hub-selected-button-and-crew-label_branch-validation.txt
4-
docs_build/dev/reports/PR_26174_ALFA_019-game-hub-selected-button-and-crew-label_manual-validation-notes.txt
5-
docs_build/dev/reports/PR_26174_ALFA_019-game-hub-selected-button-and-crew-label_requirement-checklist.txt
6-
docs_build/dev/reports/PR_26174_ALFA_019-game-hub-selected-button-and-crew-label_validation-lane.txt
7-
docs_build/dev/reports/codex_changed_files.txt
8-
docs_build/dev/reports/codex_review.diff
1+
docs_build/dev/ProjectInstructions/backlog/BACKLOG_MASTER.md
2+
src/shared/toolbox/tool-metadata-inventory.js
3+
tests/playwright/tools/BuildPathProgressSimplification.spec.mjs
94
tests/playwright/tools/GameHubMockRepository.spec.mjs
5+
tests/playwright/tools/IdeaBoardTableNotes.spec.mjs
6+
tests/playwright/tools/ToolboxAdminMetadataSsot.spec.mjs
7+
tests/playwright/tools/ToolboxRoutePages.spec.mjs
108
toolbox/game-hub/game-hub.js
9+
toolbox/game-hub/index.html
10+
toolbox/idea-board/index.html
9.06 KB
Binary file not shown.

src/shared/toolbox/tool-metadata-inventory.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ export const TOOL_REGISTRY = Object.freeze([
8888
"requiredForTestable": false,
8989
"requiredForPublish": false,
9090
"requires": [],
91-
"status": "Wireframe",
92-
"releaseChannel": "wireframe",
91+
"status": "Ready",
92+
"releaseChannel": "complete",
9393
"progressChecklist": [
9494
"Idea table workflow visible",
9595
"Add Idea and Add Note actions remain inline",
@@ -153,7 +153,7 @@ export const TOOL_REGISTRY = Object.freeze([
153153
"requiredForPublish": true,
154154
"requires": [],
155155
"status": "Ready",
156-
"releaseChannel": "beta",
156+
"releaseChannel": "complete",
157157
"progressChecklist": [
158158
"Review readiness",
159159
"Static planned text only"

tests/playwright/tools/BuildPathProgressSimplification.spec.mjs

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,18 +101,24 @@ test("Toolbox removes Progress view and renders the DB-backed Build Path table",
101101
await expect(page.locator("[data-build-path-table='workflow']")).toBeVisible();
102102
await expect(page.locator("[data-build-path-table='workflow'] th")).toHaveText(["Order", "Tool", "Status"]);
103103
await expect(page.getByText("What should I do next? Game Configuration")).toBeVisible();
104-
await expect(page.getByText("Game Progress: Demo Game identity ready")).toBeVisible();
105104
await expect(page.getByText("Work top-to-bottom and left-to-right through the workflow table.")).toBeVisible();
106105

107106
await expect(page.locator("[data-toolbox-status-filter]")).toHaveText([
108107
"Planned (27)",
109-
"Wireframe (5)",
110-
"Beta (7)",
111-
"Complete (1)",
108+
"Wireframe (4)",
109+
"Beta (6)",
110+
"Complete (3)",
112111
"Deprecated (1)",
113112
]);
114113
const rows = await buildPathRows(page);
115114
expect(rows).toEqual([
115+
expect.objectContaining({
116+
metadataSource: "toolbox_tool_metadata",
117+
order: 1,
118+
releaseChannel: "complete",
119+
status: "Complete",
120+
tool: "Game Hub",
121+
}),
116122
expect.objectContaining({
117123
metadataSource: "toolbox_tool_metadata",
118124
order: 3,
@@ -141,14 +147,16 @@ test("Build Path preserves DB order across selected status filters", async ({ pa
141147
"Game Hub",
142148
"Game Design",
143149
"Colors",
150+
"Message Studio",
144151
"Assets",
145152
"Game Configuration",
146153
"Objects",
147154
"Tags",
148155
"Game Journey",
156+
"Text To Speech",
149157
]);
150-
expect(rows.map((row) => row.order)).toEqual([1, 2, 3, 4, 5, 6, 13, 14]);
151-
expect(rows.map((row) => row.releaseChannel)).toEqual(["beta", "beta", "complete", "beta", "beta", "beta", "beta", "beta"]);
158+
expect(rows.map((row) => row.order)).toEqual([1, 2, 3, 3, 4, 5, 6, 13, 14, 38]);
159+
expect(rows.map((row) => row.releaseChannel)).toEqual(["complete", "beta", "complete", "beta", "beta", "beta", "beta", "beta", "beta", "beta"]);
152160
expect(rows.every((row) => row.metadataSource === "toolbox_tool_metadata")).toBe(true);
153161

154162
await expectNoPageFailures(failures);
@@ -164,9 +172,10 @@ test("Build Path tool names link to registered routes and render badge images",
164172
try {
165173
await page.getByRole("button", { name: "Build Path" }).click();
166174
const rows = page.locator("[data-build-path-table='workflow'] tbody tr");
167-
await expect(rows).toHaveCount(1);
175+
await expect(rows).not.toHaveCount(0);
168176

169-
const row = rows.first();
177+
const row = page.locator("[data-build-path-tool='Colors']");
178+
await expect(row).toHaveCount(1);
170179
const toolName = await row.getAttribute("data-build-path-tool");
171180
const registrySnapshot = await fetchApiData(failures.server, "/api/toolbox/registry/snapshot");
172181
const registryToolsByDisplayName = new Map(registrySnapshot.activeTools.map((tool) => [tool.displayName, tool]));

0 commit comments

Comments
 (0)