You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Ran a local Playwright/Chromium computed-style comparison between `tools/templates-v2/index.html` and `tools/asset-manager-v2/index.html`.
9
+
- Searched runtime/test/script targets for the removed `tools/schemas/tool.manifest.schema.json` dependency.
10
+
- Checked changed files to confirm sample JSON was not modified.
11
+
12
+
## Results
13
+
14
+
-`npm run test:workspace-v2`: passed, 10 tests.
15
+
- Asset Manager V2 tool mode: passed through the workspace-v2 Playwright test. It loaded the tool menu, hid workspace actions, loaded `asset-browser.schema.json`, added an approved image asset, rejected unsupported `svg` payloads, and cleared status without page errors.
16
+
- Asset Manager V2 workspace mode: passed through the workspace-v2 Playwright test. Workspace V2 launched Asset Manager V2 with `launch=workspace`, hid tool actions, showed workspace actions, inserted an approved audio asset into `tools.asset-browser.assets`, and did not create `asset-manager-v2` or `workspace-v2` tool payloads in the workspace manifest.
17
+
- Theme parity: passed. Asset Manager V2 body, app shell, panels, accordions, inputs, menu, status clear button, and local shell frame matched Templates V2 computed theme values.
18
+
- Schema relocation: passed. The test-only manifest schema now lives at `tests/schemas/tool.manifest.schema.json`, and the boundary test reference points to that path.
19
+
- Runtime schema dependency check: passed. No `tests`, `tools`, or `scripts` references to `tools/schemas/tool.manifest.schema.json` remain.
20
+
- Asset Browser logic reuse check: passed. Asset Manager V2 continues to use the asset-browser schema/workspace payload key only; no legacy `tools/Asset Browser` implementation is imported or reused.
21
+
- Sample JSON check: passed. No sample JSON files were modified.
Compared `tools/asset-manager-v2/index.html` rendered styling against `tools/templates-v2/index.html` after aligning `tools/asset-manager-v2/styles/assetManager.css` with the Templates V2 theme variables and shell structure.
8
+
9
+
## Method
10
+
11
+
Used a local Playwright/Chromium pass against the repo test server at 1440x900. The check collected computed styles for these paired elements:
- Local shell frame: matching gradient, `18px` radius, and Templates V2 frame shadow.
38
+
39
+
## Notes
40
+
41
+
The Asset Manager V2 header markup already matched the Templates V2 first-class tool header structure, so the change kept the existing HTML structure and aligned the theme values through CSS.
- Checked that no sample or game JSON files were modified.
14
+
15
+
## Results
16
+
17
+
-`npm run test:workspace-v2`: passed, 10 tests.
18
+
- Tool mode: passed. Asset Manager V2 shows the tool action nav, hides workspace action nav, loads `asset-browser.schema.json`, exposes all seven file picker controls, and validates selected files before Add Asset.
19
+
- Accept filters: passed. Playwright asserted kind-specific accept filters on image, audio, font, video, shader, data, and localization picker inputs.
20
+
- Selected file validation: passed. Image `nebula-backdrop.png` selected with the `background` role derived `image.assets.nebula-backdrop.background`, `assets/images/nebula-backdrop.png`, validated against the schema, and added successfully.
21
+
- Picker rejection: passed. `notes.txt` selected through the image picker was rejected and Add Asset stayed disabled.
22
+
- Role validation: passed. A JSON payload with an audio asset using the image-only `background` role was rejected.
23
+
- Workspace mode: passed. Workspace V2 launched Asset Manager V2 with `launch=workspace`, inserted the selected audio asset into `tools.asset-browser.assets`, and did not create `asset-manager-v2` or `workspace-v2` manifest entries.
24
+
- Asset Browser reuse check: passed. No legacy Asset Browser implementation imports or app references were added.
25
+
- Sample JSON check: passed. No sample or game JSON files were modified.
- Expanded `tools/schemas/tools/asset-browser.schema.json` asset id patterns and `kind` enum to include `image`, `audio`, `font`, `video`, `shader`, `data`, and `localization`.
- Asset Manager V2 loads allowed kinds, roles, and role-by-kind rules from `asset-browser.schema.json`.
21
+
- File selection derives a path and asset id, then validates the selected file entry through `AssetSchemaValidator.validateFileSelection()`.
22
+
- The selected file entry is also validated as an `assets` payload before the Add Asset button can persist it.
23
+
- Invalid picker selections are blocked before insertion. Example covered by Playwright: `notes.txt` selected through the image picker is rejected by accept validation.
24
+
- Invalid role combinations are rejected by schema-backed validation. Example covered by Playwright: `role: "background"` on an audio asset is rejected.
25
+
- Image `bezel` role requires an `image.*.bezel` asset id.
26
+
-`stretchOverride` remains allowed only on `image.*.bezel` assets.
27
+
28
+
## Workspace Location
29
+
30
+
Validated assets are inserted only into the Workspace V2 asset schema location:
31
+
32
+
```text
33
+
workspaceManifest.tools["asset-browser"].assets
34
+
```
35
+
36
+
No `asset-manager-v2` or `workspace-v2` tool payload is written into the Workspace V2 manifest.
0 commit comments