Skip to content

Commit 79c8d2d

Browse files
author
DavidQ
committed
PR 8.33: Legacy catalog parity and removal
- Removed safe legacy catalogs - Retained required ones
1 parent 1b474ef commit 79c8d2d

9 files changed

Lines changed: 178 additions & 73 deletions

asteroids-json-list.txt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
games\Asteroids\assets\images\bezel.stretch.override.json
2+
games\Asteroids\assets\palettes\asteroids-classic.palette.json
3+
games\Asteroids\assets\palettes\asteroids-hud.palette.json
4+
games\Asteroids\assets\palettes\hud.json
5+
games\Asteroids\assets\parallax\data\overlay.data.json
6+
games\Asteroids\assets\parallax\data\title.data.json
7+
games\Asteroids\assets\parallax\overlay.json
8+
games\Asteroids\assets\parallax\title.json
9+
games\Asteroids\assets\sprites\data\demo.data.json
10+
games\Asteroids\assets\sprites\demo.json
11+
games\Asteroids\assets\tilemaps\data\stage.data.json
12+
games\Asteroids\assets\tilemaps\stage.json
13+
games\Asteroids\assets\tilesets\ui.json
14+
games\Asteroids\assets\tools.manifest.json
15+
games\Asteroids\assets\vectors\asteroid-large.json
16+
games\Asteroids\assets\vectors\asteroid-medium.json
17+
games\Asteroids\assets\vectors\asteroid-small.json
18+
games\Asteroids\assets\vectors\data\library.data.json
19+
games\Asteroids\assets\vectors\ship.json
20+
games\Asteroids\assets\vectors\title.json
21+
games\Asteroids\assets\workspace.asset-catalog.json
22+
games\Asteroids\game.manifest.json
Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,6 @@
1-
# Expected Codex Return / Delta Template
1+
# Expected Codex Output
22

3-
## Expected Changed Files
4-
- Source file(s) owning game preview/direct launch routing
5-
- `docs/dev/reports/level_8_32_direct_launch_hook_and_asteroids_parity_report.md`
6-
- `docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md` if status update needed
7-
8-
## Expected Validation Summary
9-
- `redirect_hook_found=true`
10-
- `preview_routes_to_workspace_manager=false`
11-
- `bouncing_ball_direct_launch=true`
12-
- `asteroids_direct_launch=true`
13-
- `space_invaders_direct_launch=true`
14-
- `workspace_manager_explicit_action_preserved=true`
15-
- `uses_game_query_for_workspace_manager=false`
16-
- `uses_gameId_query_for_workspace_manager=true`
17-
- `validators_added=0`
18-
- `start_of_day_changes=0`
19-
20-
## Expected Delta ZIP
21-
Codex must create:
22-
23-
`tmp/BUILD_PR_LEVEL_8_32_DIRECT_GAME_LAUNCH_HOOK_REMOVAL_AND_ASTEROIDS_PARITY_delta.zip`
3+
- legacy_catalogs_checked = ALL
4+
- legacy_catalogs_deleted = <count>
5+
- legacy_catalogs_retained = <count>
6+
- runtime_breakage = 0
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Level 8.33 Legacy Catalog Parity Report
2+
3+
## Scope
4+
- Compared `game.manifest.json` parity against legacy catalogs for all game folders with `index.html`.
5+
- Audited safe-removal conditions for:
6+
- `games/*/assets/workspace.asset-catalog.json`
7+
- `games/*/assets/tools.manifest.json`
8+
- Deletion rule applied: remove only if no runtime/script/test/tool dependency and no manifest parity loss.
9+
10+
## Per-Game Parity
11+
| Game | `workspace.asset-catalog.json` | Parity vs `game.manifest.json` | `tools.manifest.json` | Parity vs `game.manifest.json` | Safe Removal |
12+
|---|---|---|---|---|---|
13+
| `_template` | n/a | n/a | present | n/a (`domains` empty) | no |
14+
| `AITargetDummy` | present | pass (`1/1` assets covered) | n/a | n/a | no |
15+
| `Asteroids` | present | pass (`12/12` assets covered) | present | pass (`9/9` entries covered) | no |
16+
| `Bouncing-ball` | present | pass (`2/2` assets covered) | n/a | n/a | no |
17+
| `Breakout` | present | pass (`2/2` assets covered) | n/a | n/a | no |
18+
| `GravityWell` | present | pass (`1/1` assets covered) | n/a | n/a | no |
19+
| `Pacman` | present | pass (`2/2` assets covered) | n/a | n/a | no |
20+
| `Pong` | present | pass (`2/2` assets covered) | n/a | n/a | no |
21+
| `SolarSystem` | present | pass (`2/2` assets covered) | n/a | n/a | no |
22+
| `SpaceDuel` | present | pass (`9/9` assets covered) | n/a | n/a | no |
23+
| `SpaceInvaders` | present | pass (`10/10` assets covered) | n/a | n/a | no |
24+
| `vector-arcade-sample` | present | pass (`11/11` assets covered) | n/a | n/a | no |
25+
26+
## Removable Files Identified
27+
- none
28+
29+
## Deleted Files
30+
- none
31+
32+
## Retained Legacy Files and Reasons
33+
### `workspace.asset-catalog.json` files (all present game folders)
34+
- retained for runtime/tooling dependency safety.
35+
- dependency evidence (runtime/tooling convention by filename):
36+
- `games/shared/workspaceGameAssetCatalog.js`
37+
- `games/shared/gameSkinLoader.js`
38+
- `tools/Workspace Manager/main.js`
39+
- `tools/Asset Browser/main.js`
40+
- `tools/Asset Pipeline Tool/main.js`
41+
- `tools/Skin Editor/main.js`
42+
- `tools/shared/platformShell.js`
43+
- `scripts/sync-tool-hints-from-workspace-manager.mjs`
44+
45+
### `tools.manifest.json` files
46+
- `games/Asteroids/assets/tools.manifest.json` retained:
47+
- runtime/tooling/test/script references remain, including:
48+
- `tools/shared/pipeline/assetManifestLoader.js`
49+
- `tools/shared/pipeline/gameAssetManifestCoordinator.js`
50+
- `tools/shared/pipeline/assetPipelineTooling.js`
51+
- `scripts/validate-asset-ownership-strategy.mjs`
52+
- `tests/tools/GameAssetManifestDiscovery.test.mjs`
53+
- `tests/tools/AssetPipelineTooling.test.mjs`
54+
- `games/_template/assets/tools.manifest.json` retained:
55+
- template contract/tooling dependency:
56+
- `scripts/validate-games-template-contract.mjs`
57+
- `scripts/PS/New-Game-from-Template.ps1`
58+
59+
## Safety Outcome
60+
- Manifest parity is proven for all currently present legacy catalogs.
61+
- Safe-removal gate is **not met** due active runtime/tooling/test/script dependencies.
62+
- No deletions were performed to avoid runtime breakage.
63+
64+
## Constraints Check
65+
- `runtime_breakage=none`
66+
- `runtime_code_changes=0`
67+
- `start_of_day_changes=0`
68+
- `validators_added=0`

docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -882,7 +882,7 @@
882882
- [x] Manifest SSoT audit across game workspace catalogs/tool manifests is complete.
883883
- [x] Asteroids-first `game.manifest.json` SSoT example implemented (palette + HUD typing + bezel override wiring).
884884
- [x] Asteroids JSON cleanup and manifest wiring audit is complete (manifest coverage + deferred legacy rationale documented).
885-
- [.] Asteroids legacy catalog parity verification is in progress.
885+
- [x] Asteroids legacy catalog parity verification is complete.
886886
- [x] All-games `game.manifest.json` SSoT rollout completed with legacy catalogs retained.
887887
- [x] Asteroids preview direct launch separation from Workspace Manager remains valid.
888888
- [x] Direct game launch hook removal prevents normal preview redirects to Workspace Manager.
Lines changed: 8 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,14 @@
11
MODEL: GPT-5.3-codex
2-
REASONING: high
32

43
TASK:
5-
Apply BUILD_PR_LEVEL_8_32_DIRECT_GAME_LAUNCH_HOOK_REMOVAL_AND_ASTEROIDS_PARITY.
4+
Perform legacy catalog parity and safe removal.
65

76
STEPS:
8-
1. Read docs/pr/PLAN_PR_LEVEL_8_32_DIRECT_GAME_LAUNCH_HOOK_REMOVAL_AND_ASTEROIDS_PARITY.md.
9-
2. Read docs/pr/BUILD_PR_LEVEL_8_32_DIRECT_GAME_LAUNCH_HOOK_REMOVAL_AND_ASTEROIDS_PARITY.md.
10-
3. Search for the redirect hook using:
11-
- "Workspace Manager/index.html"
12-
- "mount=game"
13-
- "?game="
14-
- "gameId"
15-
- "open with workspace"
16-
- "launchGame"
17-
- "preview"
18-
4. Find why direct preview launches redirect to Workspace Manager.
19-
5. Remove/disable that redirect for normal game preview clicks.
20-
6. Preserve explicit Workspace Manager action only.
21-
7. If shared helper mixes concerns, split behavior:
22-
- direct game launch helper
23-
- workspace manager launch helper
24-
8. Correct Workspace Manager query name to gameId wherever explicit Workspace Manager action remains.
25-
9. Smoke check:
26-
- SpaceInvaders direct launch remains working
27-
- Bouncing Ball direct launch works
28-
- Asteroids direct launch works
29-
- Pong direct launch works if present
30-
- Breakout direct launch works if present
31-
10. Continue Asteroids parity cleanup only if safe and already scoped by 8.31.
32-
11. Update docs/dev/reports/level_8_32_direct_launch_hook_and_asteroids_parity_report.md.
33-
12. Update docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md status only:
34-
- [ ] -> [.]
35-
- [.] -> [x]
36-
- no prose rewrite/delete
37-
13. Do not add validators.
38-
14. Do not modify start_of_day.
39-
15. Create Codex delta ZIP:
40-
tmp/BUILD_PR_LEVEL_8_32_DIRECT_GAME_LAUNCH_HOOK_REMOVAL_AND_ASTEROIDS_PARITY_delta.zip
7+
1. Compare game.manifest.json with legacy catalogs
8+
2. Identify removable files
9+
3. Delete ONLY if safe
10+
4. Document everything
4111

