Skip to content

feat(qcm): Check conditions starting set (QQA-18b) - #46

Merged
joepetjr merged 8 commits into
masterfrom
qqa-18b-presets
Oct 25, 2026
Merged

joepetjr merged 8 commits into
masterfrom
qqa-18b-presets

Conversation

@joepetjr

Copy link
Copy Markdown
Contributor

Ported from headlessmode-archive #799 (commit 8817715d), QC U13 camera chain (QC-04), plan row U13. Base qqa-16a-camera-list (PR for #798), stacked. Closed in the archive, not merged there; this is the port.

What changes: a Check conditions task preset (radar, air quality, smoke and fire perimeters on the topo base), appended last so saved and shared preset ids still restore.

Adapted to the shipped catalogue: master already has a seventh preset (Loud or quiet), so this is the eighth; the docs say eight buttons. Eight presets fill the grid's two rows of four exactly, so the old last-of-type span-2 rule is removed (it pushed the 390px layout over its 600px limit). Road and place names open ON on master, so the Check conditions proofs leave them out of the on-layer snapshot. The compact-panel budget is unchanged. At a 320px viewport the four preset columns floor at their longest word ("conditions") and ran 20px past the edge, which a first full run caught in a11y-dynamic-browser and dock-layout-browser; below 360px the grid is now two columns, the same shape the 287px dock already uses.

Tests (through bin/pytest-slot.sh, logs unpiped):

  • Red on the base with this PR's tests only: 29 tests, 22 pass, 7 fail.
  • Green: presets, layout, compact-panel, register, boundary and docs checks 87 of 87 pass; with the 320px fix, the reflow, dock, layout, compact-panel, presets and layers tests 128 of 128 pass (log f799b.log).
  • CI's node step, full (built site, browser tests ran), on this branch before opening: 3111 tests, 3111 pass, 0 fail, 0 skipped, exit 0. Python subset (front matter, content validation, privacy accuracy, headers wiring, a11y config, data contract, public tree): py_rc=0. The full run was with master at fdfc050; master then took fix(qcm): put the last seven map reads on fetchWithDeadline #38 (adapter reads on fetchWithDeadline), so this branch was rebased onto 530a556 (clean) and the boundary, no-raw-fetch, adapter-deadlines, control-register, acceptance-manifest and docs-promises checks re-run on the final head: all pass (log quick2.log).

Ported from headlessmode-archive #790 (commit 3e807b4f) onto master; conflicts in main.js and layer-registry.test.mjs resolved against master's groupHint and screen/names render maps.
… (QQA-18)

The Layers panel was headed by provider and rendering role. It now has ten
task headings (Map style, Places & routes, Land & access, Terrain &
landscape, Weather & conditions, Night sky, Cameras, Place facts, Explore
counties, Print options); every layer id has exactly one home. Search also
matches group purpose words and opens matching groups, restoring them when
cleared. An Active on map list shows each layer that is on with Remove and
Retry. Print-only pages are not counted as on the map.

Presentation only: ids, input ids, radio/checkbox roles, URL state and what
each layer draws are unchanged.

Ported from headlessmode-archive #794 (commit 7f665250). Adapted to the shipped catalogue: the
eleven layers added since get a task home, and the browser tests account for the default-on names
and roads layers in the Active list.
…16a)

Under the Cameras group, a list built from loaded camera records, not
pins: "In this view" (from zoom 7) or "Near selected place" (25 km, any
zoom), with purpose filters over the five camera layer ids.

- camera-layer.js: cameraList, cameraListStatus, cameraRowText,
  listLoadState, listPlace, PURPOSE_OF_LAYER, kmBetween, reachBox.
- main.js: builds and redraws the list (150 ms debounce, rows rebuilt
  only on change); the near scope loads the camera files around the
  place on demand. The latest place pick wins: finder, pin or places
  list, else the drawn area's centre.
- Counts are honest: "Listing the nearest 50 of 350" and the 300-pin
  cap is stated, never silent. Loading, zoom-in, nothing near,
  unavailable and partly-unavailable states are distinct, and a
  near-scope failure is judged on the near files alone.
- The Active on map list counts only layer rows, not the list controls.
- Tests: camera-list (11) and camera-list-browser J10, J10b-e (6).

Ported from headlessmode-archive #798 (commit 212364d9), stacked on the QQA-18 grouping PR.
Eighth task preset: radar, air quality, smoke and fire perimeters on the
topo base, appended last so every saved or shared preset id still restores.
Flood zones stay one switch away (a floodplain is not a condition), and
Explore outdoors maps to the existing Public land and Trails & terrain sets
rather than a near-duplicate button. Night sky docs now match the code.

Ported from headlessmode-archive #799 (commit 8817715d), stacked on the QQA-16a camera list PR.
The shipped catalogue already has a seventh preset (Loud or quiet), so this is the eighth.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Deploying headlessmode-current with  Cloudflare Pages  Cloudflare Pages

Latest commit: 5a97847
Status: ✅  Deploy successful!
Preview URL: https://db4ff1d2.headlessmode-current.pages.dev
Branch Preview URL: https://qqa-18b-presets.headlessmode-current.pages.dev

View logs

@joepetjr
joepetjr changed the base branch from qqa-16a-camera-list to master October 25, 2026 14:57
@joepetjr
joepetjr merged commit f156b5e into master Oct 25, 2026
5 checks passed
@joepetjr
joepetjr deleted the qqa-18b-presets branch October 25, 2026 19:00
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.

1 participant