From 121275e0f24da33ae394babb8ec8740080a54b66 Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Wed, 23 Sep 2026 12:34:50 +0000 Subject: [PATCH] Say what the console noise is, so the count stops reading as a defect "17 pass-with-console-errors" is a bare number that invites investigation, and it cost a full tick: the count was carded as a suspected hidden defect on the real precedent that a thrown setup() in this repo once removed a subtree silently while the gate still counted the element as mounted. It was noise, and the partition is the proof. Every noisy element is map-bearing or bakes in a map-bearing child; every silent one is not. On a box with no GPU and no Mapbox token, a map reporting a failed init is correct behaviour. One message class was an artifact of the report itself: console.error('[x] Map failed to initialize --', err) passes two arguments, and Playwright renders the Error argument as the bare word "Error". Storing each argument separately made those look like 12 anonymous errors of unknown origin; they were the second half of messages already counted. The report now lists each noisy element with its child count and first message, and prints an explicit "what WOULD be a defect" counter -- a noisy element with 0 shadow children or an error card -- which reads 0 today. Negative-tested: a synthetic tree with a 0-child element and an error card drives that counter from 0 to 2, so it is a live signal and not a decorative zero. --- internal/plugin-gallery-smoke.mjs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/internal/plugin-gallery-smoke.mjs b/internal/plugin-gallery-smoke.mjs index be14e8747..4a1314ada 100644 --- a/internal/plugin-gallery-smoke.mjs +++ b/internal/plugin-gallery-smoke.mjs @@ -216,5 +216,32 @@ if (glNoise) { console.log(' Paint is verified separately by verify:map-paint (SwiftShader). Run with') console.log(' EXPECT_CANVAS=1 on a machine with real GL to assert canvases and stop filtering.') } +// ★ SAY WHAT THE NOISE IS, NOT JUST HOW MUCH. A bare "17 pass-with-console-errors" is an invitation +// to investigate, and on 2026-09-23 it cost a full tick: the count was carded as a suspected hidden +// defect, on the real precedent that a thrown setup() in this repo once removed a subtree silently +// while the gate still counted the element as mounted. +// +// IT WAS NOISE, AND THE PROOF IS THE PARTITION. Every noisy element is map-bearing; every silent one +// is not (poster-wall, people-groups-grid, doxa-vision-card, connectivity-list, big-picture). No +// noisy element had 0 shadow children or an error card — which is the shape the feared defect would +// take. On a box with no GPU and no Mapbox token, a map that reports a failed init is the CORRECT +// behaviour, so the count tracks the ENVIRONMENT, not the product. +// +// ★ AND ONE MESSAGE CLASS WAS AN ARTIFACT OF THIS REPORT ITSELF. `console.error('[x] Map failed to +// initialize —', err)` passes TWO arguments; Playwright renders the Error argument as the bare word +// "Error", and storing each argument separately made those look like 12 anonymous errors of unknown +// origin. They were the second half of messages already counted. Grouping by element and showing the +// first message stops the same reader-hours being spent again. +if (noisy.length) { + const withMap = noisy.filter(r => r.canvas || /map/i.test(r.key)).length + console.log(`[plugin-gallery-smoke] ${noisy.length} element(s) passed WITH console errors — ${withMap} of them map-bearing.`) + console.log(' A map that cannot reach Mapbox logs an init failure; with no GPU and no token that is') + console.log(' EXPECTED here and is not a product defect. What WOULD be one: a noisy element with 0') + console.log(` shadow children or an error card. Count of those right now: ${noisy.filter(r => r.shadowChildren === 0 || r.errorCard).length}.`) + for (const r of noisy) { + const first = String(r.consoleErrors[0] || '').replace(/\s+/g, ' ').slice(0, 72) + console.log(` ${r.key.padEnd(44)} children=${String(r.shadowChildren).padStart(3)} ${first}`) + } +} if (JSON_OUT) { writeFileSync(JSON_OUT, JSON.stringify({ base: BASE, results }, null, 2)); console.log(`[plugin-gallery-smoke] report → ${JSON_OUT}`) } if (failed.length) { console.log('FAILED:'); failed.forEach(f => console.log(` ✗ ${f.key} — ${f.why}`)); process.exit(1) }