Commit Graph
1472 Commits
Author SHA1 Message Date
ulihhhhandClaude Opus 5.5 53cda29be4 fix(gbfs): count docks, not PBSC's geofenced area, as station capacity
PBSC adds the bikes a station accepts in the geofenced area around its
docks to `capacity`, and reports that part as `geofenced_capacity`, which
is not a GBFS field. Bilbao Bizi publishes 39 docks as capacity 839 with
geofenced_capacity 800, so its stations would read as nearly empty: red,
drawn at maximum size, and carded "39 avail · 0 docks · 839 cap".
BiciMAD (671 of 678 stations, about twice the docks) and Dbizi (11 of 70)
do the same.

The shared parser now reads `capacity − geofenced_capacity` when the
extension is present and no larger than the total, so the layer, its
colour ratio and get_bike_share all see the docks. No registered system
changes: none of the 52 publishes a geofenced capacity above 0 (live
feeds, 2026-10-17, all 13,397 capacities identical).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 22:33:57 +01:00
ulihhhhandClaude Opus 5.5 ee686a3207 fix(gbfs): read underscores in station names as word breaks
JCDecaux's Spanish contracts prefix every station name with "_", and
Valenbisi joins its words with it ("_PLAZA_MUSICO_LOPEZ_CHAVARRI"), so
the card and HUD would show the raw identifier. The shared parser now
reads a run of underscores, with the spaces around it, as one word break
and trims the ends. It applies to `name`, the `short_name` fallback and
GBFS v3 localized names, so the layer and get_bike_share both read it.

