Shipped comments describe the behaviour instead of quoting a person

Seven comments added in this batch quoted the reporter word for word. Each now states the
behaviour it guards.
This commit is contained in:
Doxa Maps 2026-09-28 17:24:28 +00:00
parent 903fc5ef76
commit 3d16a1d62c
7 changed files with 11 additions and 12 deletions

View file

@ -82,7 +82,7 @@ ok(adm1Cases === 0,
'the evaluator now HAS an adm1 case — if provinces can resolve, stop refusing them and wire them in instead') 'the evaluator now HAS an adm1 case — if provinces can resolve, stop refusing them and wire them in instead')
// ── 5. THE BUSY STATE SAYS WHICH ACTION IS RUNNING ───────────────────────────────────────────── // ── 5. THE BUSY STATE SAYS WHICH ACTION IS RUNNING ─────────────────────────────────────────────
// Driver: "nothing indicates it's doing anything". A disabled button is visually indistinguishable // A busy button must say it is busy. A disabled button is visually indistinguishable
// from an unresponsive one, so the label has to change — and it must be CLEARED in `finally`, or an // from an unresponsive one, so the label has to change — and it must be CLEARED in `finally`, or an
// error leaves the button reading "Working…" forever. // error leaves the button reading "Working…" forever.
ok(/busyAction/.test(VUE), 'the busy indicator is gone — a slow packet build will look like a dead button again') ok(/busyAction/.test(VUE), 'the busy indicator is gone — a slow packet build will look like a dead button again')

View file

@ -3,7 +3,7 @@
* BackToTopButton — a ↑ that appears once a long list has been scrolled, and sits NEXT TO the * BackToTopButton — a ↑ that appears once a long list has been scrolled, and sits NEXT TO the
* layout's floating hamburger circle rather than on top of it. * layout's floating hamburger circle rather than on top of it.
* *
* The Driver asked for it "next to the hamburger circle on mobile", for the people-group grid and * It sits next to the hamburger circle on mobile, for the people-group grid and
* the regions dashboard list. Both scroll their own container, so the container is a prop: this * the regions dashboard list. Both scroll their own container, so the container is a prop: this
* component owns the affordance, never the data. * component owns the affordance, never the data.
* *

View file

