Commit Graph
894 Commits
Author SHA1 Message Date
Sameh Khamis 046126eb36 Merge branch 'main' into feat/aqhi
Port to current main: main reserved layer-state token 0 for street-level, so
air-quality takes the next free token, 4 (registry, ledger, and the allocation
tests shift by one). Main moved source contracts into sourceComposition.js, so
air-quality registers its getSnapshot contract there. Package boundaries keep
main's lists plus this branch's air-quality modules and packages.
2026-10-15 12:39:00 -07:00
Sameh Khamis c9f43e8517 Merge branch 'main' into feat/bikeshare-toronto-and-failure-fix
# Conflicts:
#	CHANGELOG.md
#	DATA_SOURCES.md
#	docs/CURRENT-STATE.md
2026-10-15 12:35:18 -07:00
Sameh Khamis 1bb8643a28 Merge branch 'main' into fix/cap-remaining-upstream-reads
# Conflicts:
#	CHANGELOG.md
2026-10-15 12:34:49 -07:00
Said Turksever ab14f48360 Merge branch 'main' into pr/panoramax 2026-10-15 20:17:28 +01:00
Trygve Hemminghytt e2dacd92ea Merge remote-tracking branch 'origin/main' into HEAD 2026-10-15 21:15:57 +02:00
Said TurkseverandClaude Opus 5.5 56b113397d Merge upstream main into pr/panoramax
CHANGELOG: kept both Unreleased entries (satellite cloud filter #1084 and
Panoramax).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 20:07:26 +01:00
Said Turksever 09bdc105a6 Merge branch 'main' into feat/bikeshare-norway 2026-10-15 20:04:57 +01:00
Mazeyar Moeini Feizabadi 8959b5b71a fix(weather): preserve filter drag previews across panel refreshes 2026-10-15 20:52:22 +02:00
NotProniss 86b7dc8d3c feat(weather): add satellite cloud filter strength slider
Blend the existing infrared brightness key from Full (0%) to Clouds only (100%), preserving Soft/Vivid as independent opacity presets. Commit filter changes on slider release and retain legacy share-link mode codes.
2026-10-15 20:52:22 +02:00
Sameh Khamis c42b072e99 fix(overpass): tag caches by the sorted upstream set and cover installations
Uses a full SHA-256 of the sorted instance list, so reordering the same
instances for failover keeps the cache. Adds the installation-cache repoint
test (tagged, reordered, repointed, untagged, unconfigured) and the changelog
and current-state notes.
2026-10-15 10:48:38 -07:00
Meir Michanie 0211e6e877 Merge upstream/main: cockpit emergency, GNSS integrity and GeoJSON import meet i18n
Upstream advanced past the KartaView merge: transponder-emergency HUD
wording (formatCockpitEmergency in cockpitMath), the GNSS integrity
layer joined the Events group, and a GeoJSON/KML/KMZ/GPX file-import
control landed - all in regions this branch localizes.

- cockpitMath: upstream's formatCockpitEmergency kept alongside the
  branch's formatter-injected Context scope (module stays i18n-free;
  squawk/ADS-B codes and the broadcast label are data).
- cockpitInstruments: the emergency HUD line composed with t()
  placeholders; fleet/feedState stay translated, the 'emergency' class
  toggle kept.
- layerPanel: upstream's gnss-integrity id with msg('Events').
- package-boundaries: both sides' entries unioned.
- New upstream UI strings marked and translated, as the branch's
  unmarked-string detector requires: the geo-import control's markup
  (data-i18n-title/-aria-label/text), its list titles, hints and
  summarize() lines (t/tn with placeholders), the aircraft emergency
  labels (msg data), and the GNSS legend blurb (t with placeholders).
- es/ru catalogs: 26 new keys each (2019 messages).

