mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-13 06:42:23 +00:00
Merge branch 'main' into upstream/route-outage-unavailable
This commit is contained in:
commit
a29611ca17
422 files changed
+53860
-1931
No files matched your search
@@ -0,0 +1,18 @@
|
||||
- "Show me X on Street View" (or on Mapillary, KartaView or Panoramax): a
|
||||
`show_street_level` voice and typed action flies to the place, switches to
|
||||
Google 3D when the source needs it, lights that source in Street Level,
|
||||
turns the layer on and opens the nearest photo, saying which step failed.
|
||||
With no place named it looks under the screen centre, as OPEN does. Views
|
||||
and share links carry the same request (`street_level`, `sl=`). A plain
|
||||
`sl=google` link never loads a billed panorama by itself: it arms Street
|
||||
View and leaves the load to OPEN GOOGLE STREET VIEW; embedded views open it,
|
||||
and so does the God's Eye View panel for a result issued in the last five
|
||||
minutes; a link whose source has no working key says so. A request stops
|
||||
when the user navigates, or enters cockpit, clean view, recording or scene
|
||||
playback, before its photo loads (collapsing the panel does not stop it: the
|
||||
photo reveals it); a new photo replaces the open one in place, so EXPAND
|
||||
stays. When nothing is found and a 360°, flat or SINCE filter is on, the
|
||||
answer names the filter. Failure cards are in the interface language. An
|
||||
unavailable map stack now reports the
|
||||
controller's own reason instead of always asking for a Cesium ion token
|
||||
(Said Turksever, @asturksever, #1113).
|
||||
@@ -0,0 +1,3 @@
|
||||
- Keep outside text in voice and MCP tool results to one line of 180
|
||||
characters: ALPR tags, station names and other display fields (asturksever,
|
||||
#1280).
|
||||
@@ -0,0 +1,5 @@
|
||||
- FIRMS fire ages round to whole hours before choosing a unit, so an age of
|
||||
47.5–48 hours reads "2d", as exactly 48 hours does, not "48h". Detections
|
||||
are filtered to the trailing 24 hours, so this shows mostly in the
|
||||
`STALE · cached {age}` stats line after about two days without a successful
|
||||
refresh (@quanticsoul4772, #1531).
|
||||
@@ -0,0 +1,4 @@
|
||||
- Stop requesting Suomi NPP in Active Fires. NASA stopped delivering its data
|
||||
on November 2, 2026, so `VIIRS_SNPP_NRT` returned no rows while still costing
|
||||
a MAP_KEY transaction on every refresh; the layer now merges VIIRS NOAA-20,
|
||||
VIIRS NOAA-21 and MODIS (IMBrandao, #1552).
|
||||
@@ -0,0 +1,5 @@
|
||||
- Give transit vehicle icons a readable front: the bus, tram, metro and unknown
|
||||
glyphs now carry a nose or cab in their outline, so the direction of travel
|
||||
shows at fleet size and survives the sensor profiles. A vehicle with no known
|
||||
course gets a symmetric outline instead of one that points north, and
|
||||
switches to the pointed glyph once a course arrives (IMBrandao, #1574).
|
||||
@@ -0,0 +1,3 @@
|
||||
- A vessel whose ambient card is on the map no longer gets a Detection callout
|
||||
showing through the card and covering its speed and course. A vessel whose
|
||||
card the overlay did not paint keeps its callout (German, @gekh, #1577).
|
||||
@@ -0,0 +1,4 @@
|
||||
- New Shipwrecks layer (Events): about 8,000 wrecks from EMODnet (CC BY 4.0)
|
||||
and Wikidata (CC0). Each has a card with deaths, date, vessel, cause, depth,
|
||||
position quality and a source link. Markers grow with the death toll, and
|
||||
a start and end year picker filters by period (IMBrandao, #1583).
|
||||
@@ -0,0 +1,29 @@
|
||||
- Add the News layer (Events ▸ News) and its right-rail NEWS panel: the last
|
||||
24 hours of news, narrowed in the panel to the last 12, 6, 3 or 1 hours with
|
||||
the hotspot counts read for that window. Markers are coloured by severity
|
||||
only, with hotspot beacons, outlines with disputed areas, picture cards for
|
||||
major events and a continuous feed whose cards fly the globe to the event.
|
||||
An open card plays the post's clip on request. The panel has two sections.
|
||||
Conflicts lists the hotspots' news. Local, below 3,000 km, lists every
|
||||
report in the area at the view centre, newest first, names and outlines that area on the
|
||||
globe, and shows those reports on the map instead while it is chosen; a
|
||||
disputed area is named as itself and read from no country's outlets. Set
|
||||
`GEV_NEWS_ORIGIN` to a news server and the local server forwards the
|
||||
layer's three read routes there. Unset, Core answers them itself:
|
||||
Conflicts from the last 24 hours of GDELT 2.0 event exports with no key
|
||||
(physical violence only, one report per story at GDELT's place for it,
|
||||
titled from GDELT's GKG files for the newest 3 hours), plus Liveuamap's
|
||||
mapped items with `LIVEUAMAP_API_KEY`; Local from World News API with
|
||||
`WORLDNEWSAPI_KEY`, at most `WORLDNEWSAPI_DAILY_READS` reads a day
|
||||
(default 30), each country's news kept for at most 1 hour. The routes
|
||||
refuse cross-site and proxied requests. A section says when its key is
|
||||
required, refused or out of its daily allowance. The Data attribution popover credits the GDELT
|
||||
Project, World News API and, once its items show, Liveuamap
|
||||
(Denis Groshev, @ZloyS, #1593).
|
||||
- Cockpit Regional News holds its list to the last 24 hours, newest first, on
|
||||
the server and in the client, and labels its four states apart: fresh
|
||||
results with no banner and a `LAST 24 H` footer, earlier results kept after
|
||||
a failed refresh near the same place as `CACHED · REFRESH FAILED`, `NO NEWS IN THE LAST 24 H`,
|
||||
and `REGIONAL NEWS UNAVAILABLE`. The banner is now really hidden over a
|
||||
populated list, and the footer no longer reverts to a static `RECENT` on a
|
||||
page change (Denis Groshev, @ZloyS, #1593).
|
||||
@@ -0,0 +1,5 @@
|
||||
- Add Hebrew (he), the second right-to-left language: the title, rails, dock
|
||||
and corner row mirror, numbers keep Western digits, and plurals use the
|
||||
one/two/other Hebrew forms. Noto Sans Hebrew joins the font stacks and the
|
||||
style, plural and glossary notes arrive in docs/translations/he.md
|
||||
(Hebrew, @meirm, #1594).
|
||||
@@ -0,0 +1,4 @@
|
||||
- Without `OPENAI_API_KEY`, the mic now says the key is missing and to add it in
|
||||
Provider Settings, instead of showing the raw server error with a hint to
|
||||
check microphone permissions. `/api/realtime/token` returns
|
||||
`code: "API_KEY_MISSING"` with its 503 (asturksever, #1599).
|
||||
@@ -0,0 +1,3 @@
|
||||
- Add Swedish (sv) to the language picker: the whole interface in Swedish,
|
||||
with Swedish number and date formats and a style guide and glossary in
|
||||
docs/translations/sv.md (Kaj Obst, @Kajjan7610, #1630).
|
||||
@@ -0,0 +1,5 @@
|
||||
- Voice on OpenAI connects again: OpenAI Realtime refused every session, so
|
||||
the mic failed with "Failed to create Realtime token", because
|
||||
`resolve_area`'s area-id pattern uses Unicode classes it no longer accepts.
|
||||
Voice leaves those patterns out, as typed chat does; area ids are still
|
||||
checked before the tool runs (avaldini, #1638).
|
||||
@@ -0,0 +1,7 @@
|
||||
- Keep buses and trains off rooftops and out of bridge decks on the photoreal
|
||||
3D tiles: the ground floor probes the rendered mesh where each vehicle is,
|
||||
keeps each reading at the point it was taken (up to sixteen a cell) and
|
||||
answers from the reading nearest the vehicle, instead of one probe at each
|
||||
110 m cell's centre that lifted every vehicle in the cell onto whatever lay
|
||||
there. Transit probes each vehicle's latest point, and grounded flights read
|
||||
the floor at their own position (Sameh Khamis, @samehkhamis, #1642).
|
||||
@@ -0,0 +1,3 @@
|
||||
- Street Traffic Lines build one set at a time while a city loads, instead of
|
||||
one per paint, so panning with Lines on no longer piles up line builds
|
||||
(Sameh Khamis, @samehkhamis, #1645).
|
||||
@@ -0,0 +1,6 @@
|
||||
- Show a photo of the tracked aircraft. Tracking a civil flight asks
|
||||
Planespotters for that aircraft's photo, and the CONTEXT panel's CONTACTS view
|
||||
shows it with the photographer's credit and a link to the photo's page. A
|
||||
flight lookup (type, route or photo) that failed temporarily is now asked
|
||||
again after a minute instead of staying empty for the session, and a callsign
|
||||
change drops the previous callsign's route (Sameh Khamis, @samehkhamis, #1647).
|
||||
@@ -0,0 +1,4 @@
|
||||
- A FIRMS snapshot that ends at a set time (`at`, epoch ms, from a source that
|
||||
serves one) is no longer labelled live: the Active Fires row reads
|
||||
`NASA FIRMS · 24 h to 10-21 15:00 UTC`, and `get_active_fires` says "in the
|
||||
24 hours to" that time and reports it as `window_end` (samehkhamis, #1650).
|
||||
@@ -0,0 +1,7 @@
|
||||
- A tracked flight's trail splits at feed gaps, impossible jumps and reports
|
||||
without altitude instead of joining a day of history into one line, keeps
|
||||
every history point, and follows the path the aircraft was drawn along so it
|
||||
no longer cuts across turns. A tracked aircraft that stops reporting shows
|
||||
STALE, keeps flying on its last heading for five minutes, then stops dimmed
|
||||
as SIGNAL LOST and is kept ten minutes after its last report; aircraft on or
|
||||
near the ground hold instead (Sameh Khamis, @samehkhamis, #1654).
|
||||
@@ -0,0 +1,4 @@
|
||||
- A long flight keeps its origin and destination when weather or airways take
|
||||
it far off the great circle: the route check now allows 200 km or 15% of the
|
||||
route's length, whichever is larger (623 km for JFK–SFO), while a short hop
|
||||
still allows 200 km (Sameh Khamis, @samehkhamis, #1655).
|
||||
@@ -0,0 +1,3 @@
|
||||
- A tracked aircraft is dimmed as STALE while the whole flight feed is
|
||||
stalled, as it is after a missed update, instead of staying at full
|
||||
brightness (Sameh Khamis, @samehkhamis, #1656).
|
||||
@@ -0,0 +1,3 @@
|
||||
- A tracked aircraft's Planespotters photo is shown even when the answer names
|
||||
no photographer, linked to its Planespotters page with no credit line,
|
||||
instead of no photo at all (Sameh Khamis, @samehkhamis, #1657).
|
||||
@@ -0,0 +1,5 @@
|
||||
- Hide street-vehicle brackets and callouts behind buildings and terrain. A
|
||||
Street Traffic contact behind a building, a 3D tile, a hill or a tunnel roof
|
||||
now loses its bracket and "VEH-nnnn" callout along with its dot, instead of
|
||||
having them painted over the facade; aircraft, vessels and satellites keep
|
||||
their labels over the scene as before (Sameh Khamis, @samehkhamis, #1659).
|
||||
@@ -0,0 +1,4 @@
|
||||
- Keyless Gemini voice no longer blames the microphone. Without
|
||||
`GEMINI_API_KEY`, the voice control shows only "Add a Gemini API key in
|
||||
Provider Settings", without the microphone-permission hint, as OpenAI voice
|
||||
already does (Sameh Khamis, @samehkhamis, #1660).
|
||||
@@ -0,0 +1,4 @@
|
||||
- Gemini voice messages follow a language change. A Gemini Live status or
|
||||
error, such as "Gemini quota is unavailable", is shown in the new interface
|
||||
language after you switch it, instead of staying in the old one, as OpenAI
|
||||
voice messages already do (Sameh Khamis, @samehkhamis, #1661).
|
||||
@@ -0,0 +1,36 @@
|
||||
- Flights, Military Flights and AIS Vessels follow the world clock when their
|
||||
source declares a timeline, that is, can answer a snapshot at a given time
|
||||
(`source.timeline`, read by `readSnapshotTimeline` from
|
||||
`gods-eye-view/sources/live`). Away from live they show the snapshot at the
|
||||
clock's time and move on with it as it plays; back at live they poll as
|
||||
before. A source's `timeline.subscribe` may also tell of a better answer
|
||||
for a time it has answered; paused, the layer loads the time shown again.
|
||||
A source with no timeline keeps them live, unchanged (Sameh Khamis,
|
||||
@samehkhamis, #1662).
|
||||
- AIS Vessels are keyed by the stable id their live source gives (`id` on a
|
||||
vessel record), not by MMSI: vessels can share an MMSI, through spoofing,
|
||||
reused numbers or defaults such as 0, and a number can move to another
|
||||
hull. Two vessels sharing an MMSI are now two vessels, each selected,
|
||||
followed and carded on its own. The MMSI is an attribute (`mmsi`), shown
|
||||
when known and `--` otherwise, up to ten digits; looking a vessel up or
|
||||
selecting it by MMSI (an older link, say) still finds a vessel with it, and
|
||||
a vessel with no name is no longer named by its id. `vesselSnapshot` takes
|
||||
`idFor(row)` for a source whose rows carry an id of their own. Tool and voice results carry the vessel's id beside its MMSI
|
||||
(`id`, or `vesselId` where `id` is a display label), and `get_vessel_track`
|
||||
also takes an `id`. AISStream has only MMSIs, so its vessels are keyed by
|
||||
MMSI and nothing changes there (Sameh Khamis, @samehkhamis, #1662).
|
||||
- A share link made while a vessel is selected (and the camera follows
|
||||
nothing) now opens that vessel: the link names it, opens with the camera
|
||||
where it was, looking at the vessel, and selects the vessel once the feed
|
||||
has it, at the link's world time when it has one. A vessel id that is a
|
||||
source's stable id, such as a UUID, travels as its 16 bytes in a new thing
|
||||
field (13), so the link stays short (62 characters where a followed
|
||||
aircraft's is 44). MMSI and other ids, and links already shared, are
|
||||
unchanged; an app that predates the field opens such a link at the same
|
||||
camera, without selecting the vessel. A camera that no follow offset can
|
||||
carry (below the vessel's horizon, say) still makes a place view.
|
||||
A shared flight, military flight, vessel or satellite that is not reporting
|
||||
now says so in a sentence ("The shared vessel isn't reporting now — showing
|
||||
where it was at 14:05"), with its id on a second line under it (ICAO,
|
||||
NORAD, MMSI or vessel UUID) instead of at the head of the sentence (Sameh
|
||||
Khamis, @samehkhamis, #1662).
|
||||
@@ -0,0 +1,4 @@
|
||||
- A weather feed can supply decoded frames to the weather layers. With an
|
||||
optional `getFrameImage` or `getFrameTile`, Core draws the images and tiles
|
||||
the feed returns instead of reading the image and tile routes; a feed
|
||||
without them is unchanged (samehkhamis, #1665).
|
||||
@@ -0,0 +1 @@
|
||||
- Run the existing GC-bracketed allocation regression gates on Node 26 as well as Node 24. Keep the current byte budgets so CI catches allocation regressions on both supported runtimes (BreezeDelegate, #766; fixes #39).
|
||||
@@ -0,0 +1,7 @@
|
||||
- The voice debug log now says why OpenAI Realtime did or did not get a
|
||||
viewport screenshot or pointer crop. When an entity-context answer reaches
|
||||
the image step, the log records a reason-coded decision and, when an image
|
||||
was due, one outcome under the same id: sent, or why it was dropped (a stale
|
||||
pointer, a camera move, a newer turn). What is captured, sent and kept is
|
||||
unchanged, and no image data or user text is logged (Kevin Rajan, @kvnloo,
|
||||
Manjunath, @manjunath22466, #835).
|
||||
Reference in new issue
Block a user