Skip to content

Commit e4a0e5a

Browse files
committed
Recover root Tools pages from pre-migration GameFoundryStudio sources - PR_26152_051-root-tools-original-parity-recovery
1 parent d96c66d commit e4a0e5a

13 files changed

Lines changed: 730 additions & 109 deletions
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Root Tools Original Parity Recovery Validation
2+
3+
PR: PR_26152_051-root-tools-original-parity-recovery
4+
5+
## Scope
6+
7+
Restored only these already-migrated root Tools pages:
8+
9+
- tools/index.html
10+
- tools/ai-assistant.html
11+
- tools/animation-studio.html
12+
- tools/asset-studio.html
13+
- tools/code-studio.html
14+
- tools/input-studio.html
15+
- tools/midi-studio.html
16+
- tools/object-vector-studio.html
17+
- tools/palette-manager.html
18+
- tools/particle-studio.html
19+
- tools/sound-studio.html
20+
- tools/storage-inspector.html
21+
22+
No Admin, Account, Company, Games, Samples, root index, CSS, Theme V2 CSS, or additional tool pages were changed.
23+
24+
Continuation note: this work started from the approved PR_26152_050 delta_2 state. A leftover prior report artifact was normalized back to the committed delta_2 content before this Tools work began.
25+
26+
Historical source of truth used: `870cc75d97ac787664e2cb4d8b960194c0b82772:GameFoundryStudio/tools/*.html`, the parent of `8f326e43b` (`PR_26152_038-root-tools-index-migration`), which is the first root/Theme V2 Tools migration commit.
27+
28+
## Source Match Validation
29+
30+
Result: PASS
31+
32+
Each restored root page was compared against its matching historical `GameFoundryStudio/tools` source after only these root-path transforms:
33+
34+
- Insert `<base href="../GameFoundryStudio/">` so root `/tools/*.html` pages can load the approved GameFoundryStudio assets and partials.
35+
- Convert source `../assets/*` references to `assets/*` under the base path.
36+
- Convert the missing center image filename `assets/images/forge-bot.png` to existing `assets/images/forge-bot-single.png`; the old filename is absent from both the current and historical image tree.
37+
- Add `data-asset-root`, `data-tool-slug`, and `data-tool-icon-src` to each standalone page's `data-tool-display-mode` slot so external `tool-display-mode.js` loads badges and character images correctly from root pages.
38+
39+
## Static Affected Tools Validation
40+
41+
Result: PASS
42+
43+
Validated:
44+
45+
- 12 restored root Tools pages match transformed historical source content.
46+
- 193 path and metadata references resolve, including CSS, JS, partials, center images, badge images, character images, generated tool tile images, generated badge object paths, and root migrated tool links.
47+
- `/tools/index.html` includes sorting and grouping controls, accordion list slot, and legacy accordion stack/tile layout marker.
48+
- Existing `GameFoundryStudio/assets/js/tools-page-accordions.js` contains the expected grouping, sorting, group label, badge, tile, and card-grid behavior markers.
49+
- All affected pages include header/footer partial slots.
50+
- No affected page contains inline `style` attributes, `<style>` blocks, inline script blocks, inline event handlers, or `imageDataUrl`.
51+
- `git diff --check` passed for the affected root Tools pages.
52+
53+
## Targeted Browser Validation
54+
55+
Result: PASS
56+
57+
A temporary local HTTP server was started inside the validation script and closed after validation. Only affected root Tools pages were opened.
58+
59+
Validated in browser:
60+
61+
- `/tools/index.html` loads header and footer partials.
62+
- `/tools/index.html` renders 18 tool cards from the existing tool metadata.
63+
- Tool tile images load successfully.
64+
- Badge object paths are present for rendered cards.
65+
- Sorting/grouping controls exist.
66+
- Grouped mode renders 9 grouped accordions.
67+
- A migrated root tool link resolves to `/tools/ai-assistant.html`.
68+
- Each of the 11 standalone root tool pages loads header and footer partials.
69+
- Each standalone page loads display badge, display character, center ForgeBot image, left/right tool columns, vertical accordions, and horizontal accordion toggles.
70+
- No browser console errors were reported during the targeted affected-page pass.
71+
72+
## CSS Validation
73+
74+
Result: PASS
75+
76+
No CSS files changed. Theme V2 CSS was not modified. No CSS was added.
77+
78+
## Unrelated Page Validation
79+
80+
Result: PASS
81+
82+
Before report generation, `git diff --name-only` listed only the 12 affected root Tools HTML pages. No Admin, Account, Company, Games, Samples, root index, or unrelated tool directories were changed.
83+
84+
## Commands Run
85+
86+
- Read: `docs/dev/PROJECT_INSTRUCTIONS.md`
87+
- Source discovery: `git log --all -- GameFoundryStudio/tools/*.html tools/*.html`
88+
- Source read/restore: `git show 870cc75d97ac787664e2cb4d8b960194c0b82772:GameFoundryStudio/tools/<page>.html`
89+
- Static affected Tools validation with Node.
90+
- Targeted browser validation with an in-script local HTTP server and Playwright Chromium for the affected root Tools pages only.
91+
- Targeted whitespace validation: `git diff --check -- tools/index.html tools/ai-assistant.html tools/animation-studio.html tools/asset-studio.html tools/code-studio.html tools/input-studio.html tools/midi-studio.html tools/object-vector-studio.html tools/palette-manager.html tools/particle-studio.html tools/sound-studio.html tools/storage-inspector.html`
92+
93+
## Tests Not Run
94+
95+
Repo-wide tests were not run, per BUILD instruction. `npm run test:workspace-v2` was not run because this PR does not change Workspace V2, toolState, engine, capture, or runtime handoff behavior and the BUILD requested only affected root Tools validation. Full samples smoke test: SKIP because no sample files or sample runtime were changed.
96+
97+
## Manual Validation
98+
99+
1. Open `/tools/index.html`.
100+
2. Confirm the approved legacy title, sorting controls, generated tool cards, images, badges, group labels, tile outlines, header, and footer render.
101+
3. Use `Grouped` and `Order A-Z` controls and confirm grouping/sorting behavior updates the rendered tool list.
102+
4. Open each restored root tool page listed in Scope.
103+
5. Confirm each page shows the approved legacy source content, header/footer partials, left/right tool columns, accordions, display badge/character, and center ForgeBot image.

