Commit Graph
100 Commits
Author SHA1 Message Date
Sameh Khamis e680a59bf5 feat: add place search and routing tools
Add search_places and places_nearby over the app's Google Places routes,
and plan_route over its OpenStreetMap routing. The place search service
reports when no search key is configured, so an unconfigured server is
not mistaken for an empty result, and rate limits become retry_later.
Route endpoints accept a place name or coordinates.
2026-10-01 12:16:01 -07:00
Sameh Khamis 85fee59da1 feat: add public camera and radio tools
Add find_cctv_cameras, get_cctv_snapshot and find_radio_stations. A
snapshot returns the camera's current frame as image content with its
credit. Tool results may now carry base64 images, which the MCP adapter
sends as image content.
2026-10-01 12:11:00 -07:00
Sameh Khamis d65402eae3 feat: read current camera frames through the CCTV source
Add getFrame(camera) to the CCTV source. It reads one frame through the
registered frame endpoint the layer already uses and returns its content
type and bytes, so code outside the layer can show a camera's view.
2026-10-01 12:11:00 -07:00
Sameh Khamis 22c3fe40b0 feat: add aviation and satellite tools
Add aircraft_in_area, find_aircraft, get_aircraft_track and
get_aircraft_info over the live aircraft sources, with an optional
military feed, and next_satellite_pass and satellites_overhead over the
satellite catalog and the existing pass predictor.

Source failures from the live contract now become tool errors with the
matching code, so a rate limit reaches clients as retry_later with a
wait time. Tool schemas may use pattern.
2026-10-01 12:05:50 -07:00
Sameh Khamis 9895942633 refactor: move TLE text parsing into a portable source module
The satellites layer parsed catalog text inside its Cesium-backed orbit
owner. Move the parser unchanged to src/sources/tle.js, add a catalog
number helper, and have the layer delegate to it so code outside the
layer can read TLE text without loading rendering.
2026-10-01 12:05:41 -07:00
Sameh Khamis c3dfa8e853 feat: add a tool catalog and local MCP server
Define tools that answer questions from the app's data once, independent
of the surface that exposes them. A tool declares its arguments and the
services it reads; applications compose tools with their own services and
optional call interceptors. Queries reuse the layers' portable source
factories, so they run wherever an application routes /api requests.

The first queries are get_earthquakes, get_active_fires and
get_recent_launches, with a shared area argument (place name, bounding
box, or point and radius) and capped lists.

