Commit Graph
1825 Commits
Author SHA1 Message Date
quanticsoul4772 4e3c1628b2 Merge branch 'main' into upstream/cctv-tarktee-refresh 2026-10-19 09:30:58 -07:00
Said Turksever 7fe95b76e9 Merge pull request #1200 from Danielslay86/cctv-live-icon-color
cctv: color live video cameras apart from stills
2026-10-19 17:29:05 +01:00
German KhokhlovandClaude Opus 5.5 4e2e0d6900 test(street-level): the gate waits for image cones to become pickable
On CI's SwiftShader the ground-clamped cones take a few frames after a
sequence is selected; a single pick search found none.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 20:22:48 +04:00
German KhokhlovandClaude Opus 5.5 adeee12209 docs(changelog): add the starfield sky entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 20:11:32 +04:00
Said Turksever 2120130997 Merge branch 'main' into cctv-stills-aspect 2026-10-19 17:10:53 +01:00
manjunath 10916227cb refactor(voice): isolate gemini live provider core 2026-10-19 21:40:40 +05:30
German Khokhlov 7d4da26905 Merge remote-tracking branch 'origin/main' into claude/hal-627-starfield-cb6fa2
# Conflicts:
#	scripts/format-scope.json
2026-10-19 20:09:55 +04:00
Said TurkseverandClaude Opus 5.5 c808bfe609 fix(cctv): harden the Kartverket height lookup for Vegvesen cameras
- Default backoff is 30 min, longer than the 15-minute catalog refresh,
  so a failing Kartverket costs one attempt per backoff, not per refresh.
- A point a 200 answer leaves out is cached as no height (6 h TTL)
  instead of being asked again, and waited on, every refresh.
- Only 408, 429 and 5xx stop the lookup; any other 4xx marks that
  request's points as no height and the lookup carries on.
- Each request has its own 10 s timeout inside the shared 30 s deadline;
  a lookup cut short only by the deadline resumes without a backoff.
- The lane waits only on a cold cache (>10% of cameras missing); a few
  new cameras or expired misses are looked up in the background.
- applyVegvesenGroundHeights skips cameras without finite coordinates,
  so it really never throws.
- clearKartverketHeightCache bumps a generation, so a lookup started
  before a clear cannot write to the cache, backoff or pending slot.
- Credit and DATA_SOURCES note the modification (water set to 0 m,
  rounded to 0.1 m) as CC BY 4.0 asks; docs match the stop rules.
- Tests for the deadline being shared, per-request timeouts, 503,
  oversized and non-JSON bodies, 4xx, left-out points, Retry-After end
  to end, overlapping refreshes, the warm-cache wait, bad coordinates,
  the cache-clear generation and the loader's wait budget.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 17:03:50 +01:00
Said TurkseverandClaude Opus 5.5 b66d02df7c fix(cctv): space out failed background refreshes; test the stale paths
- A background catalog refresh that rejects now keeps the old catalog for
  another TTL, as an empty refresh already did, so a refresh that keeps
  failing is retried once per TTL instead of on every request.
- Trim notes are keyed by the source list they describe, and /sources asks
  for the list it served, so a request answered during a refresh never pairs
  the old cameras with the new list's notes.
- Tests: a failed background refresh (one warning, no unhandled rejection,
  no retry before the TTL, trim notes stay with their list) and an empty
  background refresh (old catalog kept, no upstream fetch before the TTL).
  The race assertion's message now names the failure; its timer is cleared.
- The Tarktee test no longer imports the new constant, so on main it fails
  on its own assertion instead of taking the whole file down.
- precompute-cctv-heights waits 60 s for a cold catalog, past Tarktee's 30 s.
- CURRENT-STATE notes the 30 s bound and the retry spacing.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 17:02:06 +01:00
Said TurkseverandClaude Opus 5.5 0561277dcb test(cctv): pin Ontario 511 key handling against regressions
- Assert the key never reaches the camera records sent to the browser or
  the "Loaded" log line.
- Count fetches in the keyless test instead of relying on assert.fail
  inside the mock, which the loader's catch would swallow; a
  whitespace-only key is treated as missing.
- Cover the key hint for 400/401/403 and its absence for 429/500/503,
  and log the failure as one string without a trailing empty argument.
- Add _resetOntarioKeyWarningForTest so the logged-once check no longer
  depends on test order.
- Read CCTV_ONTARIO_MAX_SOURCES from the same env as the key, and keep
  console output out of the suite.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 16:59:52 +01:00
Said Turksever e9a234094b Merge remote-tracking branch 'upstream/main' into pr-1228-fix
# Conflicts:
#	README.md
2026-10-19 16:56:57 +01:00
German KhokhlovandClaude Opus 5.5 a536e7879c Merge origin/main into german/street-level-slim
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 19:56:09 +04:00
Said TurkseverandClaude Opus 5.5 29fb756a5c test(cctv): cover the focus de-emphasis icon colors
refreshCctvFocusStyles passes cameraColorFor as baseColorFor, but only
refreshCoverageStyles was tested. The new rendering.test.mjs runs the
focus pass through createRendering with stubbed focus services and
checks that an idle video camera fades from violet, a still from cyan
and the active camera from amber. It fails if the focus callback goes
back to the old active/idle check. Also adds the missing semicolon on
the policy.js import in cctv.test.mjs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 16:50:21 +01:00
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