Skip to content

Commit 445593c

Browse files
author
DavidQ
committed
PR 9.2: rollout single-manifest model to all games
1 parent 317280f commit 445593c

9 files changed

Lines changed: 218 additions & 24 deletions

File tree

docs/dev/reports/launch_smoke_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Launch Smoke Report
22

3-
Generated: 2026-04-26T22:43:41.937Z
3+
Generated: 2026-04-26T22:58:10.794Z
44

55
Filters: games=true, samples=true, tools=true, sampleRange=all
66

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
MODEL: GPT-5.3-codex
22

33
TASK:
4-
- launch each game
5-
- fix failures
6-
- ensure manifest-driven load works
4+
Apply single-manifest model to all games.
5+
6+
- replicate Asteroids pattern
7+
- inline JSON into manifest
8+
- fix references
9+
- delete only safe JSON
10+
- no runtime break
711
- no start_of_day changes
812

913
OUTPUT:
10-
tmp/BUILD_PR_LEVEL_9_3_MULTI_GAME_LAUNCH_VALIDATION_AND_FIX_delta.zip
14+
tmp/BUILD_PR_LEVEL_9_2_SINGLE_MANIFEST_CONSOLIDATION_ROLLOUT_ALL_GAMES_delta.zip
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
PR 9.3: multi-game launch validation and fix
1+
PR 9.2: rollout single-manifest model to all games

games/AITargetDummy/game.manifest.json

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,18 @@
6767
}
6868
],
6969
"toolsManifestAssets": []
70-
}
70+
},
71+
"tools": [
72+
{
73+
"toolId": "asset-browser",
74+
"assets": [
75+
{
76+
"id": "image.ai-target-dummy.preview",
77+
"path": "games/AITargetDummy/assets/images/preview.svg",
78+
"kind": "image",
79+
"source": "workspace-manager"
80+
}
81+
]
82+
}
83+
]
7184
}

games/GravityWell/game.manifest.json

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,18 @@
6767
}
6868
],
6969
"toolsManifestAssets": []
70-
}
70+
},
71+
"tools": [
72+
{
73+
"toolId": "asset-browser",
74+
"assets": [
75+
{
76+
"id": "image.gravitywell.preview",
77+
"path": "games/GravityWell/assets/images/preview.svg",
78+
"kind": "image",
79+
"source": "workspace-manager"
80+
}
81+
]
82+
}
83+
]
7184
}

games/Pacman/game.manifest.json

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,5 +79,24 @@
7979
}
8080
],
8181
"toolsManifestAssets": []
82-
}
82+
},
83+
"tools": [
84+
{
85+
"toolId": "asset-browser",
86+
"assets": [
87+
{
88+
"id": "image.pacman.preview-svg",
89+
"path": "games/Pacman/assets/images/preview.svg",
90+
"kind": "image",
91+
"source": "workspace-manager"
92+
},
93+
{
94+
"id": "image.pacman.preview-png",
95+
"path": "games/Pacman/assets/images/preview.png",
96+
"kind": "image",
97+
"source": "workspace-manager"
98+
}
99+
]
100+
}
101+
]
83102
}

games/SpaceDuel/game.manifest.json

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,59 @@
244244
}
245245
}
246246
]
247+
},
248+
{
249+
"toolId": "asset-browser",
250+
"assets": [
251+
{
252+
"id": "audio.space-duel.thrust",
253+
"path": "games/SpaceDuel/assets/audio/effects/thrust.wav",
254+
"kind": "audio",
255+
"source": "workspace-manager"
256+
},
257+
{
258+
"id": "audio.space-duel.fire",
259+
"path": "games/SpaceDuel/assets/audio/effects/fire.wav",
260+
"kind": "audio",
261+
"source": "workspace-manager"
262+
},
263+
{
264+
"id": "audio.space-duel.explosion",
265+
"path": "games/SpaceDuel/assets/audio/effects/explosion.wav",
266+
"kind": "audio",
267+
"source": "workspace-manager"
268+
},
269+
{
270+
"id": "audio.space-duel.player-death",
271+
"path": "games/SpaceDuel/assets/audio/effects/player_death.wav",
272+
"kind": "audio",
273+
"source": "workspace-manager"
274+
},
275+
{
276+
"id": "audio.space-duel.enemy-split",
277+
"path": "games/SpaceDuel/assets/audio/effects/enemy_split.wav",
278+
"kind": "audio",
279+
"source": "workspace-manager"
280+
},
281+
{
282+
"id": "audio.space-duel.bonus",
283+
"path": "games/SpaceDuel/assets/audio/effects/bonus.wav",
284+
"kind": "audio",
285+
"source": "workspace-manager"
286+
},
287+
{
288+
"id": "audio.space-duel.start",
289+
"path": "games/SpaceDuel/assets/audio/effects/start.wav",
290+
"kind": "audio",
291+
"source": "workspace-manager"
292+
},
293+
{
294+
"id": "audio.space-duel.game-over",
295+
"path": "games/SpaceDuel/assets/audio/effects/game_over.wav",
296+
"kind": "audio",
297+
"source": "workspace-manager"
298+
}
299+
]
247300
}
248301
]
249302
}

