Skip to content

Batch: #1134 dock + #1127 (Sep-14 batch) + codeql-action 4.38.1 (#1128/#1131/#1132) - #1135

Merged
zkWizard merged 28 commits into
mainfrom
batch/pr-sweep-20260924
Sep 24, 2026
Merged

zkWizard merged 28 commits into
mainfrom
batch/pr-sweep-20260924

Conversation

@zkWizard

Copy link
Copy Markdown
Owner

This is an integration batch, so the required E2E smoke (WebGL) job (~45 min) runs once for these PRs instead of once each under the up-to-date ruleset. Each PR's head commit is merged in unchanged, so GitHub marks the originals as merged when this lands.

Included

Not included

Local verification

npm ci, tsc --noEmit, eslint ., prettier --check, 286 files / 4664 unit tests pass, catalog check passes, and the build's entry bundle is 55.2 kB gzip (budget 60).

🤖 Generated with Claude Code

cursoragent and others added 28 commits August 19, 2026 23:43
Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Quinn The Wizard <zkWizard@users.noreply.github.com>
`formatSpanKm`'s doc comment promises "one decimal below that so a
monument-sized box does not collapse to '0 km'", but one decimal only
moves the collapse threshold to 50 m. Nominatim returns a fixed
0.0001-degree square for an OSM object mapped as a bare node, which is
11 m north-south — under that threshold.

Measured on the live API, "Old Faithful" and "Steamboat Geyser" both
return exactly that box, so the volcano and plate sections rendered
"about 0.0 km north-south and 0.0 km east-west" and the seismicity
section "Epicentres within 0.0 km of the search-extent centre".

Both readouts exist to give the numbers beside them a scale, and the
seismicity radius is the qualifier on a negative result — at 0.0 a
reader cannot tell a 7 m search from no search. Guard the floor so a
positive value below the printed precision reads "<0.1", mirroring
`snowAveragedSupport.formatDrawnShare`'s "<1%". An exact zero still
prints 0.0, where the absence of extent is real.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Two overlays can be open at once: `?` raises the shortcuts sheet over
whichever panel the reader already had open. Each overlay listens for
Escape on `document`, so a single press ran all four handlers and closed
everything — glancing at the shortcuts sheet cost the reader the
providers panel they were reading, and they had to reopen it and find
their place again.

The trap stack already solved this shape for Tab: the topmost overlay
owns the key. Escape now asks the same question through a named
`FocusTrap.isTopmost()`, which Tab's own check is routed through too, so
the two keys cannot drift apart again. Each press peels off one layer
and hands focus back to the panel underneath.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Asking "am I the topmost trap?" inside each Escape handler was not
enough, and the spec caught it: every overlay listens on `document`, so
one press runs all of their handlers in turn. The topmost overlay closed
first and popped itself off the stack, so the panel underneath found
itself on top while the same event was still being dispatched, and
closed too — exactly the behaviour this was meant to end.

`claims(event)` settles it once per press: topmost, and not already
taken. Order of registration no longer matters. Tab keeps the plain
topmost check, since it closes nothing and the stack stays put.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bumps [@vitest/mocker](https://github.com/vitest-dev/vitest/tree/HEAD/packages/mocker) to 4.1.11 and updates ancestor dependency [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). These dependencies need to be updated together.


Updates `@vitest/mocker` from 4.1.10 to 4.1.11
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.11/packages/mocker)

Updates `vitest` from 4.1.10 to 4.1.11
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.11/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/mocker"
  dependency-version: 4.1.11
  dependency-type: indirect
