Skip to content

Commit 8925033

Browse files
committed
oops - PR_26155_106-109-tool-image-registry
1 parent 58df454 commit 8925033

4 files changed

Lines changed: 213 additions & 0 deletions

File tree

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Tool Image Coverage Report
2+
3+
| Tool ID | Tool Label | Badge Path | Badge Exists | Tool Path | Tool Image Exists | Fallback Used |
4+
| --- | --- | --- | --- | --- | --- | --- |
5+
| ai-assistant | AI Assistant | /assets/theme-v2/images/badges/ai-assistant.png | yes | /assets/theme-v2/images/tools/ai-assistant.png | yes | no |
6+
| project-workspace | Project Workspace | /assets/theme-v2/images/badges/project-workspace.png | yes | /assets/theme-v2/images/tools/project-workspace.png | yes | no |
7+
| game-design | Game Design | /assets/theme-v2/images/badges/game-design.png | yes | /assets/theme-v2/images/tools/game-design.png | yes | no |
8+
| game-configuration | Game Configuration | /assets/theme-v2/images/badges/game-configuration.png | yes | /assets/theme-v2/images/tools/game-configuration.png | yes | no |
9+
| assets | Assets | /assets/theme-v2/images/badges/assets.png | yes | /assets/theme-v2/images/tools/assets.png | yes | no |
10+
| colors | Colors | /assets/theme-v2/images/badges/colors.png | yes | /assets/theme-v2/images/tools/colors.png | yes | no |
11+
| fonts | Fonts | /assets/theme-v2/images/badges/fonts.png | yes | /assets/theme-v2/images/tools/fonts.png | yes | no |
12+
| sprites | Sprites | /assets/theme-v2/images/badges/sprites.png | no | /assets/theme-v2/images/tools/sprites.png | yes | yes |
13+
| characters | Characters | /assets/theme-v2/images/badges/characters.png | yes | /assets/theme-v2/images/tools/characters.png | yes | no |
14+
| objects | Objects | /assets/theme-v2/images/badges/objects.png | yes | /assets/theme-v2/images/tools/objects.png | yes | no |
15+
| worlds | Worlds | /assets/theme-v2/images/badges/worlds.png | yes | /assets/theme-v2/images/tools/worlds.png | yes | no |
16+
| animations | Animations | /assets/theme-v2/images/badges/animations.png | yes | /assets/theme-v2/images/tools/animation.png | yes | no |
17+
| audio | Audio | /assets/theme-v2/images/badges/audio.png | yes | /assets/theme-v2/images/tools/audio.png | yes | no |
18+
| music | Music | /assets/theme-v2/images/badges/music.png | no | /assets/theme-v2/images/tools/music.png | yes | yes |
19+
| voices | Voices | /assets/theme-v2/images/badges/voices.png | yes | /assets/theme-v2/images/tools/voices.png | yes | no |
20+
| videos | Videos | /assets/theme-v2/images/badges/videos.png | no | /assets/theme-v2/images/tools/videos.png | yes | yes |
21+
| build-game | Build Game | /assets/theme-v2/images/badges/build-game.png | yes | /assets/theme-v2/images/tools/build-game.png | yes | no |
22+
| game-testing | Game Testing | /assets/theme-v2/images/badges/game-testing.png | yes | /assets/theme-v2/images/tools/game-testing.png | yes | no |
23+
| controls | Controls | /assets/theme-v2/images/badges/controls.png | yes | /assets/theme-v2/images/tools/controls.png | yes | no |
24+
| hitboxes | Hitboxes | /assets/theme-v2/images/badges/hitboxes.png | yes | /assets/theme-v2/images/tools/hitboxes.png | yes | no |
25+
| saved-data | Saved Data | /assets/theme-v2/images/badges/saved-data.png | no | /assets/theme-v2/images/tools/saved-data.png | yes | yes |
26+
| debug | Debug | /assets/theme-v2/images/badges/debug.png | yes | /assets/theme-v2/images/tools/debug.png | yes | no |
27+
| performance | Performance | /assets/theme-v2/images/badges/performance.png | no | /assets/theme-v2/images/tools/performance.png | yes | yes |
28+
| events | Events | /assets/theme-v2/images/badges/events.png | yes | /assets/theme-v2/images/tools/events.png | yes | no |
29+
| publish | Publish | /assets/theme-v2/images/badges/publish.png | no | /assets/theme-v2/images/tools/publish.png | yes | yes |
30+
| marketplace | Marketplace | /assets/theme-v2/images/badges/marketplace.png | yes | /assets/theme-v2/images/tools/marketplace.png | yes | no |
31+
| community | Community | /assets/theme-v2/images/badges/community.png | yes | /assets/theme-v2/images/tools/community.png | yes | no |
32+
| languages | Languages | /assets/theme-v2/images/badges/languages.png | yes | /assets/theme-v2/images/tools/languages.png | yes | no |
33+
| achievements | Achievements | /assets/theme-v2/images/badges/achievement.png | yes | /assets/theme-v2/images/tools/achievement.png | yes | no |
34+
| ratings | Ratings | /assets/theme-v2/images/badges/ratings.png | no | /assets/theme-v2/images/tools/ratings.png | yes | yes |
35+
| cloud | Cloud | /assets/theme-v2/images/badges/cloud.png | yes | /assets/theme-v2/images/tools/cloud.png | yes | no |
36+
| code | Custom Extensions | /assets/theme-v2/images/badges/code.png | yes | /assets/theme-v2/images/tools/code.png | yes | no |
37+
| midi | MIDI | /assets/theme-v2/images/badges/midi.png | no | /assets/theme-v2/images/tools/midi.png | yes | yes |
38+
| particles | Particles | /assets/theme-v2/images/badges/particles.png | no | /assets/theme-v2/images/tools/particles.png | yes | yes |
39+
| audio-effects | Audio Effects | /assets/theme-v2/images/badges/audio-effects.png | yes | /assets/theme-v2/images/tools/audio-effects.png | yes | no |
40+
| speech-to-text | Voice Capture | /assets/theme-v2/images/badges/speech-to-text.png | no | /assets/theme-v2/images/tools/speech-to-text.png | yes | yes |
41+
| text-to-speech | Voice Output | /assets/theme-v2/images/badges/text-to-speech.png | no | /assets/theme-v2/images/tools/text-to-speech.png | no | yes |
42+
| users | Users | /assets/theme-v2/images/badges/users.png | no | /assets/theme-v2/images/tools/users.png | yes | yes |
43+
| environments | Environments | /assets/theme-v2/images/badges/environments.png | yes | /assets/theme-v2/images/tools/environments.png | yes | no |
44+
| game-migration | Game Migration | /assets/theme-v2/images/badges/game-migration.png | yes | /assets/theme-v2/images/tools/game-migration.png | yes | no |
45+
| platform-settings | Platform Settings | /assets/theme-v2/images/badges/platform-settings.png | no | /assets/theme-v2/images/tools/platform-settings.png | yes | yes |
46+
47+
## Missing Images
48+
49+
- sprites (Sprites): badge missing, tool exists
50+
- music (Music): badge missing, tool exists
51+
- videos (Videos): badge missing, tool exists
52+
- saved-data (Saved Data): badge missing, tool exists
53+
- performance (Performance): badge missing, tool exists
54+
- publish (Publish): badge missing, tool exists
55+
- ratings (Ratings): badge missing, tool exists
56+
- midi (MIDI): badge missing, tool exists
57+
- particles (Particles): badge missing, tool exists
58+
- speech-to-text (Voice Capture): badge missing, tool exists
59+
- text-to-speech (Voice Output): badge missing, tool missing
60+
- users (Users): badge missing, tool exists
61+
- platform-settings (Platform Settings): badge missing, tool exists
62+
63+
## Validation Notes
64+
65+
- Coverage generated from `getToolImageCoverage()` in `toolbox/toolRegistry.js`.
66+
- Missing files are reported as coverage gaps and resolve through `/assets/theme-v2/images/image-missing.svg` at runtime.
67+
- No generated image files were added in this PR.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Tool Image Mapping
2+
3+
## Mapping Summary
4+
5+
- Registry entries mapped: 41.
6+
- Existing no-size-suffix images are used where present.
7+
- No images were generated.
8+
- No image files were renamed.
9+
- `achievements` maps to existing singular artwork files `achievement.png` where present.
10+
- `animations` uses existing `badges/animations.png` and existing `tools/animation.png`.
11+
- Missing no-size-suffix artwork falls back through registry helpers at runtime and is reported below.
12+
- Stale local Toolbox placeholder image fields were removed from `toolbox/tools-page-accordions.js` so registry data is the active image source.
13+
14+
## Missing Artwork
15+
16+
- sprites (Sprites): badge missing, tool exists
17+
- music (Music): badge missing, tool exists
18+
- videos (Videos): badge missing, tool exists
19+
- saved-data (Saved Data): badge missing, tool exists
20+
- performance (Performance): badge missing, tool exists
21+
- publish (Publish): badge missing, tool exists
22+
- ratings (Ratings): badge missing, tool exists
23+
- midi (MIDI): badge missing, tool exists
24+
- particles (Particles): badge missing, tool exists
25+
- speech-to-text (Voice Capture): badge missing, tool exists
26+
- text-to-speech (Voice Output): badge missing, tool missing
27+
- users (Users): badge missing, tool exists
28+
- platform-settings (Platform Settings): badge missing, tool exists
29+
30+
## Path Rules
31+
32+
- Badge root: `/assets/theme-v2/images/badges/`.
33+
- Tool root: `/assets/theme-v2/images/tools/`.
34+
- Banned size suffixes are not used in registry image fields.
35+
- Existing suffixed files, such as `*-1024.png`, were not referenced by the registry.
36+
37+
## Validation Notes
38+
39+
- `node --check toolbox/toolRegistry.js` - PASS
40+
- `node --check toolbox/tools-page-accordions.js` - PASS
41+
- `node --check assets/theme-v2/js/tool-display-mode.js` - PASS
42+
- `node --check scripts/run-targeted-test-lanes.mjs` - PASS
43+
- `node --check tests/playwright/tools/ToolImageRegistry.spec.mjs` - PASS
44+
- `npm run test:lane:tool-images` - PASS, 4 Playwright tests
45+
- `git diff --check` - PASS
46+
47+
## Manual Test Notes
48+
49+
- Open `toolbox/index.html?role=admin` and confirm Toolbox cards render preview images and badges without 404s.
50+
- Open `toolbox/project-workspace/index.html`, `toolbox/game-design/index.html`, `toolbox/game-configuration/index.html`, and `toolbox/build-game/index.html` and confirm Tool Display Mode badge/tool images render without console errors.
51+
- Confirm any missing artwork uses the shared `image-missing.svg` fallback instead of a broken image request.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Tool Image Registry Contract
2+
3+
Stacked PRs:
4+
- PR_26155_106-tool-image-registry-contract
5+
- PR_26155_107-tool-image-mapping
6+
- PR_26155_108-tool-image-coverage-report
7+
- PR_26155_109-tool-image-targeted-msj-tests
8+
9+
## Contract
10+
11+
- Every active/planned Toolbox registry entry now defines direct `badge` and `tool` fields.
12+
- `badge` paths are rooted under `/assets/theme-v2/images/badges/`.
13+
- `tool` paths are rooted under `/assets/theme-v2/images/tools/`.
14+
- The registry does not use a `hero` image field.
15+
- Registry image paths avoid banned size suffixes: `-64`, `-1024`, and `-400x225`.
16+
- Missing artwork resolves through the registry-owned `TOOL_IMAGE_FALLBACK` helper, not page-specific fallback logic.
17+
18+
## Runtime Consumers
19+
20+
- `toolbox/tools-page-accordions.js` imports `getToolRegistry`, `getToolImageSource`, and `TOOL_IMAGE_FALLBACK` from `toolbox/toolRegistry.js`.
21+
- The transitional Toolbox renderer no longer carries local `tool.image` placeholder fields; card preview and badge sources come from the registry helper.
22+
- `assets/theme-v2/js/tool-display-mode.js` dynamically imports `toolbox/toolRegistry.js` and applies `getToolImageSource()` for badge/tool display images.
23+
24+
## Validation
25+
26+
- `node --check toolbox/toolRegistry.js` - PASS
27+
- `node --check toolbox/tools-page-accordions.js` - PASS
28+
- `node --check assets/theme-v2/js/tool-display-mode.js` - PASS
29+
- `node --check scripts/run-targeted-test-lanes.mjs` - PASS
30+
- `node --check tests/playwright/tools/ToolImageRegistry.spec.mjs` - PASS
31+
- `npm run test:lane:tool-images` - PASS, 4 Playwright tests
32+
- `git diff --check` - PASS
33+
34+
## Targeted Lane Notes
35+
36+
- Impacted lane: `tool-images`.
37+
- Skipped lanes: `workspace-contract`, `project-workspace`, `game-design`, `game-configuration`, `build-path`, `tools-progress`, `tool-navigation`, `tool-display-mode`, `tool-runtime`, `game-runtime`, `integration`, `engine-src`, `samples`.
38+
- Skipped-lane rationale: this PR changes Toolbox image registry metadata, the Toolbox image consumer, and Tool Display Mode image consumption only; it does not change launch/navigation contracts, DB/auth/persistence, samples, engine runtime, or unrelated tool behavior.
39+
- `npm run test:workspace-v2` was skipped because that command name is legacy for the Project Workspace lane and the narrow image-registry lane proves this scoped change.
40+
41+
## Manual Test Notes
42+
43+
- Open `toolbox/index.html?role=admin` and confirm Toolbox cards render preview images and badges without 404s.
44+
- Open `toolbox/project-workspace/index.html`, `toolbox/game-design/index.html`, `toolbox/game-configuration/index.html`, and `toolbox/build-game/index.html` and confirm Tool Display Mode badge/tool images render without console errors.
45+
- Confirm any missing artwork uses the shared `image-missing.svg` fallback instead of a broken image request.
46+
47+
## Theme V2 Gap Findings
48+
49+
No new CSS was added. No Theme V2 styling gap was found for this registry/image mapping change.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Tool Image Targeted MSJ Tests
2+
3+
## Test Lane
4+
5+
- Added package script: `npm run test:lane:tool-images`.
6+
- Added lane registration in `scripts/run-targeted-test-lanes.mjs`.
7+
- Added Playwright spec: `tests/playwright/tools/ToolImageRegistry.spec.mjs`.
8+
9+
## Covered Behavior
10+
11+
- Every active/planned registry tool has `badge` and `tool` fields.
12+
- Registry paths stay under the approved Theme V2 badge/tool directories.
13+
- Registry paths do not contain banned size suffixes.
14+
- Missing artwork uses the registry fallback.
15+
- Toolbox cards consume registry image sources.
16+
- Representative tool pages consume registry images in Tool Display Mode.
17+
- Page load checks reported no console errors, page errors, failed requests, or request failures.
18+
19+
## Validation
20+
21+
- `node --check toolbox/toolRegistry.js` - PASS
22+
- `node --check toolbox/tools-page-accordions.js` - PASS
23+
- `node --check assets/theme-v2/js/tool-display-mode.js` - PASS
24+
- `node --check scripts/run-targeted-test-lanes.mjs` - PASS
25+
- `node --check tests/playwright/tools/ToolImageRegistry.spec.mjs` - PASS
26+
- `npm run test:lane:tool-images` - PASS, 4 Playwright tests
27+
- `git diff --check` - PASS
28+
29+
## Targeted Lane Notes
30+
31+
- Impacted lane: `tool-images`.
32+
- Skipped lanes: `workspace-contract`, `project-workspace`, `game-design`, `game-configuration`, `build-path`, `tools-progress`, `tool-navigation`, `tool-display-mode`, `tool-runtime`, `game-runtime`, `integration`, `engine-src`, `samples`.
33+
- Skipped-lane rationale: this PR changes Toolbox image registry metadata, the Toolbox image consumer, and Tool Display Mode image consumption only; it does not change launch/navigation contracts, DB/auth/persistence, samples, engine runtime, or unrelated tool behavior.
34+
- `npm run test:workspace-v2` was skipped because that command name is legacy for the Project Workspace lane and the narrow image-registry lane proves this scoped change.
35+
36+
## Manual Test Notes
37+
38+
- Open `toolbox/index.html?role=admin` and confirm Toolbox cards render preview images and badges without 404s.
39+
- Open `toolbox/project-workspace/index.html`, `toolbox/game-design/index.html`, `toolbox/game-configuration/index.html`, and `toolbox/build-game/index.html` and confirm Tool Display Mode badge/tool images render without console errors.
40+
- Confirm any missing artwork uses the shared `image-missing.svg` fallback instead of a broken image request.
41+
42+
## Coverage Notes
43+
44+
- Playwright V8 coverage was produced by the targeted lane.
45+
- Changed browser runtime files covered: `toolbox/toolRegistry.js`, `toolbox/tools-page-accordions.js`, and `assets/theme-v2/js/tool-display-mode.js`.
46+
- Node/test runner files are not browser runtime coverage targets.

0 commit comments

Comments
 (0)