doxa-maps/plugin-designs/doxa-research-map/scripts
Doxa Maps 8ec207c662 My coalescing broke the echo guard it ran past
rega, row 50: a region row click emitted {region:"asia"} and then an EMPTY event,
identically on both engines. The grid stayed narrowed only because the
composite's 1.2 second push window happened to swallow the second one — and a
pass that depends on a swallow is not a pass. rega said so, and was right to
refuse to score it green.

THE CAUSE IS MINE AND IT IS NOT A TIMING QUIRK. emitFilterState has always opened
with `if (applyingExternal) return`: when the HOST pushes state DOWN through
externalFilters the store changes, and reporting that back up is an echo of the
host's own instruction. That guard worked because the emit ran SYNCHRONOUSLY
inside the watcher, while the flag was still set. My coalescing moved the emit
60ms later, and applyingExternal is released on nextTick — so by the time the
emit ran the flag was false and the echo went out.

I fixed a burst and broke a guard that depended on the burst's timing. Changing
WHEN something runs is a change to everything that depended on when, and I did
not re-read what else was standing on that synchrony.

So the decision moves to schedule time, where the flag still means what it says:
a change that arrived from the host is not a change the reader made, and is not
reported back. The check inside emitFilterState stays as a second line of
defence.

This is the same shape as the dialect case on the branch below, and it is why
that one is a guard rather than a longer timeout: both are "the emit is no longer
where it thought it was".

★ AND THE GATE CAUGHT THE SAME HOLE IN ITSELF FOR THE THIRD TIME. The assertion
searched the scheduler for `if (applyingExternal) return`, and the comment
explaining the fix QUOTES that line — so deleting the code left the gate green.
It strips comments before asserting now. A check its own documentation can
satisfy is not a check, and I have now written that mistake three different ways:
a probe that yields zero when its assumption is wrong, a mutation aimed at one of
three identical bindings, and this.

Source only, stacked on sr/dialect-empty-cascade. STUDIO: rebuild
doxa-research-map (the same rebuild that branch already needs).
2026-09-26 22:06:58 +00:00
..
fixtures "Arabic" emptied the grid, because no people group speaks "Arabic" 2026-09-26 13:35:57 +00:00
check-clustering-modes.mjs Point my two map gates at the tree that exists, and stop them reading the old picture 2026-09-25 21:35:57 +00:00
check-export-one-click.mjs Export gate reads the tree name from the build config 2026-09-25 21:32:35 +00:00
check-language-code-link.mjs My coalescing broke the echo guard it ran past 2026-09-26 22:06:58 +00:00
check-pin-dim-slider.mjs Point my two map gates at the tree that exists, and stop them reading the old picture 2026-09-25 21:35:57 +00:00
check-reduced-motion-jumps.mjs Reduced motion jumps, and 31 more strings stop being typed in English 2026-09-26 04:00:41 +00:00