- dependency-name: vitest
  dependency-version: 4.1.11
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [three](https://github.com/mrdoob/three.js) from 0.185.1 to 0.186.0.
- [Release notes](https://github.com/mrdoob/three.js/releases)
- [Commits](https://github.com/mrdoob/three.js/commits)

---
updated-dependencies:
- dependency-name: three
  dependency-version: 0.186.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action/init](https://github.com/github/codeql-action) from 4.37.7 to 4.38.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@ff2f1c6...b96794f)

---
updated-dependencies:
- dependency-name: github/codeql-action/init
  dependency-version: 4.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action/analyze](https://github.com/github/codeql-action) from 4.37.7 to 4.38.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@ff2f1c6...b96794f)

---
updated-dependencies:
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) from 4.37.7 to 4.38.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@ff2f1c6...b96794f)

---
updated-dependencies:
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…/codeql-action/init-4.38.0' into batch/pr-sweep-20260914
…/codeql-action/analyze-4.38.0' into batch/pr-sweep-20260914
…/codeql-action/upload-sarif-4.38.0' into batch/pr-sweep-20260914
…ries-20260822-2100' into batch/pr-sweep-20260914
vite 8.3.0 pulls rolldown 1.2.8, which inlines the landCoverPalette,
plateBoundaryHover and snowCover lazy chunks into the entry and blows the
entry budget (54.2 -> 75.7 kB gzip of 60). Keep vite at 8.2.1 for now.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Bumps [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) from 4.37.7 to 4.38.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@ff2f1c6...1c5b675)

---
updated-dependencies:
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.38.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action/init](https://github.com/github/codeql-action) from 4.37.7 to 4.38.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@ff2f1c6...1c5b675)

---
updated-dependencies:
- dependency-name: github/codeql-action/init
  dependency-version: 4.38.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action/analyze](https://github.com/github/codeql-action) from 4.37.7 to 4.38.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@ff2f1c6...1c5b675)

---
updated-dependencies:
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.38.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
The HUD was a 301px column of six stacked rows covering the bottom 40% of
a 1440x900 window, and at 390x844 the centre of the view hit-tested the
legend instead of the globe. It is now a floating dock: one main row
(layer pill, month and steppers, scrubber, colour scale) and a meta line
(status with its Retry, the citation, and "About this layer"). The dock
is 860x73 on a desktop and about 160px on a phone.

- The scale's title, the caption and the source note move one level
  deeper, into an in-place "About this layer" disclosure. The product ID
  and month stay visible by default.
- Land cover's classes show as a colour strip in the dock; the named
  list opens under "About this layer".
- #legend and #timeline are `display: contents`, placed on a named-area
  grid, so Legend.ts and TimeSlider.ts build the same DOM as before.
- Below 900px the scrubber takes a full-width row. The dock keeps a
  gutter for the toolbar column, so the two no longer overlap.
- The fold is phone-only now: bottom-right, height-neutral, one row when
  folded. Landscape phones clear the centre of the view at 667x375,
  740x360 and 844x390.
- The phone overlay sits on top of the toolbar's measured height instead
  of lifting only the credits line, which had overlapped the dock.
- TimeSlider observes the track, since a display: contents container has
  no box for a ResizeObserver to watch. A stride-aligned year closer than
  one stride to the first label is skipped (2000 and 2001 used to
  collide).
- The layer pill stays on one line, and the loader now covers every
  control while booting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each spec below encoded the old column layout. Each change keeps the
requirement the spec protected:

- a11y steppers: "below the track" becomes "never intersects the track".
- hud-collapse: fold tests move to a narrow window. A new test pins that
  a short desktop window has no fold and keeps the centre on the globe.
  "Left of the pill" becomes "does not overlap the pill".
- phone-attribution-clearance: "the HUD must not move with the bar"
  becomes "the credits follow the bar, and the dock never sits on their
  plate".
- probe-overlap-short-window: the fold isn't rendered at desktop sizes;
  the scrubber and "About this layer" must be reachable with a probe open.
- timeline-resize-density: start where the track is widest (880px), not
  where the window is.
- toolbar-height-continuity: the premise flips from "overlap exists" to
  "no overlap", as the spec's own comment asked.
- layer-caption-phone (desktop): the caption is hidden by default and
  visible after "About this layer".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…/codeql-action/upload-sarif-4.38.1' into batch/pr-sweep-20260924

# Conflicts:
#	.github/workflows/scorecard.yml
…/codeql-action/init-4.38.1' into batch/pr-sweep-20260924

# Conflicts:
#	.github/workflows/codeql.yml
…/codeql-action/analyze-4.38.1' into batch/pr-sweep-20260924
@zkWizard
zkWizard merged commit ed0af28 into main Sep 24, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants