Commit Graph
1962 Commits
Author SHA1 Message Date
Said TurkseverandClaude Opus 5.5 35c612c5f6 test(cctv): lock the still draw path and fit-aware dedupe
Drive drawProjectionFrame with a fake runtime and a recording canvas:
a 640x480 still draws at its fitted rectangle over the matte, the same
pixels at the same size skip the redraw, and the same pixels at a new
aspect redraw at the new fit. The last case fails on the pixel-only
signature; the first fails if drawImage stretches to the canvas again.
Expected rectangles now read the canvas size from policy.js.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 16:50:21 +01:00
German KhokhlovandClaude Opus 5.5 fb81e155b7 fix(sky): keep the Sun and Moon, settle outside the ICRF tables
- Pass the custom sky box to the Viewer instead of `skyBox: false`, which
  also stopped CesiumWidget from creating the Sun and the Moon. Guarded by
  scripts/qa-sky-sun-moon.mjs.
- Outside the IAU 2006 tables (before 1975, after ~2050) the preload
  resolves without data; remember that span and stay on TEME instead of
  preloading and rendering every frame.
- The anime style no longer cel-shades the far plane, where four bands
  turned the faint Milky Way into blotches.
- Paint the planets out after the star-removing opening and with the
  ring median, so no brighter plateau is left; faces rebuilt.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 19:43:25 +04:00
manjunath a6f229d870 Merge branch 'main' of https://github.com/bilawalsidhu/gods-eye-view into fix/cctv-tool-routing 2026-10-19 21:12:55 +05:30
manjunath 1eded0468f Merge upstream main into fix/location-resolution 2026-10-19 21:12:47 +05:30
manjunath bd087d6096 Merge upstream main for typed-send compatibility 2026-10-19 21:12:47 +05:30
Said Turksever 86eca5abf3 Merge branch 'main' into cctv-live-icon-color 2026-10-19 16:26:45 +01:00
Said Turksever 0f51eb21ba Merge pull request #816 from kvnloo/fix/context-radio-owner-invariant
fix(ui): dismiss compact Radio on Context rail restoration
2026-10-19 16:23:26 +01:00
Said Turksever 9f6e0ef60f Merge branch 'main' into fix/context-radio-owner-invariant 2026-10-19 16:15:15 +01:00
manjunath 5fd5d688dc Merge upstream main for typed-send compatibility 2026-10-19 20:39:51 +05:30
Said TurkseverandClaude Opus 5.5 d80683c44b docs(changelog): end the #1200 fragment with a newline
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 16:05:38 +01:00
Said Turksever 56c5d03b65 Merge upstream/main into cctv-stills-aspect 2026-10-19 16:05:15 +01:00
Said Turksever b8bfeb7aa2 Merge upstream/main into cctv-live-icon-color 2026-10-19 16:04:58 +01:00
manjunath 3b3895f82e Merge upstream main into fix/location-resolution 2026-10-19 20:30:51 +05:30
Said Turksever 7214f71878 Merge pull request #880 from kvnloo/feat/world-packet-boundary-clean-20260929
feat(agent): extract model-free World Packet boundary
2026-10-19 16:00:23 +01:00
manjunath d09d1ddad1 Merge branch 'main' of https://github.com/bilawalsidhu/gods-eye-view into fix/cctv-tool-routing 2026-10-19 20:28:18 +05:30
Daniel Slay 8e635c9a3a test(cctv): pin the camera icon colors; say video feed, not live 2026-10-19 10:50:22 -04:00
Daniel Slay 1959b33c48 fix(cctv): test the still fit, redraw on size change, share the matte color 2026-10-19 10:39:41 -04:00
Said TurkseverandClaude Opus 5.5 daaaa348b7 test(agent): pin World Packet to the pre-extraction payload
The parity test compared getWorldPacket with voice, which now calls
getWorldPacket. Compare both against a fixed payload captured from main's
get_current_view_state before the extraction, key order included, and
cover a non-finite now.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 15:19:07 +01:00
Said TurkseverandClaude Opus 5.5 0f237a32d4 fix(agent): age World Packet feeds against the clock for non-finite now
A default parameter only covers undefined, so now: null aged every feed
against the epoch and reported stale data as just now.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 15:19:07 +01:00
Said Turksever 4ecbe54997 Merge bilawalsidhu/gods-eye-view main into feat/world-packet-boundary-clean-20260929 2026-10-19 15:19:04 +01:00
Trygve Hemminghytt 4999f6dc60 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/CURRENT-STATE.md
2026-10-19 16:16:37 +02:00
Said Turksever 3d8e1ef00f Merge pull request #605 from Danielslay86/cctv-florida-stills
feat(cctv): FL511 Florida statewide camera pack (stills)
2026-10-19 15:11:43 +01:00
Said Turksever 326c41df9c Merge branch 'main' into cctv-florida-stills 2026-10-19 14:56:33 +01:00
Said Turksever beca41c676 Merge pull request #1056 from quanticsoul4772/feat/tools-area-breakdowns
feat(tools): count and summarize every match in the area tools
2026-10-19 14:53:34 +01:00
Said TurkseverandClaude Opus 5.5 a29d5a6874 docs(changelog): credit kvnloo in the #816 fragment
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 14:47:13 +01:00
Said Turksever 839442b20b Merge branch 'main' into feat/tools-area-breakdowns 2026-10-19 14:46:41 +01:00
Said TurkseverandClaude Opus 5.5 c174742e2c fix(cctv): FL511 written-consent wording and robust catalog paging
- State FL511's terms the same way everywhere: individual, personal use
  only, and any other use (a public deployment included) needs FDOT's
  express written consent. .env.example, README, dataCredits, the source
  licence string, the catalog comment and the changelog fragment said only
  "individual, non-commercial use".