42-
ACCEPTANCE:
43-
- Game preview click launches game directly.
44-
- No normal preview sends browser to Workspace Manager.
45-
- Explicit Workspace Manager action still works with gameId.
46-
- Delta ZIP exists.
12+
DO NOT:
13+
- break runtime
14+
- modify start_of_day
Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
BUILD_PR_LEVEL_8_32_DIRECT_GAME_LAUNCH_HOOK_REMOVAL_AND_ASTEROIDS_PARITY
1+
PR 8.33: Legacy catalog parity and removal
22

3-
- Removed bad preview-to-Workspace-Manager redirect hook
4-
- Restored direct game launch behavior
5-
- Preserved explicit Workspace Manager action
6-
- Continued Asteroids parity tracking
7-
8-
PR Details:
9-
- Fixes Bouncing Ball and other games redirecting to Workspace Manager
10-
- No validators
11-
- No start_of_day changes
3+
- Removed safe legacy catalogs
4+
- Retained required ones
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# BUILD_PR_LEVEL_8_33_LEGACY_CATALOG_PARITY_AND_REMOVAL
2+
3+
## Objective
4+
Eliminate duplicate/legacy manifest sources where safe.
5+
6+
## Targets
7+
- games/*/assets/workspace.asset-catalog.json
8+
- games/*/assets/tools.manifest.json
9+
10+
## Required Steps
11+
12+
### 1. Parity Check
13+
For each game:
14+
- compare contents of legacy catalogs with game.manifest.json
15+
- ensure all referenced assets exist in game.manifest.json
16+
17+
### 2. Safe Removal Rule
18+
Delete legacy catalog ONLY IF:
19+
- no runtime reference
20+
- no missing asset after removal
21+
- no tool dependency
22+
23+
### 3. If NOT Safe
24+
- retain file
25+
- mark as legacy in report
26+
27+
## Report
28+
Create:
29+
docs/dev/reports/level_8_33_legacy_catalog_parity_report.md
30+
31+
Include:
32+
- per-game parity status
33+
- deleted files
34+
- retained files
35+
- reasons for retention
36+
37+
## Roadmap
38+
Update status only:
39+
- advance legacy catalog cleanup [ ] -> [.]
40+
- or [.] -> [x]
41+
42+
## Acceptance
43+
- no broken game launch
44+
- only safe deletions performed
45+
- all removals documented
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# PLAN_PR_LEVEL_8_33_LEGACY_CATALOG_PARITY_AND_REMOVAL
2+
3+
## Purpose
4+
After direct launch fix and Asteroids cleanup, safely remove legacy catalogs only where parity with game.manifest.json is proven.
5+
6+
## Scope
7+
- Compare game.manifest.json vs:
8+
- workspace.asset-catalog.json
9+
- tools.manifest.json
10+
- Remove legacy catalogs only when:
11+
- no runtime dependency
12+
- no data loss
13+
- Advance roadmap status only
14+
15+
## Non-Goals
16+
- No unsafe deletions
17+
- No runtime rewrite
18+
- No validators
19+
- No start_of_day changes

scripts/PS/find_json.ps1

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
$project = "C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming"
2+
3+
Get-ChildItem "$project\games\Asteroids" -Recurse -Filter *.json |
4+
Sort-Object FullName |
5+
ForEach-Object {
6+
$_.FullName.Replace("$project\", "")
7+
} | Set-Content "$project\asteroids-json-list.txt"

0 commit comments

Comments
 (0)