Skip to content

Commit 20e9d37

Browse files
author
DavidQ
committed
Add Asset Manager V2 inspector preview and correct type kind asset schema - PR_26126_091-asset-manager-v2-preview-and-type-kind-fix
1 parent 395a2bc commit 20e9d37

19 files changed

Lines changed: 2071 additions & 618 deletions
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# PR_26126_091 Asset Manager V2 Bezel StretchOverride Notes
2+
3+
Date: 2026-05-06
4+
5+
## Behavior
6+
7+
- The Stretch Override control is hidden and disabled unless Role is `bezel`.
8+
- Selecting or auto-detecting the `bezel` role shows the Stretch Override control.
9+
- Bezel assets include `stretchOverride.uniformEdgeStretchPx` with default value `10`.
10+
- Background assets do not include `stretchOverride`.
11+
- Non-bezel assets do not apply or persist `stretchOverride`.
12+
13+
## Schema Enforcement
14+
15+
- `stretchOverride` remains allowed only for `assets.image.bezel.*` entries.
16+
- Generic/non-bezel asset IDs reject `stretchOverride` through schema validation.
17+
18+
## Validation
19+
20+
- `npm run test:workspace-v2`: passed, 10 tests.
21+
- Playwright validates hidden initial stretch controls, hidden background stretch controls, visible bezel stretch controls, default value `10`, and Output Summary bezel-only persistence.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# PR_26126_091 Asset Manager V2 Inspector Behavior Notes
2+
3+
Date: 2026-05-06
4+
5+
## Selected Asset Preview
6+
7+
- Tile hover remains a metadata tooltip only.
8+
- Tile click selects the asset, loads it into Asset Controls, and renders the selected asset in the center preview region.
9+
- The preview renders ID, Type, Kind, Role, and Path metadata.
10+
- Image assets render an image preview.
11+
- Audio and video assets render controls with `preload="metadata"` and no `autoplay`.
12+
- Font assets render a font sample using a generated `@font-face`.
13+
- Shader, data, and localization assets render inspection panels.
14+
15+
## Source Helper
16+
17+
- Preview rendering is centralized in `src/shared/assets/assetPreviewHelpers.js`.
18+
- Asset Manager V2 imports that helper rather than reusing Asset Browser logic.
19+
- The Playwright/V8 coverage report includes `src/shared/assets/assetPreviewHelpers.js` at 100%.
20+
21+
## Validation
22+
23+
- `npm run test:workspace-v2`: passed, 10 tests.
24+
- Playwright validates tile click preview selection, image preview, audio no-autoplay behavior, and helper rendering modes for image, audio, video, font, shader, data, and localization.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# PR_26126_091 Asset Manager V2 Manual Validation Notes
2+
3+
Date: 2026-05-06
4+
5+
## Validation Performed
6+
7+
- Ran focused Asset Manager V2 Playwright validation during implementation.
8+
- Ran `npm run test:workspace-v2`.
9+
- Ran JS syntax checks on touched Asset Manager V2 modules, the new src preview helper, and the Playwright baseline.
10+
- Ran `git diff --check`.
11+
- Confirmed no sample JSON files changed.
12+
13+
## Results
14+
15+
- Focused Asset Manager V2 Playwright slice: passed, 1 test.
16+
- `npm run test:workspace-v2`: passed, 10 tests.
17+
- Tile click inspector: passed. Tile click selects an asset and renders the center preview.
18+
- Src helper preview coverage: passed. `src/shared/assets/assetPreviewHelpers.js` is covered by Playwright/V8.
19+
- No autoplay: passed. Audio/video helper output omits autoplay; audio preview control has `autoplay === false`.
20+
- Tile layout: passed. Tiles are fixed at 154px width and 88px height, with compact left-aligned visible text and top-right X delete.
21+
- Type radio label: passed. The visible group label is `Type`, with Image, Audio, Font, Video, Shader, Data, and Localization options.
22+
- Type/kind JSON: passed. Output and Workspace V2 insertion use broad `type` plus format `kind`.
23+
- Bezel stretchOverride: passed. Bezel gets default `uniformEdgeStretchPx: 10`; background does not receive stretchOverride.
24+
- Sample JSON: passed. No sample JSON files were modified.
25+
26+
## Reports
27+
28+
- `docs/dev/reports/playwright_v8_coverage_report.txt`
29+
- `docs/dev/reports/coverage_changed_js_guardrail.txt`
30+
- `docs/dev/reports/PR_26126_091_asset_manager_v2_type_kind_schema_notes.md`
31+
- `docs/dev/reports/PR_26126_091_asset_manager_v2_inspector_behavior_notes.md`
32+
- `docs/dev/reports/PR_26126_091_asset_manager_v2_bezel_stretch_override_notes.md`
33+
- `docs/dev/reports/PR_26126_091_asset_manager_v2_manual_validation_notes.md`
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# PR_26126_091 Asset Manager V2 Type/Kind Schema Notes
2+
3+
Date: 2026-05-06
4+
5+
## Type And Kind Model
6+
7+
- `type` is now the broad asset category: `image`, `audio`, `font`, `video`, `shader`, `data`, or `localization`.
8+
- `kind` is now the selected file format/extension, such as `png`, `wav`, `woff2`, `glsl`, `json`, `csv`, or `po`.
9+
- Asset Manager V2 generated IDs remain `assets.<type>.<role>.<filenamePart>`.
10+
- The left radio group visible label is now `Type`.
11+
12+
## Schema Updates
13+
14+
- `tools/schemas/tools/asset-browser.schema.json` requires `type`, `kind`, `role`, `path`, and `source`.
15+
- The schema keeps strict `additionalProperties: false`.
16+
- `$defs.assetRolesByType` maps allowed roles by broad type.
17+
- `$defs.assetKindsByType` maps allowed file-format kinds by broad type.
18+
- Asset Manager V2 validation enforces that ID type and role segments match the entry `type` and `role`.
19+
20+
## Validation
21+
22+
- `npm run test:workspace-v2`: passed, 10 tests.
23+
- Playwright validates corrected Output Summary and Workspace V2 insertion entries with `type: audio` and `kind: wav`.
24+
- No sample JSON files were modified.

