From 8999e7ff01f846bbb1bfebde323f3768e0210050 Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Sun, 27 Sep 2026 01:16:40 +0000 Subject: [PATCH] check:composite-embed-knobs hands each composite its own profile rega's run at 1a761741 measured 8 cases and left 10 UNMEASURED: gospel-resources, my-upg-100-list, regions-dashboard and two more drew no map under a knob-only profile-config, because a multi-profile element must be told which profile is the composite. The target's nested-elements-mfe profile now rides with the knob under test (the knob still wins on any clash). Browser gate: needs a DOXA_BROWSER=1 seat. --- internal/check-composite-embed-knobs.mjs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/check-composite-embed-knobs.mjs b/internal/check-composite-embed-knobs.mjs index d984edaef..fc65a8440 100644 --- a/internal/check-composite-embed-knobs.mjs +++ b/internal/check-composite-embed-knobs.mjs @@ -84,7 +84,7 @@ for (const b of manifest.bundles || []) { const byCompose = composes.some((c) => mapBundles.has(c)) const profile = (b.profiles || []).find((p) => p.element && (byCompose || p.type === 'nested-elements-mfe')) if (!profile || !b.scriptUrl) continue - targets.push({ bundle: b.bundle, element: profile.element, script: `${b.bundle}/${b.bundle}.js` }) + targets.push({ bundle: b.bundle, element: profile.element, profile: profile.profile, script: `${b.bundle}/${b.bundle}.js` }) } if (!targets.length) { console.log('COMPOSITE-EMBED-KNOBS: SKIP — the manifest declares no composite that nests a map.') @@ -153,7 +153,10 @@ try { lines.push(` · ${t.element} [${c.knob}] SKIPPED — no baked token in this tree to hand the host`) continue } - const cfg = JSON.stringify(c.config(bakedToken)).replace(/'/g, ''') + // The composite's OWN profile rides with the knob under test (rega, 1a761741: gospel-resources, + // my-upg-100-list, regions-dashboard and two more drew no map under a knob-only config, because a + // multi-profile element needs to be told which profile is the composite). A knob still wins. + const cfg = JSON.stringify({ profile: t.profile, ...c.config(bakedToken) }).replace(/'/g, ''') pageHtml = `partner
HOST HEADER