gods-eye-view/tools/mcp adapts a catalog to the Model Context Protocol
with a small JSON-RPC handler and a stateless HTTP transport, adding no
dependencies. npm run mcp serves Core's tools over stdio to local clients
such as Claude Code, reading from a running app. Both exports are
portable and checked by check:boundaries; the app does not import them.
2026-10-01 11:51:59 -07:00
Sameh KhamisandClaude Opus 5.5 00235365c3 build: register headingConfidence.js with the CCTV package boundaries (#643)
main's boundary manifest now requires every module to be owned; add the new
helper beside presentation.js in cctv-layer and the two application groups.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:46:58 -07:00
Sameh KhamisandClaude Opus 5.5 303429a421 docs: record estimated CCTV bearings in CHANGELOG and CURRENT-STATE (#643)
Credit the contributor and describe the HUD tag, dashed wireframe and
calibration precedence for #639.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:44:30 -07:00
Sameh KhamisandClaude Opus 5.5 9a971fef50 Merge main into pr-643
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:44:16 -07:00
Sameh KhamisandClaude Opus 5.5 31224d8bd2 fix(traffic): name the proxy's own 502/503 accurately (#665)
502 (every mirror unreachable) and 503 (the local limiter, before any mirror
is asked) come from our proxy, so they no longer read as a mirror refusing
the query. Credit the fix in CHANGELOG and note the mapping in CURRENT-STATE.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:36:53 -07:00
Sameh KhamisandClaude Opus 5.5 5472e54f73 Merge main into pr-665
Resolve the CHANGELOG conflict by keeping both sides' entries.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:36:35 -07:00
Sameh KhamisandClaude Opus 5.5 95f0664e4e docs: credit the terrain-height cache bound in CHANGELOG (#594)
Move the entry to the top of the changelog, where main's newer entries had
left it behind, and credit the contributor.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:23:48 -07:00
Sameh KhamisandClaude Opus 5.5 714d3dd1bb Merge main into pr-594
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:23:42 -07:00
Sameh KhamisandClaude Opus 5.5 12bf66ef6f docs: credit the CCTV idle-deadline fix in CHANGELOG (#688)
Move the entry to the top of the changelog, where main's newer entries had
left it behind, and credit the contributor.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:17:28 -07:00
Sameh KhamisandClaude Opus 5.5 9b1c75e539 Merge main into pr-688
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:17:12 -07:00
Sameh KhamisandClaude Opus 5.5 3a23dc393d fix(live): cache the oversized-track 502 like other upstream errors (#722)
Keep the new 502, but store it in the 60 s cache as the proxy already does
for 404/429: /tracks/all costs OpenSky credits, so an oversized track must
not be re-downloaded on every reselect. Update the regression test and
credit the fix in CHANGELOG.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:09:17 -07:00
Sameh KhamisandClaude Opus 5.5 0d58d6e1c4 Merge main into pr-722
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:08:54 -07:00
Sameh KhamisandClaude Opus 5.5 f631d5428b docs: changelog entry for the macOS chmod fix (#694)
Credit the fix in CHANGELOG and tidy the wording of its inline comment.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:01:56 -07:00
Sameh KhamisandClaude Opus 5.5 fb8a93752f Merge main into pr-694
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 22:01:50 -07:00
Sameh KhamisandClaude Opus 5.5 20a03aad87 fix(render): release the atmosphere probe's WebGL context
Lose the throwaway WebGL2 probe context right after the link probe instead
of leaving it for GC; browsers (Safari especially) cap live contexts. Note
that affected devices also lose globe-basemap fog, credit the changelog
entry and move it to the top.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 21:53:06 -07:00
Sameh KhamisandClaude Opus 5.5 351b5fcaa4 Merge main into pr-705
Resolve the CHANGELOG conflict with Fire Perimeters (#737) by keeping both
entries.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-24 21:52:39 -07:00
Sameh Khamis b641ad2019 fix: integrate bounded trackpad pinch zoom 2026-09-20 19:49:07 -07:00
Sameh Khamis 97927302bd Merge origin/main into fix/trackpad-pinch-zoom
# Conflicts:
#	src/main.js
2026-09-20 19:44:57 -07:00
Sameh Khamis d01d10393c docs: distinguish QA gates from helper modules 2026-09-20 19:35:56 -07:00
Sameh Khamis 4f941266c2 Merge origin/main into docs/qa-gates 2026-09-20 19:35:29 -07:00
Sameh Khamis dd627891f8 fix: complete debug-log request bounds 2026-09-20 19:21:22 -07:00
Sameh Khamis a948274326 Merge origin/main into fix/realtime-debug-log-hardening
# Conflicts:
#	CHANGELOG.md
#	src/tooling/localServices.test.mjs
2026-09-20 19:19:49 -07:00
Sameh Khamis 2608f187d3 fix: sanitize rejected Realtime token responses 2026-09-20 17:45:43 -07:00
Sameh Khamis a88904a02f Merge origin/main into fix/sanitize-openai-proxy-errors 2026-09-20 17:42:54 -07:00
Sameh Khamis 62abcfdd16 fix: keep antimeridian traffic requests in range 2026-09-20 17:11:27 -07:00
Sameh Khamis 2f16e34cad Merge origin/main into fix/antimeridian-traffic-bounds 2026-09-20 17:09:53 -07:00
Sameh Khamis 9ad64112dc fix: report OpenSky Basic and auto modes accurately 2026-09-20 16:43:16 -07:00
Sameh Khamis a716b059b8 Merge origin/main into fix/issue-362-opensky-doctor 2026-09-20 16:43:01 -07:00
Sameh Khamis 5d684c22b3 Merge origin/main into fix/ais-unavailable-sog-cog
# Conflicts:
#	CHANGELOG.md
#	docs/CURRENT-STATE.md
2026-09-20 16:33:53 -07:00
Sameh Khamis 6eeb2fce11 Merge origin/main into fix/ui-dark-select-palette
# Conflicts:
#	CHANGELOG.md
2026-09-20 16:21:29 -07:00
Sameh Khamis 9f8f6284b5 docs(attribution): clarify adsbdb data-use wording 2026-09-20 15:49:22 -07:00
Sameh Khamis 581afbecea Merge origin/main into docs/adsbdb-attribution
# Conflicts:
#	CHANGELOG.md
2026-09-20 15:48:49 -07:00
Sameh Khamis a25ee64209 fix: distinguish partial vessel snapshots from stale data 2026-09-16 11:52:26 -07:00
Sameh Khamis 078fc290ec Add Director authoring, import previews and scene bundles 2026-09-15 20:15:32 -07:00
Sameh Khamis 80027756ef feat: add declarative Director feature actions 2026-09-15 19:16:49 -07:00
Sameh Khamis f558a240d1 Release failed asset responses and refuse cancelled requests 2026-09-15 18:01:39 -07:00
Sameh Khamis 92526e9a92 feat(director): add bounded scene data packs and placement 2026-09-15 17:59:53 -07:00
Sameh Khamis 13c0b8d1bc feat(director): add authored camera directions and anchors 2026-09-15 16:53:26 -07:00
Sameh Khamis 18300e7e00 feat(director): validate scene documents and preserve saved edits 2026-09-15 16:20:36 -07:00
Sameh Khamis 8a3c4868b0 refactor(director): separate timing clocks and scene pack presentation 2026-09-15 15:41:42 -07:00
Sameh Khamis e82e0a149f test: resolve the terrain fixture through its dependency 2026-09-15 12:29:18 -07:00
Sameh Khamis a6f9c3d82a Merge remote-tracking branch 'origin/main' into refactor/realtime-owners
# Conflicts:
#	CHANGELOG.md
2026-09-15 12:21:32 -07:00
Sameh Khamis e7970c50b7 fix(voice): discard continuations from closed conversations 2026-09-15 12:13:35 -07:00
Sameh Khamis aa6804802c Merge remote-tracking branch 'origin/main' into refactor/realtime-owners 2026-09-15 12:05:07 -07:00
Sameh Khamis cc9a080f2d refactor(voice): separate Realtime state and resource owners 2026-09-15 12:05:01 -07:00
Sameh Khamis bfefa875e1 refactor: separate application shell state and lifecycle owners 2026-09-15 11:17:10 -07:00
Sameh Khamis 9f7adf71f6 refactor: extract reusable Director playback 2026-09-15 10:15:12 -07:00
Sameh Khamis fd6106ee01 Merge current main into map-feature refactoring 2026-09-15 08:41:34 -07:00
Sameh Khamis 9e27a0e7cd test: wait for destination traffic after camera changes 2026-09-15 08:40:58 -07:00
Sameh Khamis a9482f0a5b fix: cancel Nepal media preloads and respect drawing ownership
Retain active-flight preloading while canceling hidden frames and pending Facebook sessions on stop, disable, and replacement. Add lifecycle and pointer-ownership regression coverage. Apply the runtime formatting adopted on main and keep the existing source-shape check insensitive to that formatting.
2026-09-15 08:29:01 -07:00
Sameh Khamis 1a936ebac1 Merge current main into Nepal flood contribution 2026-09-15 08:24:37 -07:00
Sameh Khamis fa2f839cbd fix: validate feature services before allocating scene owners 2026-09-15 08:12:13 -07:00
Sameh Khamis bf1d50f29b refactor: separate map feature queries and source records 2026-09-15 08:10:32 -07:00
Sameh Khamis 30e01890e7 fix: keep transit snapshot parsing within request lifetime 2026-09-15 08:01:30 -07:00
Sameh Khamis 3155e4e0bf refactor: separate transit sources and request service 2026-09-15 07:41:56 -07:00
Sameh Khamis cf8b97470e chore: record ES module formatting revision 2026-09-15 07:26:53 -07:00
Sameh Khamis b7c2c47b41 style: format remaining runtime ES module files 2026-09-15 07:26:53 -07:00
Sameh Khamis 17dc37b529 chore: record mechanical formatting revision for blame 2026-09-15 07:26:32 -07:00
Sameh Khamis 2aca7aecbb style: format remaining owned runtime modules 2026-09-15 07:26:32 -07:00
Sameh Khamis ae99843c14 build: discover owned runtime modules in the formatter gate 2026-09-15 07:26:32 -07:00
Sameh Khamis a79208181f refactor: separate Nominatim transport from search composition 2026-09-14 22:14:51 -07:00
Sameh Khamis 2b09352463 test: use exported response reader in proxy fixtures 2026-09-14 22:12:53 -07:00
Sameh Khamis 66eb6d6a7c refactor: add configurable Nominatim adapter and portable source helpers 2026-09-14 22:08:16 -07:00
Sameh Khamis e46d50ce52 refactor: expose reference sources independently of standalone setup 2026-09-14 21:52:27 -07:00
Sameh Khamis ba2af1c29a test: exercise import aliases without Windows symlink privileges 2026-09-14 21:14:00 -07:00
Sameh Khamis cc960b0dbe refactor: enforce import directions and expose source factories 2026-09-14 21:12:01 -07:00
Sameh Khamis 4507f3a1d0 refactor: separate voice sessions from protocol adapters 2026-09-14 20:27:12 -07:00
Sameh Khamis 55b240e3ab refactor: separate voice action schemas from descriptions 2026-09-14 20:05:32 -07:00
Sameh Khamis ea6c8653b3 refactor: expose portable source record protocols 2026-09-14 19:36:32 -07:00
Sameh Khamis fdf030cbc9 Merge remote-tracking branch 'origin/main' into feat/alpr-visual-treatment
# Conflicts:
#	scripts/package-boundaries.json
2026-09-14 18:10:05 -07:00
Sameh Khamisandmanjunath22466 87629ac175 Port ALPR camera visuals into the shared layer
Add camera badges, gradient direction wedges and animated tactical selection cards while preserving bounded loading and layer lifecycle. Align the ALPR data-layer header and retain native pick ownership for overlay badges.

Co-authored-by: manjunath22466 <[email protected]>
2026-09-14 17:35:24 -07:00
Sameh Khamis 7b3271b5d3 docs: formalize community PR review and integration 2026-09-14 17:01:53 -07:00
Sameh Khamis bdc026e50a Separate vessel records and acquisition from scene resources 2026-09-14 16:37:41 -07:00
Sameh Khamis 9e84b03c5e refactor: separate military-flight records and rendering 2026-09-14 16:17:06 -07:00
Sameh Khamis 4cb7334da5 refactor: separate civil-flight records and rendering 2026-09-14 15:55:37 -07:00
Sameh Khamis e31e43f4b0 Update UI acceptance fixtures for panel ownership 2026-09-14 15:43:27 -07:00
Sameh Khamis dc81cf585c refactor: separate application UI state owners 2026-09-14 15:29:10 -07:00
Sameh Khamis 2d68841783 refactor: separate layer lifecycle from presentation 2026-09-14 15:04:28 -07:00
Sameh Khamis ac977bd8bc refactor: own application request operations and surface caches 2026-09-14 14:49:04 -07:00
Sameh Khamis 8160ac5fe4 refactor: construct application layers from supplied sources 2026-09-14 14:20:01 -07:00
Sameh Khamis c3de679c61 refactor: supply application catalogs explicitly 2026-09-14 13:56:51 -07:00
Sameh Khamis fb8f9e1c49 refactor: expose portable FIRMS CSV helpers 2026-09-14 12:58:57 -07:00
Sameh Khamis 6d5478ffa9 refactor(tools): support an explicit project directory 2026-09-14 07:35:38 -07:00
Sameh Khamis 97d70317bb test(launcher): resolve installed dependencies through the module graph 2026-09-13 22:42:27 -07:00
Sameh Khamis a67bc60a29 refactor(app): share application components and request services 2026-09-13 22:41:11 -07:00
Sameh Khamis c488a18df1 fix: scope voice response parsing to its backend lifetime 2026-09-13 22:00:14 -07:00
Sameh Khamis 1a1cbadf5b refactor: separate voice controls and configurable Realtime connections 2026-09-13 21:54:51 -07:00
Sameh Khamis 8b36c28b06 refactor: compose configurable geocoding and route services 2026-09-13 21:23:13 -07:00
Sameh Khamis bcba7c5c01 fix: use globe terrain when framing an ALPR camera 2026-09-13 20:42:48 -07:00
Sameh Khamis fe1aa3b6f6 fix: clarify nearby ALPR counts and help locate cameras 2026-09-13 20:35:38 -07:00
Sameh Khamis 7068ee7dc7 Merge current main into ALPR camera candidate 2026-09-13 20:08:54 -07:00
Sameh Khamis 9547658dc7 fix: keep ALPR camera markers stable during rotation 2026-09-13 20:04:38 -07:00
Sameh Khamis 277cd45154 test(tracking): keep the synthetic floor above refreshed contact altitude 2026-09-13 19:39:00 -07:00
Sameh Khamis 211eb70eed Merge remote-tracking branch 'origin/main' into refactor/alpr-camera-source
# Conflicts:
#	package.json
#	scripts/format-scope.json
#	scripts/package-boundaries.json
2026-09-13 19:21:57 -07:00
Sameh Khamis 8024813792 fix(maps): settle failed recovery and update registry QA 2026-09-13 19:01:23 -07:00