docs/dev/reports/codex_changed_files.txt

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,38 @@ M docs/dev/reports/coverage_changed_js_guardrail.txt
33
M docs/dev/reports/playwright_v8_coverage_report.txt
44
M tests/playwright/PreviewGeneratorV2Baseline.spec.mjs
55
M tools/asset-manager-v2/index.html
6+
M tools/asset-manager-v2/js/AssetManagerV2App.js
67
M tools/asset-manager-v2/js/assetManagerMetadata.js
8+
M tools/asset-manager-v2/js/bootstrap.js
9+
M tools/asset-manager-v2/js/controls/AssetCatalogControl.js
710
M tools/asset-manager-v2/js/controls/AssetFormControl.js
811
M tools/asset-manager-v2/js/services/AssetSchemaValidator.js
912
M tools/asset-manager-v2/styles/assetManager.css
1013
M tools/schemas/tools/asset-browser.schema.json
11-
?? docs/dev/reports/PR_26126_090_asset_manager_v2_asset_id_naming_notes.md
12-
?? docs/dev/reports/PR_26126_090_asset_manager_v2_manual_validation_notes.md
13-
?? docs/dev/reports/PR_26126_090_asset_manager_v2_tile_layout_notes.md
14+
?? docs/dev/reports/PR_26126_091_asset_manager_v2_bezel_stretch_override_notes.md
15+
?? docs/dev/reports/PR_26126_091_asset_manager_v2_inspector_behavior_notes.md
16+
?? docs/dev/reports/PR_26126_091_asset_manager_v2_manual_validation_notes.md
17+
?? docs/dev/reports/PR_26126_091_asset_manager_v2_type_kind_schema_notes.md
18+
?? src/shared/assets/
1419

1520
# git ls-files --others --exclude-standard
16-
docs/dev/reports/PR_26126_090_asset_manager_v2_asset_id_naming_notes.md
17-
docs/dev/reports/PR_26126_090_asset_manager_v2_manual_validation_notes.md
18-
docs/dev/reports/PR_26126_090_asset_manager_v2_tile_layout_notes.md
21+
docs/dev/reports/PR_26126_091_asset_manager_v2_bezel_stretch_override_notes.md
22+
docs/dev/reports/PR_26126_091_asset_manager_v2_inspector_behavior_notes.md
23+
docs/dev/reports/PR_26126_091_asset_manager_v2_manual_validation_notes.md
24+
docs/dev/reports/PR_26126_091_asset_manager_v2_type_kind_schema_notes.md
25+
src/shared/assets/assetPreviewHelpers.js
1926

2027
# git diff --stat
21-
docs/dev/reports/coverage_changed_js_guardrail.txt | 5 +-
22-
docs/dev/reports/playwright_v8_coverage_report.txt | 12 +-
23-
.../playwright/PreviewGeneratorV2Baseline.spec.mjs | 126 ++++++++++++++-------
24-
tools/asset-manager-v2/index.html | 2 +-
25-
tools/asset-manager-v2/js/assetManagerMetadata.js | 21 +++-
26-
.../js/controls/AssetFormControl.js | 17 ++-
27-
.../js/services/AssetSchemaValidator.js | 28 +++--
28-
tools/asset-manager-v2/styles/assetManager.css | 42 +++++--
29-
tools/schemas/tools/asset-browser.schema.json | 8 +-
30-
9 files changed, 190 insertions(+), 71 deletions(-)
28+
docs/dev/reports/coverage_changed_js_guardrail.txt | 13 +--
29+
docs/dev/reports/playwright_v8_coverage_report.txt | 34 +++---
30+
.../playwright/PreviewGeneratorV2Baseline.spec.mjs | 113 +++++++++++++++++--
31+
tools/asset-manager-v2/index.html | 8 +-
32+
tools/asset-manager-v2/js/AssetManagerV2App.js | 19 ++--
33+
tools/asset-manager-v2/js/assetManagerMetadata.js | 120 ++++++++++++++++-----
34+
tools/asset-manager-v2/js/bootstrap.js | 2 +
35+
.../js/controls/AssetCatalogControl.js | 13 ++-
36+
.../js/controls/AssetFormControl.js | 76 +++++++++----
37+
.../js/services/AssetSchemaValidator.js | 57 ++++++----
38+
tools/asset-manager-v2/styles/assetManager.css | 77 ++++++++++++-
39+
tools/schemas/tools/asset-browser.schema.json | 83 +++++++++++++-
40+
12 files changed, 496 insertions(+), 119 deletions(-)

0 commit comments

Comments
 (0)