Commit Graph
171 Commits
Author SHA1 Message Date
Said Turksever d921a1b801 Merge branch 'main' into fix/terrain-same-site-gate-on-686 2026-10-19 13:51:37 +01:00
quanticsoul4772 cd7e29c635 Merge branch 'main' into upstream/cctv-tarktee-refresh 2026-10-19 05:34:17 -07:00
Rudy Celekli ada7d8852f docs(changelog): record launch cache provenance PR 1199 2026-10-19 13:30:27 +01:00
Rudy Celekli f747c4828e docs: add Launch Library changelog for PR 1197 2026-10-19 13:11:58 +01:00
Jerry LaiandClaude Opus 5.5 e324e2231c docs(changelog): name the Taiwan CCTV fragment for #1237
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 17:53:27 +08:00
Jerry LaiandClaude Opus 5.5 73336b297e feat(cctv): add Taiwan Freeway Bureau camera pack
Read ~1,800 national freeway cameras at runtime from the Freeway Bureau's
keyless MOTC 2.0 CCTV.xml table. Each published MJPEG stream maps to the
same camera server's single-JPEG path; only those exact HTTPS pairs on the
four freeway.gov.tw camera servers are registered. On by default,
CCTV_TAIWAN_ENABLED=0 skips it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 17:52:47 +08:00
manjunath 1763143337 docs(changelog): record location resolution fix 2026-10-19 11:02:30 +05:30
quanticsoul4772andClaude Opus 5.5 ca9dbea060 docs(changelog): fragment for #1234
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 22:13:36 -07:00
yaka0007 9b400622af docs(changelog): add fragment for #1233 2026-10-19 01:13:30 -04:00
quanticsoul4772andClaude Opus 5.5 cd0956eef7 docs(changelog): fragment for #1228
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 15:46:13 -07:00
Trygve Hemminghytt 59db4ac227 docs(cctv): state the measured cold lookup time and what a slow first run leaves 2026-10-18 20:22:21 +02:00
Trygve Hemminghytt 15208b5c40 docs: move the changelog entry to changelog.d 2026-10-18 20:03:24 +02:00
manjunath 8d3c929740 docs: add numbered changelog for typed send rejection 2026-10-18 16:16:39 +05:30
daikaginza 558b0275a4 docs(changelog): move the entry into a changelog.d fragment
Main now takes pending entries as changelog.d/<pr>-<slug>.md
files (#787), so the entry leaves CHANGELOG.md for changelog.d/686-terrain-heights-bounds.md.
2026-10-18 13:36:06 +07:00
manjunath e20e858ba8 docs(changelog): record cctv routing fix 2026-10-18 11:15:09 +05:30
quanticsoul4772andClaude Opus 5.5 d39256e700 fix(tools): ship types read as their family; letterless destinations are unknown
AIS sends ship types as ITU-R M.1371 codes, so vessels_in_area grouped
"70", "74" and "79" as three types, and type: "tanker" matched nothing on
feeds that send codes. Codes now read as the family the vessel cards already
show (CARGO, TANKER, TUG), for rows, group_by and the type filter. The code
table moves to src/data/vesselTypes.js, which has no i18n import, so the
server-side tools can use it; vesselLabels re-exports it.

A destination with no letters ("0", "---") now counts as unknown.

Live, Singapore: "most by type: CARGO (3), TANKER (3), PASSENGER (1)"; "how
many tankers near Singapore" found 3.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 15:49:02 -07:00
Sunil56224972 97816a35de Merge remote-tracking branch 'upstream/main' into fix/terrain-same-site-gate-on-686 2026-10-18 03:36:52 +05:30
quanticsoul4772 d06e485c12 Merge branch 'main' into feat/tools-area-breakdowns 2026-10-17 14:49:25 -07:00
ulihhhhandClaude Opus 5.5 42e45e8fbe docs(changelog): add the Spanish city bike systems entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 22:33:57 +01:00
quanticsoul4772 661e1d7fa3 Merge remote-tracking branch 'origin/main' into feat/tools-area-breakdowns 2026-10-17 14:32:52 -07:00
quanticsoul4772andClaude Opus 5.5 aec4f67ca9 feat(tools): count aircraft in an area by airline
OpenSky, the default civil feed, reports no operator, so group_by: operator
said "no operator reported". aircraft_in_area now also takes
group_by: 'airline', read from the ICAO designator in each callsign: three
letters followed by a flight number that starts with a digit (SWA1234,
UAL12A). Registrations used as callsigns (N123AB) count as unknown. Rows are
unchanged; the designator is derived for the breakdown only.

Live, Texas: "785 aircraft ...; most by airline: AAL (89), SWA (65), UAL (52);
283 unknown."

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 14:32:46 -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 aa52ab2eca Merge branch 'main' into codex/shared-geodesy 2026-10-17 13:37:28 -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
Daniel Slay 5a87fb3b15 docs(changelog): credit the stills aspect fix 2026-10-17 15:15:09 -04: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
Daniel Slay 548e7f23d1 docs(changelog): credit the live camera color 2026-10-17 15:10:49 -04:00
Sameh Khamis eb10f7ab0c Add the changelog fragment and document the shared distance contract 2026-10-17 11:43:23 -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
Kevin Rajan 1c4c903ac6 fix(agent): align World Packet with reviewer feedback and voice parity
Reuse one context/contacts/tracking owner in voice and World Packet. Compare voice outputs after stripping presentation fields; remove the unconsumed fingerprint API pending an actual caller. Document the exported packet boundary and reject null options safely.

Review guidance: asturksever on origin #880; Windows parity diagnosis by quanticsoul4772. Existing source ownership retained.
2026-10-17 13:12:46 -05:00
Daniel Slay c09865e582 feat(cctv): FL511 Florida camera pack (stills, opt-in) 2026-10-17 13:50:33 -04:00
Kevin Rajan cefbad3c2a refactor(agent): preserve compact voice contract in World Packet extraction
Reconcile #880 with current main. Delegate the view-state builder while keeping enabled-only layers, disabledLayerCount, provenance, context semantics, and existing voice behavior. Add parity and roster-read regressions; retain package export, boundaries and changelog fragment.

Preserve original GEV voice, layer and packet contributor credit.
2026-10-17 05:04:55 -05:00
Kevin Rajan c1dd4171db fix(ui): verify real PanelChrome rail ownership of compact Radio
Carry reviewed #816 onto current main without conflicts; preserve i18n updates, replace obsolete changelog edit with a fragment, and add a constructor-wiring regression alongside the owner and rail tests.

Credit: raysung-2026 (report), asturksever (review), quanticsoul4772 (Windows diagnosis).
2026-10-17 04:56:07 -05:00
Sunilanddaikaginza c7ff33ac2e fix(server): admit reverse-proxied same-origin terrain requests
Review follow-up on #975. The shared same-site gate refuses any forwarding header, which is right for routes that spend a key, but terrain is keyless and needed for rendering: behind the reverse proxy the README documents, every /api/terrain/heights chunk got 403 and fell back to the geoid. Terrain now uses admitSameSiteKeyless, which keeps the Sec-Fetch-Site and exact-Origin checks (comparing Origin against a single X-Forwarded-Proto scheme) but does not refuse forwarding headers. The shared admitSameSite gate is unchanged for every other route. The changelog entry moves to changelog.d/975-terrain-cross-site-gate.md.

Co-authored-by: daikaginza <[email protected]>
2026-10-17 14:36:24 +05:30
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
quanticsoul4772 db73c6908e Merge branch 'main' into feat/tools-area-breakdowns 2026-10-16 17:18:17 -07:00
Sameh Khamis 1c2910481e Merge branch 'main' into fix/map-fallback-retry 2026-10-16 17:11:05 -07:00
quanticsoul4772 2a6ba1180d Merge branch 'main' into feat/tools-area-breakdowns 2026-10-16 17:09:08 -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 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 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
quanticsoul4772 c6706a5a52 Merge branch 'main' into feat/tools-area-breakdowns 2026-10-16 16:04:40 -07:00
Sameh Khamis ef86796e4d Merge branch 'main' into fix/director-scene-results-971 2026-10-16 16:04:26 -07:00
Sameh Khamis 83f7e2f686 Merge branch 'main' into codex/fix-antimeridian-polygon-containment 2026-10-16 15:58:31 -07:00
quanticsoul4772 2b5a5128fe Merge branch 'main' into feat/tools-area-breakdowns 2026-10-16 15:56:24 -07:00
Ian Blenke a571142d0e fix(recent-imagery): scroll the DETAILS card into view when it opens (#970)
renderDetails() revealed the card inside render(), whose preserveScroll() wrapper restored the previous scrollTop in its finally block, undoing the reveal. The reveal now runs in the DETAILS open handler after render() returns, once per opening; closing and refreshes do not scroll.
2026-10-16 15:52:35 -07:00