npm run i18n: complete, no unmarked strings. npm test: 6739/6741 (the
one failure is the pre-existing environmental OPENAI_API_KEY leak in
devFreshDotenv). Build passes.
2026-10-15 19:37:26 +02:00
Said Turksever eeb8bc83fd Merge branch 'main' into feat/bikeshare-norway 2026-10-15 17:56:23 +01:00
Said Turksever 42d3c0c0d2 Merge branch 'main' into feat/bikeshare-norway 2026-10-15 17:32:25 +01:00
SaidandClaude Opus 5.5 7056fa113e Merge main into fix/radio-mirror-null-body
Resolve the CHANGELOG conflict by keeping every entry from main and
adding the radio entry on top; the previous main merge (cebd870)
had dropped 19 of main's entries.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 17:30:20 +01:00
Said Turksever 9e6ecc2ca6 Merge branch 'main' into fix/363-geocode-proxy 2026-10-15 17:02:14 +01:00
quanticsoul4772andClaude Opus 5.5 38b95fb3b1 Merge upstream main into feat/tools-area-breakdowns
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 09:00:37 -07:00
Said TurkseverandClaude Opus 5.5 b5de533567 Merge upstream main into pr/panoramax
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 16:56:15 +01:00
Said TurkseverandClaude Opus 5.5 b645a767c8 Street Level: Panoramax review follow-ups (gekh, #1134)
Image loading (photoViewer.js)
- One AbortController per open: a new open, close or unmount stops the
  previous photo's first and sharper downloads (an <img> by src = '').
  A collapsed viewer never falls back to the original; Panoramax's flat
  fallback is the thumbnail. A superseded open resolves quietly.
- Flat HD tracked as "loading" and "shown" apart: a discarded response no
  longer blocks later upgrades, and resizes while it loads ask once.
- No upgrade of the photo still shown while another opens.
- Size limits before decoding: imageSize.js reads JPEG/PNG/WebP/GIF
  headers; more than 64 MP or 16,384 px a side is refused undecoded, an
  <img> that decodes larger is refused and let go, flat HD needs a known
  width of at most 8,192 px, and panoramas always decode with a resize.

Panoramax provider
- Retry-After parsed as seconds or an HTTP date; the browser cannot read
  it here, so busy answers back off 5 s doubling to 300 s, reset once
  answered.
- Headers timed, then the body by an idle timeout (15 s of silence), so a
  slow link still gets its megabyte tiles.
- Cones centre only on the picture shown (onShowing), never on a late
  lookup; lookups nobody waits for are aborted (shared, refcounted).
- onReopen: a GPU reset redraws in the viewer, not through the core.
- Cones draw the home z15 tile at once and add neighbours as they arrive;
  a neighbour that failed is not counted as drawn.
- Coverage tiles decode in ~8 ms slices (a 2 MB z10 tile over Paris was
  one ~85-200 ms task); sorted by measured length without a Map.
- Box search asks for 20, not 100 (the API returns them nearest first).
- looksLikeEmail checks every '@'; creatorOf de-duplicates with a Set.

lineCoverage.js
- A redraw while a swap still builds keeps what is on screen (the swap's
  old lines and its ready new ones) and drops only the unready ones.

Tests for each (mutation-checked), two vacuous tests made real, the
cones' pictures lane and readable()'s busy/timeout paths covered; the
fixture's box search is nearest first. Docs: README filters and share
links, CHANGELOG HD wording, CURRENT-STATE.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 16:55:59 +01:00
Said Turksever 7646c4ca4d Merge branch 'main' into contrib/gods-021-cmr-raw-page-budget-20261011-reviewed 2026-10-15 16:50:16 +01:00
Said Turksever a0682a5965 Merge branch 'main' into contrib/gods-020-thumbnail-presence-proof-20261011-reviewed 2026-10-15 16:30:03 +01:00
quanticsoul4772 9688f15af7 Merge branch 'main' into feat/tools-area-breakdowns 2026-10-15 08:20:45 -07:00
Said Turksever c9076c579a Merge branch 'main' into contrib/gods-012-surface-tab-order-20261011-reviewed 2026-10-15 16:13:42 +01:00
Said TurkseverandClaude Opus 5.5 25f5812e10 Merge upstream/main into PR #1042
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 15:56:27 +01:00
Said Turksever 232e957786 Merge branch 'main' into contrib/gods-017-ambiguous-camera-direction-20261011-reviewed 2026-10-15 15:50:24 +01:00
Said TurkseverandClaude Opus 5.5 55651da2c6 Merge upstream/main into PR #1042
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 15:43:48 +01:00
Said Turksever 2c52e01701 Merge branch 'main' into contrib/gods-030-regional-calendar-evidence-20261011-reviewed 2026-10-15 15:39:10 +01:00
Said Turksever 78a9aeb179 Merge branch 'main' into contrib/gods-022-firms-calendar-validity-20261011-reviewed 2026-10-15 15:26:06 +01:00
Said Turksever 22e60098da Merge branch 'main' into contrib/gods-010-catalog-cancellation-v2-20261011-reviewed 2026-10-15 15:17:39 +01:00
Said Turksever 8ca74cccf7 Merge branch 'main' into contrib/gods-003-boundary-probe-recovery-20261011-reviewed 2026-10-15 14:55:05 +01:00
Said Turksever 12611ba414 Merge branch 'main' into contrib/gods-020-thumbnail-presence-proof-20261011-reviewed 2026-10-15 14:50:46 +01:00
Said Turksever f77276ecf0 Merge branch 'main' into contrib/gods-012-surface-tab-order-20261011-reviewed 2026-10-15 14:49:52 +01:00
Said Turksever ab3f644d8a Merge branch 'main' into contrib/gods-017-ambiguous-camera-direction-20261011-reviewed 2026-10-15 14:49:38 +01:00
Said Turksever 5fd6f6c4f8 Merge branch 'main' into contrib/gods-030-regional-calendar-evidence-20261011-reviewed 2026-10-15 14:49:19 +01:00
Said Turksever d1929344d1 Merge branch 'main' into contrib/gods-010-catalog-cancellation-v2-20261011-reviewed 2026-10-15 14:48:57 +01:00
Said Turksever debe0aef8a Merge branch 'main' into contrib/gods-022-firms-calendar-validity-20261011-reviewed 2026-10-15 14:48:43 +01:00
Said Turksever e3d6609f08 Merge branch 'main' into contrib/gods-003-boundary-probe-recovery-20261011-reviewed 2026-10-15 14:47:47 +01:00
Said Turksever 2560af5016 Merge branch 'main' into contrib/gods-018-terrain-request-coordinate-boundary-20261011-reviewed 2026-10-15 14:47:07 +01:00
Said Turksever cebd870b3b Merge branch 'main' into fix/radio-mirror-null-body 2026-10-15 14:33:30 +01:00
Said TurkseverandClaude Opus 5.5 1fffdf7600 Merge upstream/main into fix/363-geocode-proxy
Resolve SECURITY.md against the Street View provider (#966): the browser
key now loads the Maps JavaScript API as well as Map Tiles, so the
'Map Tiles only' guidance becomes 'Map Tiles + Maps JavaScript API'
here and in CHANGELOG, CURRENT-STATE and google-key.js. The CHANGELOG
entry moves to [Unreleased]; its old section shipped in 0.2.0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 14:28:26 +01:00
German KhokhlovandClaude Opus 5.5 8029747b7e Merge origin/main: GNSS integrity, geo file import and cockpit emergencies meet i18n
Conflicts resolved by keeping both sides: the Events group gains
gnss-integrity with a translated label, the cockpit aircraft line shows
main's transponder emergency through a localized formatter (cockpitMath.js
stays i18n-free, like the Context scope line), and the boundary lists keep
both the i18n modules and main's new data modules.

Main's new UI is translated into es and ru: the GNSS Integrity row, legend
and notes; geo file import (button, hints, list actions, every import
error, with numbers passed as placeholders); transponder status names.
Also formats kartaview/viewer.js so format:check passes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 16:55:45 +04:00
Said TurkseverandClaude Opus 5.5 de83e1c17f Merge upstream/main into pr/panoramax
CHANGELOG: keep both new [Unreleased] entries (Panoramax, and the
emergency-transponder highlight from #856).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 12:57:53 +01:00
Mazeyar Moeini Feizabadi e3c07e43e3 Merge current main and reviewed GNSS into import integration 2026-10-15 13:48:39 +02:00
Mazeyar Moeini Feizabadi 65239ed110 Merge current main into GNSS integration candidate 2026-10-15 13:46:45 +02:00
ulihhhhandClaude Opus 5.5 da0a840b7b Merge upstream/main into feature/catalonia-cctv-cameras
Keep both: Catalonia CCTV alongside the NYC DOT TMC pack in the source
imports, README layer table and CURRENT-STATE data table, and both
CHANGELOG entries.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 10:09:28 +02:00
Meir Michanie 343a5df057 Merge branch 'main' into i18n-spanish 2026-10-15 08:57:13 +02:00
Sameh Khamis 56ca8fd922 Merge branch 'main' into contrib/gods-026-map-subscription-ownership-20261011-reviewed
# Conflicts:
#	CHANGELOG.md
2026-10-14 21:11:47 -07:00
Sameh Khamis 20730e5ec5 Merge branch 'main' into contrib/gods-025-asset-stream-cancellation-20261011-reviewed
# Conflicts:
#	CHANGELOG.md
2026-10-14 19:54:24 -07:00
Rudy Mizrahi CelekliandSameh Khamis fd5a1ef856 fix(tools): keep results when a timestamp is outside Date's range (#1045)
isoTime returned toISOString() for any finite number, which throws past ±8.64e15 ms, so one bad record (e.g. a bike-share last_reported) failed the whole tool answer. Such timestamps are now null. The voice analyst's result rows had the same conversion and get the same guard.

Co-authored-by: Sameh Khamis <[email protected]>
2026-10-14 19:54:17 -07:00
Sameh Khamis b9fa0eedcc fix(maps): stop all delivery once the controller is destroyed
A listener could destroy the controller and re-subscribe one still pending in
the snapshot, which then ran. Delivery now stops at destruction and a destroyed
controller takes no listeners. Adds ordering tests for adds, duplicates and
re-adds during delivery, and moves the current-state note after the section
intro.
2026-10-14 19:23:46 -07:00
Sameh Khamis bf4edb5bdb fix(director): discard an asset cancelled during reader cleanup
The finally block awaits reader.cancel(), so a cancel arriving there still let
the bytes return. Rechecks the signal after cleanup, with a test that keeps the
caller's abort reason, and wraps the current-state note.
2026-10-14 19:23:12 -07:00