tools/ai-assistant.html

Lines changed: 58 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,63 @@
11
<!doctype html>
22
<html lang="en">
3-
<head><meta charset="utf-8"><base href="../GameFoundryStudio/"><meta name="viewport" content="width=device-width, initial-scale=1"><title>AI Assistant - Game Foundry Studio</title><meta name="description" content="Get AI help with code, assets, logic and design in Game Foundry Studio."><link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="assets/css/styles.css"></head>
4-
<body class="meaning-mystic-purple">
3+
4+
<head>
5+
<meta charset="utf-8">
6+
<base href="../GameFoundryStudio/">
7+
<meta name="viewport" content="width=device-width, initial-scale=1">
8+
<title>AI Assistant — Game Foundry Studio</title>
9+
<meta name="description" content="Game Foundry Studio: Build. Play. Share.">
10+
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
11+
<link rel="stylesheet" href="assets/css/styles.css">
12+
</head>
13+
14+
<body class="meaning-molten-orange">
515
<div data-partial="header-nav"></div>
6-
<main><section class="page-title"><div class="container"><div class="kicker">Foundry Bot</div><h1>AI Assistant</h1><p class="lede">Get AI help with code, assets, logic and design.</p></div></section><section class="section"><div class="container"><div class="tool-workspace">
7-
<aside class="tool-column tool-group-ai-learning"><div class="tool-column-header arcane-purple"><h2>Toolbox</h2></div><div class="accordion-stack"><details class="vertical-accordion" open><summary>Setup</summary><div class="accordion-body">AI Assistant setup wireframe.</div></details><details class="vertical-accordion"><summary>Accordion 2</summary><div class="accordion-body">AI Assistant left accordion 2 wireframe.</div></details><details class="vertical-accordion"><summary>Accordion 3</summary><div class="accordion-body">AI Assistant left accordion 3 wireframe.</div></details></div></aside>
8-
<div data-tool-display-mode data-asset-root="assets/images" data-tool-slug="ai-assistant" data-tool-icon-src="assets/images/badges/ai-assistant.png"></div>
9-
<section class="tool-center-panel"><img src="assets/images/forge-bot.png" alt="ForgeBot"><h2>Workspace</h2><p>AI Assistant</p></section>
10-
<aside class="tool-column tool-group-ai-learning"><div class="tool-column-header arcane-purple"><h2>Inspector</h2></div><div class="accordion-stack"><details class="vertical-accordion" open><summary>Output</summary><div class="accordion-body">AI Assistant output wireframe.</div></details><details class="vertical-accordion"><summary>Accordion 2</summary><div class="accordion-body">AI Assistant right accordion 2 wireframe.</div></details><details class="vertical-accordion"><summary>Accordion 3</summary><div class="accordion-body">AI Assistant right accordion 3 wireframe.</div></details></div></aside>
11-
</div></div></section></main>
12-
<div data-partial="footer"></div><script src="assets/js/gamefoundry-partials.js" defer></script><script src="assets/js/tool-display-mode.js" defer></script>
16+
<main>
17+
<section class="page-title">
18+
<div class="container">
19+
<div class="kicker">Foundry Bot</div>
20+
<h1>AI Assistant</h1>
21+
<p class="lede">Get AI help with code, assets, logic and design.</p>
22+
</div>
23+
</section>
24+
<section class="section">
25+
<div class="container">
26+
<div class="tool-workspace">
27+
<aside class="tool-column tool-group-ai-learning">
28+
<div class="tool-column-header molten-orange">
29+
<h2>Toolbox</h2>
30+
</div>
31+
<div class="accordion-stack">
32+
<details class="vertical-accordion" open>
33+
<summary>Setup</summary>
34+
<div class="accordion-body">AI Assistant setup wireframe.</div>
35+
</details>
36+
</div>
37+
</aside>
38+
<div data-tool-display-mode data-asset-root="assets/images" data-tool-slug="ai-assistant" data-tool-icon-src="assets/images/badges/ai-assistant.png"></div>
39+
<section class="tool-center-panel"><img src="assets/images/forge-bot-single.png" alt="ForgeBot">
40+
<h2>Workspace</h2>
41+
<p>AI Assistant</p>
42+
</section>
43+
<aside class="tool-column tool-group-ai-learning">
44+
<div class="tool-column-header forge-gold">
45+
<h2>Inspector</h2>
46+
</div>
47+
<div class="accordion-stack">
48+
<details class="vertical-accordion" open>
49+
<summary>Output</summary>
50+
<div class="accordion-body">AI Assistant output wireframe.</div>
51+
</details>
52+
</div>
53+
</aside>
54+
</div>
55+
</div>
56+
</section>
57+
</main>
58+
<div data-partial="footer"></div>
59+
<script src="assets/js/gamefoundry-partials.js" defer></script>
60+
<script src="assets/js/tool-display-mode.js" defer></script>
1361
</body>
62+
1463
</html>