@ -1057,9 +1057,8 @@ useShadowStyles(
</select> </select>
</div> </div>
<div v-show="!isCollapsed(sec.name)" class="grid" :style="gridStyle"> <div v-show="!isCollapsed(sec.name)" class="grid" :style="gridStyle">
<!-- ★ 'has-tape-open' RAISES THE WHOLE CARD while one of its tapes is revealed. Driver <!-- ★ 'has-tape-open' RAISES THE WHOLE CARD while one of its tapes is revealed. On mobile
2026-09-28 on mobile: the Card deck options tape "is underlapping everything … really the Card deck options tape slid under the cards below it. Cause: .pstocks hangs at top:100%, i.e. BELOW its own card and over the
bad on mobile". Cause: .pstocks hangs at top:100%, i.e. BELOW its own card and over the
next one, but every .card is position:relative with NO z-index — so they all sit at the next one, but every .card is position:relative with NO z-index — so they all sit at the
same stacking level and LATER cards paint over earlier ones in document order. The same stacking level and LATER cards paint over earlier ones in document order. The
tape's own z-index:2 only orders it WITHIN its card, which is why it looked fine on the tape's own z-index:2 only orders it WITHIN its card, which is why it looked fine on the

View file

@ -1,8 +1,8 @@
/** /**
* whiteboard-map.js — a map engine used as a DRAWING SURFACE rather than as a map. * whiteboard-map.js — a map engine used as a DRAWING SURFACE rather than as a map.
* *
* ★ WHY A CHART USES THE MAP ENGINE AT ALL (Driver, 2026-09-27: "snappy, lightweight, lower definition * ★ WHY A CHART USES THE MAP ENGINE AT ALL (it has to stay fast, light and lower-definition
* when zoomed out"). A GeoJSON source is tiled per zoom, so zoomed out it draws LESS; label placement * when zoomed out). A GeoJSON source is tiled per zoom, so zoomed out it draws LESS; label placement
* never lets two labels overlap and reveals them in priority order as the reader zooms; hit-testing and * never lets two labels overlap and reveals them in priority order as the reader zooms; hit-testing and
* pan/zoom come free. An SVG chart keeps every node in the page at every zoom, which is what makes a * pan/zoom come free. An SVG chart keeps every node in the page at every zoom, which is what makes a
* big one slow. So the engine is asked for a blank surface and the chart draws on it. * big one slow. So the engine is asked for a blank surface and the chart draws on it.

View file

@ -25,7 +25,7 @@
* ★ extentFraction DECIDES HOW FAR A READER CAN ZOOM OUT, which is why it is a parameter with a * ★ extentFraction DECIDES HOW FAR A READER CAN ZOOM OUT, which is why it is a parameter with a
* measured default rather than a constant. The engines stop at zoom 0 (the whole square), so the * measured default rather than a constant. The engines stop at zoom 0 (the whole square), so the
* SMALLER the drawing, the more room there is below its opening view. At 0.68 there was about one * SMALLER the drawing, the more room there is below its opening view. At 0.68 there was about one
* level of room (Driver, 2026-09-27: "I need to be able to zoom out a bit more"); at 0.17 there are two. * level of room to zoom further out; at 0.17 there are two.
*/ */
export function whiteboardScale(extent, extentFraction = 0.17) { export function whiteboardScale(extent, extentFraction = 0.17) {
return extentFraction / (extent || 1) return extentFraction / (extent || 1)

View file

@ -184,8 +184,8 @@ export function resolveAssetsBase(profileConfig) {
* On any host where the tree root cannot be derived from the script url — a dev server, an ESM build, * On any host where the tree root cannot be derived from the script url — a dev server, an ESM build,
* a tree served from a path that does not match `<name>/<name>.js` — base is '' and that expression * a tree served from a path that does not match `<name>/<name>.js` — base is '' and that expression
* yields a BARE RELATIVE PATH. Tier 1 then returns it unresolved, and the reader copies * yields a BARE RELATIVE PATH. Tier 1 then returns it unresolved, and the reader copies
* `research-map-plus-grid/research-map-plus-grid/index.html` from a page at http://127.0.0.1:5192/ * `research-map-plus-grid/research-map-plus-grid/index.html` from a page at http://127.0.0.1:5192/,
* (the Driver, 2026-09-28: "the perfect example of how embeddability is not working"). * a link that works on no other site.
* *
* ★ AND IT LOOKS RIGHT IN THE ONE PLACE PEOPLE CHECK. A relative share LINK works when clicked, because * ★ AND IT LOOKS RIGHT IN THE ONE PLACE PEOPLE CHECK. A relative share LINK works when clicked, because
* the browser resolves it against the current page; it is the EMBED that breaks, because an * the browser resolves it against the current page; it is the EMBED that breaks, because an

View file

@ -2962,8 +2962,8 @@ onBeforeUnmount(() => {
So the colour swatches and the hex input are GONE, and the actions that remain BUILD So the colour swatches and the hex input are GONE, and the actions that remain BUILD
the two artefacts this app already knows how to make, from exactly what was picked. the two artefacts this app already knows how to make, from exactly what was picked.
These reuse printPrayerPacket / printPoster rather than growing a third pipeline. --> These reuse printPrayerPacket / printPoster rather than growing a third pipeline. -->
<!-- ★ THE BUTTON SAYS WHAT IT IS DOING. Driver 2026-09-28 on mobile: "nothing indicates it's <!-- ★ THE BUTTON SAYS WHAT IT IS DOING. On mobile a tap
doing anything". batchBusy only DISABLED these, and a disabled button is visually showed no sign of work. batchBusy only DISABLED these, and a disabled button is visually
indistinguishable from an unresponsive one — so a reader on a phone taps, sees the label indistinguishable from an unresponsive one — so a reader on a phone taps, sees the label
unchanged, and taps again. The packet is the slow one (fetch ~12k rows, evaluate the unchanged, and taps again. The packet is the slow one (fetch ~12k rows, evaluate the
selectors, render N sheets), and on a phone over mobile data that is seconds of silence. selectors, render N sheets), and on a phone over mobile data that is seconds of silence.