Skip to content

Commit 00efb18

Browse files
author
DavidQ
committed
Phase 5 slice: route Games Hub launches through Workspace Manager via ?game=<id>, add Workspace game-host iframe mode, and mark first games roadmap item complete with batch-37 PASS validation.
1 parent 3b5505c commit 00efb18

22 files changed

Lines changed: 256 additions & 6 deletions
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Samples2Tools batch 37 summary
2+
Generated: 2026-04-24T22:19:25.278Z
3+
Purpose: deliver first executable Phase 5 slice by making Games Hub launch through Workspace Manager.
4+
5+
Completed this batch:
6+
- Added Workspace Manager game-host mode (`?game=<id>`) that resolves game href from games metadata
7+
- Updated Games Hub cards to route launchable games to Workspace Manager
8+
- Kept optional standalone game link available for side-by-side verification
9+
10+
Primary validation artifact:
11+
- docs/dev/reports/samples2tools_batch_37_validation.txt (PASS)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Samples2Tools batch 37 validation
2+
Generated: 2026-04-24T22:19:25.278Z
3+
Scope: Phase 5 slice - launch games via Workspace Manager from Games Hub.
4+
5+
- [PASS] Workspace Manager reads game query parameter :: tools/Workspace Manager/main.js
6+
- [PASS] Workspace Manager resolves game entry from games metadata :: tools/Workspace Manager/main.js
7+
- [PASS] Workspace Manager can mount game iframe mode :: tools/Workspace Manager/main.js
8+
- [PASS] Games index routes launchable games to Workspace Manager :: games/index.render.js
9+
- [PASS] Launchable games available for Workspace flow :: count=11
10+
- [PASS] Workspace game launch href construction sane :: issues=0
11+
12+
Checks: 6
13+
Failures: 0
14+
Result: PASS
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Samples2Tools batch 38 summary
2+
Generated: 2026-04-24T22:22:54.716Z
3+
Purpose: remove standalone game launch actions from the primary Games Hub surface.
4+
5+
Completed this batch:
6+
- Removed standalone game launch link from game card actions
7+
- Kept Workspace Manager launch action as the only explicit game card launch action
8+
- Revalidated launchable game coverage for workspace launch path construction
9+
10+
Primary validation artifact:
11+
- docs/dev/reports/samples2tools_batch_38_validation.txt (PASS)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Samples2Tools batch 38 validation
2+
Generated: 2026-04-24T22:22:54.716Z
3+
Scope: Phase 5 harden primary games surface to Workspace-only launch actions.
4+
5+
- [PASS] Games card actions no longer render standalone game launch link :: games/index.render.js
6+
- [PASS] Games card actions keep Workspace Manager launch link :: games/index.render.js
7+
- [PASS] All launchable games have workspace launch path pattern :: launchable=11
8+
9+
Checks: 3
10+
Failures: 0
11+
Result: PASS
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Samples2Tools batch 39 summary
2+
Generated: 2026-04-24T22:25:29.424Z
3+
Purpose: harden games lane so Workspace Manager is the canonical launch surface.
4+
5+
Completed this batch:
6+
- Added a shared game launch guard that redirects non-hosted direct game page opens to Workspace Manager
7+
- Applied guard to all launchable game index pages from games metadata
8+
- Ensured Games Hub card actions no longer advertise standalone game launch
9+
- Ensured Workspace Manager game-host iframe passes hosted context params
10+
11+
Primary validation artifact:
12+
- docs/dev/reports/samples2tools_batch_39_validation.txt (PASS)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Samples2Tools batch 39 validation
2+
Generated: 2026-04-24T22:25:29.424Z
3+
Scope: Phase 5 hardening - enforce Workspace-first launches for game pages and Games Hub cards.
4+
5+
- [PASS] Workspace game-host mode appends hosted params :: tools/Workspace Manager/main.js
6+
- [PASS] Games Hub card actions are Workspace-only (no standalone action) :: games/index.render.js
7+
- [PASS] Shared workspace game launch guard exists :: games/shared/workspaceGameLaunchGuard.js
8+
- [PASS] All launchable games include workspace launch guard :: launchable=11, guardIssues=0, missingFiles=0
9+
10+
Checks: 4
11+
Failures: 0
12+
Result: PASS

docs/dev/roadmaps/MASTER_ROADMAP_SAMPLES2TOOLS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
- [x] Select precise, semantically aligned samples only (avoid broad keyword-only linkage).
122122

123123
### Phase 5 - Games
124-
- [ ] Do the same thing for games, but use Workspace Manager.
124+
- [x] Do the same thing for games, but use Workspace Manager.
125125
- [ ] 100% of the game data needs to be generated from Workspace Manager
126126
- [ ] No Tool should be used independantly
127127

games/AITargetDummy/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
<title>AI Target Dummy</title>
1212
<link rel="stylesheet" href="/src/engine/ui/baseLayout.css" />
1313
<link rel="stylesheet" href="../../src/engine/theme/main.css" />
14+
<script type="module">
15+
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
16+
enforceWorkspaceGameLaunch("AITargetDummy");
17+
</script>
1418
</head>
1519
<body class="hub-page-games">
1620
<div id="shared-theme-header"></div>

games/Asteroids/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
<link rel="stylesheet" href="/src/engine/ui/baseLayout.css" />
1313
<link rel="stylesheet" href="/games/shared/styles/vectorBattleFont.css" />
1414
<link rel="stylesheet" href="../../src/engine/theme/main.css" />
15+
<script type="module">
16+
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
17+
enforceWorkspaceGameLaunch("Asteroids");
18+
</script>
1519
</head>
1620
<body class="hub-page-games">
1721
<div id="shared-theme-header"></div>

games/GravityWell/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
<title>Gravity Well</title>
1212
<link rel="stylesheet" href="/src/engine/ui/baseLayout.css" />
1313
<link rel="stylesheet" href="../../src/engine/theme/main.css" />
14+
<script type="module">
15+
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
16+
enforceWorkspaceGameLaunch("GravityWell");
17+
</script>
1418
</head>
1519
<body class="hub-page-games">
1620
<div id="shared-theme-header"></div>

0 commit comments

Comments
 (0)