- Page the ArcGIS catalog on exceededTransferLimit alone and advance the
  offset by the rows each page returned, so a lower server-side max
  record count no longer cuts the catalog short at the first short page.
- Order pages by OBJECTID_1 (this layer's object id; a plain OBJECTID is
  rejected with HTTP 400) so offset paging is stable.
- Raise the page ceiling to 40 and warn when it is hit.
- Tests: short pages with exceededTransferLimit keep paging, orderByFields
  is sent, and a service that ignores resultOffset stops at the ceiling.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 14:32:58 +01:00
Said TurkseverandClaude Opus 5.5 4c383214f7 fix(tools): average aircraft speed over airborne aircraft only
aircraft_in_area stats summarized altitude over airborne aircraft but
speed over every match, so parked aircraft pulled the mean speed toward
zero. Both figures now use the same airborne subset, and the on-ground
fixture is stationary so the test can tell the difference.

Reserved AIS ship-type codes 100 to 255 now read as unknown, as type 0
does, instead of showing up in the breakdown as their own type.

Adds tests for an area where every aircraft is on the ground and for
find_vessel type and destination normalization, and notes in the
changelog fragment that every vessel answer is now normalized.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 14:29:11 +01:00
Said Turksever 5d480a5fc2 Merge upstream/main into fix/context-radio-owner-invariant 2026-10-19 14:23:54 +01:00
Said Turksever 7712ecf6ed Merge pull request #975 from Sunil56224972/fix/terrain-same-site-gate-on-686
fix(server): refuse cross-site requests on the terrain-heights route (stacked on #686)
2026-10-19 14:14:54 +01:00
Said TurkseverandClaude Opus 5.5 256d7c273e Merge #686 head 558b0275 so its entry lives in changelog.d
#686 moved its changelog entry from CHANGELOG.md into
changelog.d/686-terrain-heights-bounds.md. Take #686's side so this
branch no longer edits CHANGELOG.md directly and no longer conflicts
with #686.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 13:56:15 +01:00
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 7844e765b4 fix(launches): retain stale-cache provenance in layer status 2026-10-19 13:30:27 +01:00
quanticsoul4772andClaude Opus 5.5 5b12f51e98 fix(cctv): warn once per failed background refresh; test the single flight
Attach the background-refresh warning where the refresh starts, so a
failed refresh logs once instead of once per request served meanwhile.
The test now checks that requests during a refresh share it, and turns
the hang off before releasing the fetches so a retrying loader can't
stall it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 05:28:56 -07:00
Rudy Celekli f747c4828e docs: add Launch Library changelog for PR 1197 2026-10-19 13:11:58 +01:00
Rudy Celekli a310cbc2f0 fix(space): align Launch Library requests with provider guidance 2026-10-19 13:11:58 +01:00
German KhokhlovandClaude Opus 5.5 d983ef23d8 fix(street-level): credit every imagery source in the attribution lightbox
Mapillary was never in DATA_CREDITS (since #768), and Google Street View,
KartaView and Panoramax came without entries. HAL-530.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 13:53:46 +04: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
German KhokhlovandClaude Opus 5.5 6390a3346f Merge origin/main: Google Street View, KartaView and Panoramax on the slim Street Level
Main gained three imagery providers (Google Street View, KartaView,
Panoramax), shared line-coverage, cone and photo-viewer modules, one source
lit at a time and the translated interface. Their shared modules still
carried what this branch removes, so the merge ports them onto it:

- lineCoverage.js is this branch's coverage.js made provider-neutral
  (draped lines near the ground only, the selection drawn over them, key
  and rate-limit blocking); sequenceCones.js is sequences.js the same way.
  Mapillary, KartaView and Panoramax all build on them; Mapillary moves
  back to providers/mapillary/ beside the others.
- No ground casting, mesh sampling, surface modes, FOLLOW, legend, prewarm,
  orbit overview points (Panoramax's density dots included), stale-tile
  swaps or water-filled point budget come back.
- Kept from main because the new providers need them: requiresMapStack and
  attachMapStackController (Street View on Google 3D only), ground clicks,
  openNearest with an optional provider nearestImage, openImage {frame},
  reportError, the view-cone marker (now an SVG glyph), filters /
  coverageLabel / sinceBasis, OPEN STREET VIEW, keyAlternatives and i18n.
- photoViewer.js treats the viewer as expanded when its wrap is full screen
  or the iPhone popover, as EXPAND now is.
- The fixture browser gate keeps its 8 steps and adds one each for
  KartaView and Panoramax; catalogs, docs, boundaries and format scope
  follow.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 13:51:45 +04:00
German KhokhlovandClaude Opus 5.5 6549344946 feat(sky): replace the blocky default sky box with catalogue stars
Cesium's default Tycho-2 sky box is six 1024² JPEGs stretched 3–6× around
the whole-globe view, so space read as an over-compressed JPEG (HAL-627).

The scene now draws its own sky in the Scene#skyBox slot: the 9,096 stars
of the Yale Bright Star Catalogue as point sprites sized in CSS pixels
(magnitude → width and opacity, B−V → colour), over a soft, star-free
Milky Way cube map built from ESO/S. Brunier's panorama (CC BY 4.0). Both
layers share one ICRF→Earth-fixed rotation at the scene clock, with the
TEME rotation filling in until Cesium's IAU 2006 tables load.

Assets total 482 KB, built by scripts/build-bright-stars.mjs and
scripts/build-milky-way.mjs. Frame time and the idle render governor are
unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 11:08:46 +04:00
manjunath 1763143337 docs(changelog): record location resolution fix 2026-10-19 11:02:30 +05:30
manjunath a331616a9d fix(location): preserve geocoded places and region provenance 2026-10-19 11:01:18 +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
yaka0007 3792d7377e fix(cctv): harden Tarktee DATEX catalog fetches and dedupe before cap 2026-10-19 01:12:18 -04:00
quanticsoul4772andClaude Opus 5.5 1b66d284c4 docs(cctv): CURRENT-STATE describes the background catalog refresh and Tarktee's 30 s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 22:12:13 -07:00
quanticsoul4772andClaude Opus 5.5 f26586bb3e fix(cctv): serve the camera catalog while it refreshes
An expired catalog made every /api/cctv request (camera list and frames)
wait for the full refresh, which lasts as long as the slowest of the live
packs: Tarktee's DATEX feeds took 2 to 16.6 s across ten requests. With
Tarktee's timeout raised to 30 s, that wait could reach 30 s at each
15-minute refresh. The cached list is now returned while a single-flight
refresh replaces it in the background; only a first load, with nothing
to serve, waits. A background refresh that throws is logged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 22:08:24 -07:00