games/SpaceInvaders/game.manifest.json

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,65 @@
246246
}
247247
}
248248
]
249+
},
250+
{
251+
"toolId": "asset-browser",
252+
"assets": [
253+
{
254+
"id": "audio.space-invaders.shoot",
255+
"path": "games/SpaceInvaders/assets/audio/effects/shoot.wav",
256+
"kind": "audio",
257+
"source": "workspace-manager"
258+
},
259+
{
260+
"id": "audio.space-invaders.invaderkilled",
261+
"path": "games/SpaceInvaders/assets/audio/effects/invaderkilled.wav",
262+
"kind": "audio",
263+
"source": "workspace-manager"
264+
},
265+
{
266+
"id": "audio.space-invaders.explosion",
267+
"path": "games/SpaceInvaders/assets/audio/effects/explosion.wav",
268+
"kind": "audio",
269+
"source": "workspace-manager"
270+
},
271+
{
272+
"id": "audio.space-invaders.fastinvader1",
273+
"path": "games/SpaceInvaders/assets/audio/effects/fastinvader1.wav",
274+
"kind": "audio",
275+
"source": "workspace-manager"
276+
},
277+
{
278+
"id": "audio.space-invaders.fastinvader2",
279+
"path": "games/SpaceInvaders/assets/audio/effects/fastinvader2.wav",
280+
"kind": "audio",
281+
"source": "workspace-manager"
282+
},
283+
{
284+
"id": "audio.space-invaders.fastinvader3",
285+
"path": "games/SpaceInvaders/assets/audio/effects/fastinvader3.wav",
286+
"kind": "audio",
287+
"source": "workspace-manager"
288+
},
289+
{
290+
"id": "audio.space-invaders.fastinvader4",
291+
"path": "games/SpaceInvaders/assets/audio/effects/fastinvader4.wav",
292+
"kind": "audio",
293+
"source": "workspace-manager"
294+
},
295+
{
296+
"id": "audio.space-invaders.ufo-lowpitch",
297+
"path": "games/SpaceInvaders/assets/audio/effects/ufo_lowpitch.wav",
298+
"kind": "audio",
299+
"source": "workspace-manager"
300+
},
301+
{
302+
"id": "audio.space-invaders.ufo-highpitch",
303+
"path": "games/SpaceInvaders/assets/audio/effects/ufo_highpitch.wav",
304+
"kind": "audio",
305+
"source": "workspace-manager"
306+
}
307+
]
249308
}
250309
]
251310
}

games/vector-arcade-sample/game.manifest.json

Lines changed: 48 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,8 @@
213213
},
214214
"tools": [
215215
{
216-
"toolId": "asset-browser",
217-
"jsonAssets": [
216+
"toolId": "primitive-skin-editor",
217+
"palettes": [
218218
{
219219
"id": "palette.vector-arcade.primary",
220220
"sourcePath": "games/vector-arcade-sample/assets/data/palettes/vector-native-primary.palette.json",
@@ -247,16 +247,12 @@
247247
}
248248
]
249249
}
250-
},
251-
{
252-
"id": "parallax.vector-arcade.backdrop",
253-
"sourcePath": "games/vector-arcade-sample/assets/data/parallax/template-backdrop.parallax.json",
254-
"data": {
255-
"name": "Sample Backdrop Layer",
256-
"role": "backdrop",
257-
"imageId": "image.template.backdrop"
258-
}
259-
},
250+
}
251+
]
252+
},
253+
{
254+
"toolId": "sprite-editor",
255+
"sprites": [
260256
{
261257
"id": "sprite.vector-arcade.player",
262258
"sourcePath": "games/vector-arcade-sample/assets/data/sprites/template-player.sprite.json",
@@ -281,7 +277,12 @@
281277
"#f59e0b"
282278
]
283279
}
284-
},
280+
}
281+
]
282+
},
283+
{
284+
"toolId": "tile-map-editor",
285+
"maps": [
285286
{
286287
"id": "tilemap.vector-arcade.arena",
287288
"sourcePath": "games/vector-arcade-sample/assets/data/tilemaps/template-arena.tilemap.json",
@@ -299,7 +300,9 @@
299300
"victory-conditions"
300301
]
301302
}
302-
},
303+
}
304+
],
305+
"tilesets": [
303306
{
304307
"id": "tilemap.vector-arcade.ui",
305308
"sourcePath": "games/vector-arcade-sample/assets/data/tilemaps/template-ui.tileset.json",
@@ -313,7 +316,26 @@
313316
"status-panel"
314317
]
315318
}
316-
},
319+
}
320+
]
321+
},
322+
{
323+
"toolId": "parallax-editor",
324+
"parallaxLevels": [
325+
{
326+
"id": "parallax.vector-arcade.backdrop",
327+
"sourcePath": "games/vector-arcade-sample/assets/data/parallax/template-backdrop.parallax.json",
328+
"data": {
329+
"name": "Sample Backdrop Layer",
330+
"role": "backdrop",
331+
"imageId": "image.template.backdrop"
332+
}
333+
}
334+
]
335+
},
336+
{
337+
"toolId": "vector-asset-studio",
338+
"vectors": [
317339
{
318340
"id": "vector.vector-arcade.hud",
319341
"sourcePath": "games/vector-arcade-sample/assets/data/vectors/template-hud.vector.json",
@@ -445,6 +467,17 @@
445467
}
446468
]
447469
},
470+
{
471+
"toolId": "asset-browser",
472+
"assets": [
473+
{
474+
"id": "image.vector-arcade.backdrop-svg",
475+
"path": "games/vector-arcade-sample/assets/data/parallax/template-backdrop.svg",
476+
"kind": "image",
477+
"source": "workspace-manager"
478+
}
479+
]
480+
},
448481
{
449482
"toolId": "preview-generator-tool",
450483
"projectConfigs": [

0 commit comments

Comments
 (0)