Skip to content

Commit 1e9b46e

Browse files
author
DavidQ
committed
Root cause fixed: Asset Browser was hardcoded to a Vector Arcade catalog, so it ignored the active workspace asset.
What I changed: 1. Replaced hardcoded asset list with context-driven catalog loading from `workspace.asset-catalog.json` using launch/query/shared-manifest context sources in [main.js](C:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Asset Browser/main.js:171). 2. Removed default fallback catalog behavior. If no valid workspace catalog is found, the tool now shows explicit empty/error messaging instead of showing unrelated assets in [main.js](C:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Asset Browser/main.js:504) and [main.js](C:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Asset Browser/main.js:733). 3. Ensured initial selection prefers the current shared asset handoff (`Asset Workflow` asset) when present in [main.js](C:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Asset Browser/main.js:379). 4. Added `Skins` category support and mapped it to handoff type `skin` in [main.js](C:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Asset Browser/main.js:17) and [main.js](C:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Asset Browser/main.js:412). Validation run: - `node --check tools/Asset Browser/main.js` passed. - Per your instruction, I did not run browser/manual tests. Commit comment: `fix(asset-browser): remove vector-arcade default catalog and hydrate approved assets from active workspace catalog; prefer shared asset selection and show explicit no-catalog state`
1 parent c5a676e commit 1e9b46e

5 files changed

Lines changed: 368 additions & 75 deletions

File tree

games/index.render.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,15 @@ function renderCard(row, instanceKey = "main") {
325325

326326
const classText = row.classValues.length > 0 ? row.classValues.map((value) => value.split("/").at(-1) || value).join(", ") : "none";
327327
const tagText = row.tags.length > 0 ? row.tags.join(", ") : "none";
328-
const launchActions = row.workspaceHref
329-
? `<p class="game-launch-actions"><a class="game-title-link" href="${escapeHtml(row.workspaceHref)}">Open In Workspace Manager</a></p>`
328+
const workspaceSection = row.workspaceHref
329+
? `
330+
<section class="game-tool-roundtrip">
331+
<h4>Open with Workspace Manager</h4>
332+
<p><a href="${escapeHtml(row.workspaceHref)}">Open with Workspace Manager</a></p>
333+
<h4>JSON Input</h4>
334+
<p>Paste JSON to inspect arbitrary state payloads.</p>
335+
</section>
336+
`
330337
: "";
331338
const roundtripSection = Array.isArray(row.roundtripLinks) && row.roundtripLinks.length > 0
332339
? `
@@ -345,7 +352,7 @@ function renderCard(row, instanceKey = "main") {
345352
<div class="game-badges">${badges}</div>
346353
${previewHtml}
347354
<p>${escapeHtml(row.description)}</p>
348-
${launchActions}
355+
${workspaceSection}
349356
${roundtripSection}
350357
<p>Classes: ${escapeHtml(classText)}</p>
351358
<p>Tags: ${escapeHtml(tagText)}</p>

games/shared/workspaceGameLaunchGuard.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@ export function enforceWorkspaceGameLaunch(gameId) {
3030

3131
const redirectUrl = new URL("/tools/Workspace%20Manager/index.html", window.location.origin);
3232
redirectUrl.searchParams.set("game", normalizedGameId);
33+
redirectUrl.searchParams.set("mount", "game");
3334
window.location.replace(redirectUrl.toString());
3435
}

0 commit comments

Comments
 (0)