From 5725f5b9d9ba4f8ec3adfedcb38d5271e5c8f3da Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Tue, 22 Sep 2026 15:37:41 +0000 Subject: [PATCH] Let a stacked composite find its siblings in either tree MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit stack-demo rendered two empty sections in dev. Its sibling bundles were addressed with a tree-relative path, which the browser resolves against the document URL, so no host and no attribute can redirect it — correct in the built tree, a 404 in dev. Measured: the dev entry answers 200 while the path the relative form resolves to answers 404. The sources now resolve at runtime, so the same file is right in both trees, and the production branch compiles away to the string it replaces. That was the third place this defect appeared. Both capability-5 shells carried the same hardcoded paths and were cured the same way, and each instance was found separately after the previous one was fixed — because a literal parent-directory path reads as correct in review and is invisible to a gate that only ever checks the built tree. Removing the 404 was not enough: the sections were still empty with zero failed requests. The shared layout injected each bundle with a classic script, and a classic script pointed at a dev ES module fires its load handler successfully and only then throws, so the promise resolved while the tag never registered and the wait for definition quietly timed out. A load handler cannot detect that. The module rule now lives in the shared layout rather than in a fourth private copy of the same loader, so the two other composites that inject through it are covered too. Verified after: both elements define, sixty-six facet rows and twenty-four cards on stack-demo and on dashboard-plus-grid, zero failed requests on each. --- library/layouts/StackLayout.vue | 12 +++++++++ plugin-designs/stack-demo/stack-demo.vue | 32 ++++++++++++++++++++---- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/library/layouts/StackLayout.vue b/library/layouts/StackLayout.vue index 080e87784..8fdcac86a 100644 --- a/library/layouts/StackLayout.vue +++ b/library/layouts/StackLayout.vue @@ -89,6 +89,18 @@ function injectScriptOnce(url) { _stlLoaded[url] = new Promise((ok, fail) => { const s = document.createElement('script') s.src = url + // ★ A DEV ENTRY IS AN ES MODULE, AND A CLASSIC