No registered system changes: run over all 52 live station_information
feeds on 2026-10-17, the old and new parsers give identical names for
all 13,397 stations. Other spacing stays as the operator published it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 22:33:57 +01:00
Sameh Khamis dd079db9b3 Merge pull request #1101 from VG31OP/fix/tle-catalog-matching
fix(satellites): reject TLE pairs with mismatched catalog numbers (#906, #936)
2026-10-17 14:00:30 -07:00
Sameh Khamis df5ad4ca4a Pair TLE lines through the shared decoder and add the changelog fragment 2026-10-17 13:46:00 -07:00
Sameh Khamis 155f5165d5 Merge branch 'main' into fix/tle-catalog-matching 2026-10-17 13:45:09 -07:00
Sameh Khamis 84da1b9606 Merge pull request #287 from onionviolet/codex/shared-geodesy
refactor(geo): share great-circle distance utility
2026-10-17 13:44:03 -07:00
Sameh Khamis aa52ab2eca Merge branch 'main' into codex/shared-geodesy 2026-10-17 13:37:28 -07:00
Sameh Khamis 5ce56bddd4 Merge pull request #767 from hneogy/fix/alpha5-norad-id
fix(satellites): decode Alpha-5 catalog numbers in the layer and the satellite tools
2026-10-17 13:31:26 -07:00
Sameh Khamis 6a7935c49e Merge branch 'main' into fix/alpha5-norad-id 2026-10-17 13:25:19 -07:00
monwiss 743ed639e5 fix(dev): stop the dev server watching .gev-cache and .gev-logs (#761)
Providers write cache files and logs into .gev-cache and .gev-logs while the app runs. A serve-only standalone plugin adds both to server.watch.ignored, so the dev watcher no longer stats them; source changes still reload.
2026-10-17 12:18:32 -07:00
Nurstar 2f4b84600b fix(deps): bump dompurify, sharp and source-map-js for disclosed advisories (#1094)
Update DOMPurify 3.4.15 -> 3.4.17, Sharp 0.35.4 -> 0.35.5 (with its @img platform packages) and source-map-js 1.2.1 -> 1.2.2 in package-lock.json for GHSA-p98j-92pf-mc4p, GHSA-6688-9rhm-gjv2, GHSA-wq5f-xc86-pv6w and GHSA-68fv-2mgg-jv7q. npm audit reports no vulnerabilities.
2026-10-17 12:13:47 -07:00
Sameh Khamis 200a83465b Merge pull request #839 from dajiaohuang/docs/fix-adsbdb-cache-ttl
docs: correct ADSBDB cache TTL note
2026-10-17 12:07:42 -07:00
Sameh Khamis 0977cfc9cb Merge branch 'main' into docs/fix-adsbdb-cache-ttl 2026-10-17 12:02:43 -07:00
Sameh Khamis 710f2e9710 Merge pull request #1196 from HyperionBurn/docs/qa-gate-npm-alias-list
docs: list every npm alias for the qa gates
2026-10-17 12:02:40 -07:00
Sameh Khamis eb10f7ab0c Add the changelog fragment and document the shared distance contract 2026-10-17 11:43:23 -07:00
Sameh Khamis 64d7ed3c61 Merge branch 'main' into codex/shared-geodesy 2026-10-17 11:42:58 -07:00
Sameh Khamis 7ec84ac316 Decode catalog numbers strictly and add the changelog fragment
Route tleCatalogNumber() and noradIdFromSatnum() through one decoder that
accepts only plain digits or a valid Alpha-5 field. parseInt and Number()
read '2554A', '255 4', '-1234', '0x1F0', '1.5' and blank as numbers; they
now return null/NaN. Digit satnums of any length still decode, so OMM
satrecs numbered past 99999 keep working.

Add a layer test that several Alpha-5 satellites survive ingestion dedupe,
the changelog fragment for #767, and note in CURRENT-STATE that this is
Alpha-5 TLE compatibility and malformed fields are rejected.
2026-10-17 11:40:30 -07:00
Sameh Khamis 6ae854c121 Merge branch 'main' into fix/alpha5-norad-id
# Conflicts:
#	src/layers/satellites/ingestion.js
2026-10-17 11:36:21 -07:00
Sameh Khamis 761953b0bf Correct the remaining permanent-cache comments
The adsbdb proxy keeps successful and 404 answers for 24 hours; two policy comments and the provider's doc comment still said forever.
2026-10-17 11:30:46 -07:00
Sameh Khamis 7828f69038 Name the two QA gates CI runs
The CI callout said no qa-*.mjs gate runs in CI; the workflow runs the Street Level fixtures and panel-resize gates against the built preview.
2026-10-17 11:30:38 -07:00
Sameh Khamis 84cd4d7f99 Merge branch 'main' into docs/fix-adsbdb-cache-ttl 2026-10-17 11:30:30 -07:00
Sameh Khamis 7a63afe659 Merge branch 'main' into docs/qa-gate-npm-alias-list 2026-10-17 11:30:29 -07:00
Said Turksever 73aec2e6b2 Merge pull request #867 from djabhi31/test/earthquake-records-validation
test(earthquakes): add unit test coverage for earthquake snapshot normalization and space requests
2026-10-17 17:28:20 +01:00
Said Turksever d64028d7ff Merge branch 'main' into test/earthquake-records-validation 2026-10-17 17:15:39 +01:00
Said Turksever 30976f917e Merge pull request #1186 from rudycelekli/contrib/gods-next-36-launch-null-coordinates-20261016
fix(launches): keep null pad and landing coordinates unknown instead of 0
2026-10-17 17:14:19 +01:00
wasif 243e84150c docs: list every npm alias for the qa gates
CONTRIBUTING.md said "Only a couple (`qa:map-source-tray`, `qa:transit`) have
an `npm run` alias". package.json defines five: `qa:map-source-tray`,
`qa:panel-resize`, `qa:street-level`, `qa:street-level:fixtures` and
`qa:transit`.

The two missing names are not incidental -- .github/workflows/ci.yml already
invokes `npm run qa:street-level:fixtures` and `npm run qa:panel-resize`, so a
contributor reading the guide is told to reach for `node scripts/<gate>.mjs`
for gates the project itself runs through npm.

Verified against package.json scripts and .github/workflows/ci.yml on main
(1df2a27).
2026-10-17 19:53:02 +04:00
VG31OP 40442ab854 style: fix whitespace formatting in tle.js and space.test.mjs 2026-10-17 17:01:13 +05:30
Rudy Celekli 4690a5bea9 docs(launches): describe unknown-coordinate and flight labels
Signed-off-by: Rudy Celekli <[email protected]>
2026-10-16 23:20:07 -04:00
Rudy Celekli 3748e9c23a Merge remote-tracking branch 'origin/main' into HEAD 2026-10-16 23:19:12 -04:00
Rudy Celekli d3e11bfbca test(launches): cover null top-level landing coordinates
Signed-off-by: Rudy Celekli <[email protected]>
2026-10-16 23:19:12 -04:00
Sameh Khamis 1df2a272cf Merge pull request #1111 from Rohilalala/fix/map-fallback-retry
fix(maps): retry the real imagery and terrain provider after a fallback
2026-10-16 17:16:52 -07:00
Sameh Khamis 1c2910481e Merge branch 'main' into fix/map-fallback-retry 2026-10-16 17:11:05 -07:00
Sameh Khamis cc84ab11b1 Merge pull request #1071 from cj-vana/feature/geo-uri-search
feat(search): resolve two-dimensional geo URIs offline
2026-10-16 17:10:53 -07:00
Sameh Khamis 0c3723e930 Merge branch 'main' into feature/geo-uri-search 2026-10-16 17:06:38 -07:00
Rudy Mizrahi Celekli 2fd1b4323c fix(tools): identify historical camera fallback imagery (#1118)
The CCTV frame proxy marks a Street View fallback with X-CCTV-Source, but the portable source dropped the header and get_cctv_snapshot always reported a current view credited to the camera's agency. The source now keeps the recognised provenance, and the tool labels Street View frames as historical Google imagery, refuses synthetic placeholders, and reports unknown provenance without claiming a current view.
2026-10-16 17:06:34 -07:00
Sameh Khamis 79176667b0 Merge pull request #973 from Sunil56224972/fix/tomtom-cross-site-gate
fix(traffic): refuse cross-site requests before they spend the TomTom budget
2026-10-16 17:01:31 -07:00
Sameh Khamis d9aa2bd06d Release attempt timers on destroy and the replaced fallback terrain
destroy() now expires every retry attempt in flight, clearing its deadline
timer and aborting its signal at once rather than when the attempt settles,
and leaves no retry marked as running.

A successful terrain retry overwrote the cached fallback without releasing
it. The replaced fallback is now disposed as soon as the real terrain takes
its place on screen, or, when it stayed installed behind a 3D tileset, once
the next globe activation replaces it.
2026-10-16 16:53:42 -07:00
Sameh Khamis 759c7964c7 Bound fallback retry attempts with a deadline
An Esri or keyless terrain attempt that never settled kept the single-flight
retry open forever, so neither provider was retried again. Each attempt now
counts as failed after 60 seconds and the retry backs off as usual; its
signal is aborted, and a provider that lands after the deadline is released
rather than installed or cached.

CURRENT-STATE now says only the construction fallback to OSM is retried, not
the switch made after repeated Esri tile failures.
2026-10-16 16:47:11 -07:00
Sameh Khamis f0d43a62e8 Keep fallback retries single-flight and recover imagery and terrain independently
An activation that re-showed a fallback while a retry was in flight armed a
second timer, so two retries could run at once and land out of order, leaving
the cache and the screen on different providers. Retries now run one at a
time; a request made meanwhile re-arms once the current one ends, and a
result that is obsolete or no longer wanted is disposed.

Imagery and terrain retries are now handled as each settles, so a stalled
terrain attempt no longer keeps recovered imagery off screen, or the reverse.
2026-10-16 16:40:34 -07:00
Sameh Khamis f0a04fbbaa Move the changelog entry into changelog.d and watch the Google geocode proxy in QA
Main now takes release notes as one fragment per pull request (#787). The browser asks Google through /api/google/geocode, so the no-geocoder-request check now watches that route.
2026-10-16 16:39:28 -07:00
Sameh Khamis ac258e98d9 Merge branch 'main' into feature/geo-uri-search
# Conflicts:
#	CHANGELOG.md
2026-10-16 16:39:21 -07:00
Sameh Khamis cc977b9e58 Move the changelog entry into changelog.d
Main now takes release notes as one fragment per pull request (#787).
2026-10-16 16:39:13 -07:00
Sameh Khamis 53bb05abed Merge branch 'main' into fix/tomtom-cross-site-gate
# Conflicts:
#	CHANGELOG.md
#	SECURITY.md
#	docs/CURRENT-STATE.md
#	scripts/package-boundaries.json
#	src/tooling/environmentProviders.test.mjs
2026-10-16 16:39:03 -07:00
Sameh Khamis bc499f1401 Merge branch 'main' into fix/map-fallback-retry
# Conflicts:
#	CHANGELOG.md
2026-10-16 16:38:14 -07:00
Said Turksever 3e5a18f6d2 Merge pull request #718 from daikaginza/fix/tracked-info-vertical-rate
feat(flights): publish verticalRateMps on the tracked-aircraft descriptor
2026-10-17 00:32:31 +01:00
Said Turksever 12d36868de Merge branch 'main' into fix/tracked-info-vertical-rate 2026-10-17 00:20:08 +01:00
Sameh Khamis e15b169e3d Merge pull request #1135 from djabhi31/fix/director-scene-results-971
fix(director): keep scene results and save status accurate (#971)
2026-10-16 16:10:16 -07:00
Said Turksever 694c51d0d1 Merge branch 'main' into fix/tracked-info-vertical-rate 2026-10-17 00:06:57 +01:00
Sameh Khamis ef86796e4d Merge branch 'main' into fix/director-scene-results-971 2026-10-16 16:04:26 -07:00
Sameh Khamis 9898058fa5 Merge pull request #1142 from ariannamethod/codex/fix-antimeridian-polygon-containment
fix(perimeters): handle antimeridian queries and incident card anchors
2026-10-16 16:04:17 -07:00