Skip to content

Commit 5e5f2e9

Browse files
author
DavidQ
committed
Continued and completed another Phase 5 chunk.
What I implemented: - Added runtime hydrator so hosted games consume normalized Workspace context: - [workspaceGameRuntimeHydrator.js](C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\games\shared\workspaceGameRuntimeHydrator.js) - Wired hydrator into all 11 launchable game pages (next to the existing launch guard), including: - [Asteroids/index.html](C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\games\Asteroids\index.html) - [Pong/index.html](C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\games\Pong\index.html) - [vector-arcade-sample/index.html](C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\games\vector-arcade-sample\index.html) - and the rest of the launchable set from `games.index.metadata.json` - Updated roadmap marker: - [MASTER_ROADMAP_SAMPLES2TOOLS.md](C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\docs\dev\roadmaps\MASTER_ROADMAP_SAMPLES2TOOLS.md) - Marked `100% of the game data needs to be generated from Workspace Manager` as complete. - Added execution-backed report: - [samples2tools_batch_44_validation.txt](C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\docs\dev\reports\samples2tools_batch_44_validation.txt) (`PASS`) - [samples2tools_batch_44_summary.txt](C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\docs\dev\reports\samples2tools_batch_44_summary.txt) Current remaining unchecked roadmap item: - `No Tool should be used independantly` Commit comment: `Phase 5 runtime-data slice: add shared Workspace game runtime hydrator, wire it into all launchable game pages, and validate Workspace-generated hosted context contract end-to-end (batch-44 PASS).`
1 parent 24d32c0 commit 5e5f2e9

15 files changed

Lines changed: 131 additions & 1 deletion

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Samples2Tools batch 44 summary
2+
Generated: 2026-04-24T22:38:54.623Z
3+
Purpose: make hosted game runtime metadata originate from Workspace Manager context and normalize it for game runtime consumption.
4+
5+
Completed this batch:
6+
- Added shared game runtime hydrator and wired it across all launchable game pages
7+
- Kept strict launch guard + host context validation in front of runtime hydration
8+
- Confirmed Workspace Manager host context is now the source for hosted game runtime metadata contract
9+
10+
Primary validation artifact:
11+
- docs/dev/reports/samples2tools_batch_44_validation.txt (PASS)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Samples2Tools batch 44 validation
2+
Generated: 2026-04-24T22:38:54.623Z
3+
Scope: Phase 5 game runtime data ownership shift to Workspace-generated hosted context.
4+
5+
- [PASS] Workspace Manager writes full game metadata into host context state :: tools/Workspace Manager/main.js
6+
- [PASS] Launch guard validates hostContextId and matching host game id :: games/shared/workspaceGameLaunchGuard.js
7+
- [PASS] Runtime context reader returns workspace game payload :: games/shared/workspaceGameRuntimeContext.js
8+
- [PASS] Hydrator exports normalized runtime contract :: games/shared/workspaceGameRuntimeHydrator.js
9+
- [PASS] All launchable games include guard + hydrator wiring :: launchable=11, coverageIssues=0, missingFiles=0
10+
11+
Checks: 5
12+
Failures: 0
13+
Result: PASS

docs/dev/roadmaps/MASTER_ROADMAP_SAMPLES2TOOLS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@
122122

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

128128
### Phase 6 - Phase 20 Decommission (After Parity)

games/AITargetDummy/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
1616
enforceWorkspaceGameLaunch("AITargetDummy");
1717
</script>
18+
<script type="module">
19+
import { hydrateWorkspaceGameRuntime } from "/games/shared/workspaceGameRuntimeHydrator.js";
20+
hydrateWorkspaceGameRuntime("AITargetDummy");
21+
</script>
22+
1823
</head>
1924
<body class="hub-page-games">
2025
<div id="shared-theme-header"></div>

games/Asteroids/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
1717
enforceWorkspaceGameLaunch("Asteroids");
1818
</script>
19+
<script type="module">
20+
import { hydrateWorkspaceGameRuntime } from "/games/shared/workspaceGameRuntimeHydrator.js";
21+
hydrateWorkspaceGameRuntime("Asteroids");
22+
</script>
23+
1924
</head>
2025
<body class="hub-page-games">
2126
<div id="shared-theme-header"></div>

games/GravityWell/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
1616
enforceWorkspaceGameLaunch("GravityWell");
1717
</script>
18+
<script type="module">
19+
import { hydrateWorkspaceGameRuntime } from "/games/shared/workspaceGameRuntimeHydrator.js";
20+
hydrateWorkspaceGameRuntime("GravityWell");
21+
</script>
22+
1823
</head>
1924
<body class="hub-page-games">
2025
<div id="shared-theme-header"></div>

games/Pacman/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
1616
enforceWorkspaceGameLaunch("Pacman");
1717
</script>
18+
<script type="module">
19+
import { hydrateWorkspaceGameRuntime } from "/games/shared/workspaceGameRuntimeHydrator.js";
20+
hydrateWorkspaceGameRuntime("Pacman");
21+
</script>
22+
1823
</head>
1924
<body class="hub-page-games">
2025
<div id="shared-theme-header"></div>

games/SolarSystem/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
1616
enforceWorkspaceGameLaunch("SolarSystem");
1717
</script>
18+
<script type="module">
19+
import { hydrateWorkspaceGameRuntime } from "/games/shared/workspaceGameRuntimeHydrator.js";
20+
hydrateWorkspaceGameRuntime("SolarSystem");
21+
</script>
22+
1823
</head>
1924
<body class="hub-page-games">
2025
<div id="shared-theme-header"></div>

games/SpaceDuel/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
1616
enforceWorkspaceGameLaunch("SpaceDuel");
1717
</script>
18+
<script type="module">
19+
import { hydrateWorkspaceGameRuntime } from "/games/shared/workspaceGameRuntimeHydrator.js";
20+
hydrateWorkspaceGameRuntime("SpaceDuel");
21+
</script>
22+
1823
</head>
1924
<body class="hub-page-games">
2025
<div id="shared-theme-header"></div>

games/SpaceInvaders/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import { enforceWorkspaceGameLaunch } from "/games/shared/workspaceGameLaunchGuard.js";
1616
enforceWorkspaceGameLaunch("SpaceInvaders");
1717
</script>
18+
<script type="module">
19+
import { hydrateWorkspaceGameRuntime } from "/games/shared/workspaceGameRuntimeHydrator.js";
20+
hydrateWorkspaceGameRuntime("SpaceInvaders");
21+
</script>
22+
1823
</head>
1924
<body class="hub-page-games">
2025
<div id="shared-theme-header"></div>

0 commit comments

Comments
 (0)