fix(air-quality): show the Weather card, add voice support and bound the feed

The card never appeared: the Weather panel only passed five fixed ids and only
rendered lists and categorical legends for cyclones. Air quality now reaches
the panel, the legend style comes from the layer's descriptor, and any layer
with list items gets its list. Adds the voice manifest entry main now requires,
reads ECCC through the shared capped JSON reader with a 15 s deadline and the
row limit enforced, reports stale when every reading was too old, adds source
tests, links the ECCC licence and moves the changelog entry into Unreleased.
This commit is contained in:
Sameh Khamis committed 2026-10-15 13:13:17 -07:00
1 parent 046126eb36
commit 129174c3ab
17 files changed
+440 -148

No files matched your search

+13 -13
View File
@@ -147,6 +147,19 @@
## [Unreleased]
- Add a keyless Air quality layer to the Weather group, with Environment and
Climate Change Canada's AQHI as the first registered provider. Readings carry
`{ provider, scale, value, band }` so another network can be added without
inventing a shared numeric meaning across indices that do not share one; the
row and readout both state that coverage is Canada only. The WEATHER card
shows the band legend and the highest readings currently in view. AQHI is
reported as an integer from 1 with an open-ended "10+", so readings round to
that published form rather than the decimal precision the API returns.
Readings older than six hours are dropped, and the layer reports `stale`
through `getStats()` (also when every observation was dropped) so feed
provenance cannot describe an aged feed as live. Voice can switch it on and
query readings by value, band, station and observation time.
- Satellite clouds keep Clouds only / Full as quick endpoints and add a continuous
cloud-filter slider: 0% is Full, 100% is the existing brightness key, and
intermediate values blend the keyed alpha. The slider commits on release to
@@ -1041,19 +1054,6 @@ Launch payloads with missing records now say PAYLOAD DATA UNAVAILABLE. Missing n
This changelog records public product changes. For the authoritative description
of current runtime behavior, see [`docs/CURRENT-STATE.md`](docs/CURRENT-STATE.md).
## [Unreleased]
- Add a keyless Air quality layer to the Weather group, with Environment and
Climate Change Canada's AQHI as the first registered provider. Readings carry
`{ provider, scale, value, band }` so another network can be added without
inventing a shared numeric meaning across indices that do not share one; the
row and readout both state that coverage is Canada only. The WEATHER card
shows the band legend and the highest readings currently in view. AQHI is
reported as an integer from 1 with an open-ended "10+", so readings round to
that published form rather than the decimal precision the API returns.
Readings older than six hours are dropped, and the layer reports `stale`
through `getStats()` so feed provenance cannot describe an aged feed as live.
### Other changes
- Add ECMWF IFS model selection to Wind (#464, thanks @beneduzi), with model-scoped forecast-step caches, cancellation of replaced requests, and separate issue/valid timestamps.