tools/animation-studio.html

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,63 @@
11
<!doctype html>
22
<html lang="en">
3-
<head><meta charset="utf-8"><base href="../GameFoundryStudio/"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Animation Studio - Game Foundry Studio</title><meta name="description" content="Create timing, animation states, and motion workflows in Game Foundry Studio."><link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="assets/css/styles.css"></head>
3+
4+
<head>
5+
<meta charset="utf-8">
6+
<base href="../GameFoundryStudio/">
7+
<meta name="viewport" content="width=device-width, initial-scale=1">
8+
<title>Animation Studio — Game Foundry Studio</title>
9+
<meta name="description" content="Game Foundry Studio: Build. Play. Share.">
10+
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
11+
<link rel="stylesheet" href="assets/css/styles.css">
12+
</head>
13+
414
<body class="meaning-molten-orange">
515
<div data-partial="header-nav"></div>
6-
<main><section class="page-title"><div class="container"><div class="kicker">Spark</div><h1>Animation Studio</h1><p class="lede">Create timing, animation states, and motion workflows.</p></div></section><section class="section"><div class="container"><div class="tool-workspace">
7-
<aside class="tool-column tool-group-build-create"><div class="tool-column-header molten-orange"><h2>Toolbox</h2></div><div class="accordion-stack"><details class="vertical-accordion" open><summary>Setup</summary><div class="accordion-body">Animation Studio setup wireframe.</div></details><details class="vertical-accordion"><summary>Accordion 2</summary><div class="accordion-body">Animation Studio left accordion 2 wireframe.</div></details><details class="vertical-accordion"><summary>Accordion 3</summary><div class="accordion-body">Animation Studio left accordion 3 wireframe.</div></details></div></aside>
8-
<div data-tool-display-mode data-asset-root="assets/images" data-tool-slug="animation-studio" data-tool-icon-src="assets/images/badges/animation-studio.png"></div>
9-
<section class="tool-center-panel"><img src="assets/images/forge-bot.png" alt="ForgeBot"><h2>Workspace</h2><p>Animation Studio</p></section>
10-
<aside class="tool-column tool-group-build-create"><div class="tool-column-header forge-gold"><h2>Inspector</h2></div><div class="accordion-stack"><details class="vertical-accordion" open><summary>Output</summary><div class="accordion-body">Animation Studio output wireframe.</div></details><details class="vertical-accordion"><summary>Accordion 2</summary><div class="accordion-body">Animation Studio right accordion 2 wireframe.</div></details><details class="vertical-accordion"><summary>Accordion 3</summary><div class="accordion-body">Animation Studio right accordion 3 wireframe.</div></details></div></aside>
11-
</div></div></section></main>
12-
<div data-partial="footer"></div><script src="assets/js/gamefoundry-partials.js" defer></script><script src="assets/js/tool-display-mode.js" defer></script>
16+
<main>
17+
<section class="page-title">
18+
<div class="container">
19+
<div class="kicker">ForgeBot</div>
20+
<h1>Animation Studio</h1>
21+
<p class="lede">Animate characters and bring games to life.</p>
22+
</div>
23+
</section>
24+
<section class="section">
25+
<div class="container">
26+
<div class="tool-workspace">
27+
<aside class="tool-column tool-group-build-create">
28+
<div class="tool-column-header molten-orange">
29+
<h2>Toolbox</h2>
30+
</div>
31+
<div class="accordion-stack">
32+
<details class="vertical-accordion" open>
33+
<summary>Setup</summary>
34+
<div class="accordion-body">Animation Studio setup wireframe.</div>
35+
</details>
36+
</div>
37+
</aside>
38+
<div data-tool-display-mode data-asset-root="assets/images" data-tool-slug="animation-studio" data-tool-icon-src="assets/images/badges/animation-studio.png"></div>
39+
<section class="tool-center-panel"><img src="assets/images/forge-bot-single.png" alt="ForgeBot">
40+
<h2>Workspace</h2>
41+
<p>Animation Studio</p>
42+
</section>
43+
<aside class="tool-column tool-group-build-create">
44+
<div class="tool-column-header forge-gold">
45+
<h2>Inspector</h2>
46+
</div>
47+
<div class="accordion-stack">
48+
<details class="vertical-accordion" open>
49+
<summary>Output</summary>
50+
<div class="accordion-body">Animation Studio output wireframe.</div>
51+
</details>
52+
</div>
53+
</aside>
54+
</div>
55+
</div>
56+
</section>
57+
</main>
58+
<div data-partial="footer"></div>
59+
<script src="assets/js/gamefoundry-partials.js" defer></script>
60+
<script src="assets/js/tool-display-mode.js" defer></script>
1361
</body>
62+
1463
</html>

0 commit comments

Comments
 (0)