Commit Graph
3376 Commits
Author SHA1 Message Date
German Khokhlov 33a2876bc0 Fix the translations of the voice geometry, fire filter, airspace and sea mark strings 2026-11-05 12:36:13 +04:00
Manjunath 2f9d13f39d fix(camera): orbit on drags from the stars above 1,000 km
Below Cesium's trackball height (7,500 km by default) a drag that starts
on the stars turns the camera in place, whatever enableLook says, which
was the drag path to a view with no planet in it. Lower that height to
the free-look height with the free-look limit, never raising it, and
restore it on dispose. Above 1,000 km such a drag now orbits the globe,
as it already did above 7,500 km, at a similar rate, and a tilt drag
from the stars there tilts about the planet's edge or does nothing
instead of turning the camera. Drags that start on the planet are
unchanged.
2026-11-05 12:20:26 +05:30
Manjunath 64377db91a fix(camera): leave flights and scenes to their framing
Review follow-ups for the globe-in-view recovery and voice limits.

- Leave a camera flight in progress and a playing Director scene, holds
  included, to their own framing. The recovery is now installed with the
  scene tools, which own the Director, and reads its running state.
- Reuse a voice turn's half-degree proof only from the position and
  direction it was proven at, so a release that moves the camera checks
  the turn again.
- Share one free-globe-camera check between the recovery, the voice
  turn limit and the globe rotation.
- Keep an enableLook setting other code makes after the free-look limit
  is installed, instead of writing back the install-time value.
- Name the nudging test for what it asserts, the 1% floor, and document
  that a view losing its surface without a camera move waits for the
  next one.
2026-11-05 11:59:11 +05:30
Manjunath 1c59105a80 Judge tilts by camera pitch and follow a newer flight at once
- A tilt's angle, limits and "unchanged" check use the camera's own
  pitch. At regional range the pivot pitch is up to about 8 degrees
  shallower, so "tilt to 5 degrees" from 900 km ended at -12.9 degrees.
  The swing now solves for the pivot pitch that gives the camera angle.
- A zoom out during a pivoting tilt stops at the 1,000 km pivot limit
  instead of the orbit's 5,000 km, and a zoom in that reaches the
  clearance is applied before the pivot ends.
- An angle the camera already holds still takes navigation, so it stops
  a running motion and releases the follow camera.
- A motion queued behind a fly-to moves to a newer fly-to as soon as it
  begins, so a stalled lookup no longer holds it past a flight that
  landed. Wait listeners are removed when a wait ends, and a lookup that
  found nothing points straight at the flight that moved.
- A fly-to that stops a running motion names it (stoppedMotion).
- A tilt left or right is refused, and the pitchDeg description says
  steps use direction.
2026-11-05 11:36:29 +05:30
Rudy Celekli 79c867c8cb docs(changelog): add the perimeter size fragment for #1569 2026-11-04 22:14:16 -05:00
Rudy Celekli e2ccac56ae fix(perimeters): show a 0.25-acre fire as 0.25 ac, not 0 ac
The incident card rounded the WFIGS size to whole acres, so every fire
under half an acre read "0 ac". The live perimeter feed carries many of
these (0.01 to 0.37 acres). Sizes under one acre now keep the reported
hundredths.
2026-11-04 21:58:42 -05:00
Itallo BrandãoandClaude Opus 5.5 ad48305dac feat(transit): name Rio routes from SMTR's published GTFS
SMTR's realtime feeds carry internal route keys, so a Rio card read
"Route O0731AAN0A" where riders know line SN731. Join both feeds to the
route_short_name in SMTR's static GTFS routes.txt (CC BY 4.0, same
publisher and terms). The keys cannot be parsed: O0014AAA0A is LECD135.
A 2026-11-04 snapshot found all 282 bus and 21 BRT routes in service in
the table; an unknown key still falls through raw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 22:49:54 -03:00
Denis Groshev 459b0e8a71 docs(changelog): add the #1556 fragment 2026-11-04 21:53:06 +01:00
Denis Groshev 219f3e1079 feat(cockpit): enter Cockpit with only the ridden aircraft's layer on
Cockpit entry no longer needs Contacts or both flight feeds: a civilian
aircraft needs Live Flights, a military one Military Flights. Contacts and
every other layer can be turned on or off before or during a session, and
turning off the ridden layer ends it. A Context mode change in flight still
blocks entry.

When the other air feed is off, Live Signals and the Contact card say
FLIGHTS FEED OFF or MILITARY FEED OFF · PARTIAL PICTURE instead of
presenting a partial picture as complete. Voice refuses entry with
subject-layer-off rather than contacts-inactive, and its tool description
says Contacts is not required.

Double-clicking the followed aircraft enters Cockpit through the same gate.
The Cockpit takes the scene's double-click before Cesium's stock handler,
which would otherwise untrack a followed aircraft whose model is a
primitive. The entry also shows under the Intel HUD readout, sharing the
Contacts button's face. A test keeps the classes the Cockpit adds to the
body from matching another element's rule.
2026-11-04 21:53:05 +01:00
quanticsoul4772 a1cee50d86 Merge branch 'main' into upstream/tools-heading-wrap 2026-11-04 12:46:59 -08:00
quanticsoul4772 c2a04c11b7 Merge branch 'main' into upstream/nominatim-cache-mode-windows 2026-11-04 12:46:44 -08:00
German Khokhlov 7d8b80db0a Merge pull request #1561 from bilawalsidhu/german/chat-autocomplete-arabic-marks
Ignore Arabic short vowels and shadda in chat autocomplete
2026-11-04 23:58:19 +04:00
German Khokhlov e84cae6baa Add the changelog entry for #1561 2026-11-04 23:35:46 +04:00
German Khokhlov 06c84f92d3 Ignore Arabic short vowels and shadda in chat autocomplete
Arabic catalog strings carry optional marks ("تتبّع"), but people type
without them, so "تتبع" found no suggestion. Fold the marks out of both
the draft and the candidates before comparing.
2026-11-04 23:35:25 +04:00
German Khokhlov cd7c5d5a17 Merge pull request #1426 from bilawalsidhu/claude/hal-676-gev-fire-intensity-742bd1
feat(fires): FRP intensity filter, confidence switch and six-stop color ramp
2026-11-04 22:59:47 +04:00
manjunath22466 3577d19513 Cover the real provider switch and share chat Settings and stop checks
- Host test switches AI Provider from chat Settings through the real
  provider commands and checks the new mount keeps chat's context, frame,
  Back to chat and focus on the provider choice.
- Drop the open and minimized branches of the carried presentation: the
  provider choice lives only in Settings, so chat is never open then.
- One showChatSettings helper for the gear and the restore, and one
  isStoppable helper for the live-or-error check in chat and the panel close.
2026-11-05 00:17:08 +05:30
German Khokhlov 908cce915a Merge remote-tracking branch 'origin/main' into claude/hal-676-gev-fire-intensity-742bd1
# Conflicts:
#	src/i18n/locales/es.json
#	src/i18n/locales/ru.json
#	src/i18n/locales/uk.json
#	src/i18n/locales/zh-CN.json
2026-11-04 22:45:08 +04:00
Denis Groshev 82f17e694e refactor(cockpit): place the camera from a per-subject eye profile
Split the Cockpit camera update into the aircraft's own front half and a
shared placeCamera that reads the eye's forward and up offsets, pitch and
ground clearance from a profile. The aircraft profile carries the existing
constants, so the aircraft view is unchanged; other subjects can now supply
their own eye.
2026-11-04 17:03:52 +01:00
quanticsoul4772 29a95211c5 Merge branch 'main' into upstream/tools-heading-wrap 2026-11-04 07:57:42 -08:00
quanticsoul4772andClaude Opus 5.5 1c2cdc6775 changelog: Nominatim cache mode test on Windows (#1547)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 07:06:45 -08:00
quanticsoul4772andClaude Opus 5.5 4f43ded5da test(nominatim): check cache file modes only where POSIX modes exist
The disk-cache test asserts the cache directory is 0o700 and its files
0o600. Windows has no POSIX mode bits (the directory stats as 0o666), so
the test always failed there. Both checks now run only off Windows, as
localServices.test.mjs and mcpPanelKey.test.mjs already do for their
0o600 checks. The cache code is unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 07:05:17 -08:00
Itallo BrandãoandClaude Opus 5.5 1b0b4a10dc Merge main into feat/rio-transit-gtfs-rt
Resolves the DATA_SOURCES.md conflict by keeping main's rewritten Transit
and Radio bullets and restating the count for this branch: eighteen feeds
covering seventeen regions (the two Rio feeds share one region).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-04 11:53:46 -03:00
German Khokhlov ac28a11e41 Merge pull request #1319 from ch-bas/feat/cctv-model-specs-refresh
feat(cctv): vendor the Bosch MIC PTZ records the Amsterdam register names
2026-11-04 18:37:46 +04:00
German Khokhlov 11fb45b31b Merge branch 'main' into feat/cctv-model-specs-refresh 2026-11-04 18:24:30 +04:00
German Khokhlov 22946b075d Merge pull request #1545 from bilawalsidhu/german/typed-chat-translations
Fix the typed AI chat translations
2026-11-04 18:22:51 +04:00
German Khokhlov f79e9328d6 docs(cctv): tighten the Bosch MIC record notes 2026-11-04 18:17:26 +04:00
German Khokhlov 55e6c0017c Tighten the provider-label comments and docs 2026-11-04 18:15:16 +04:00
German Khokhlov bd28f2d802 Merge #1535: keep old heat hidden when reenabling an empty filter 2026-11-04 18:10:56 +04:00
manjunath22466 46dde909cc docs(changelog): add #1546 fragment 2026-11-04 19:37:47 +05:30
manjunath22466 53ea76251f fix(voice): keep chat's view across a provider switch and clear stale errors
Switching AI Provider in Settings opened from chat rebuilt the voice
control, so Settings fell back to voice and the dock went idle, widening
the wings. The switch now carries chat's Settings, or chat itself, to the
new provider as it already carries the input mode; the conversation still
starts fresh and focus stays on the provider choice.

After a voice error, opening chat or closing the voice panel left the dock
red on ERROR, because both stopped only an active session. They now also
end a session left in error, which returns the dock to idle.
2026-11-04 19:34:30 +05:30
German Khokhlov 20a7016987 Keep "Tell it where to go" as a direction, not a flight, in ru, uk and es 2026-11-04 17:56:57 +04:00
German Khokhlov 353ca04b61 Add the changelog entry for #1545 2026-11-04 17:53:47 +04:00
German Khokhlov e66b99c8ff Fix the typed AI chat translations
The quick commands "Reset to globe view" and "Show earthquakes" reached t()
through a .map(), so the catalog check never saw them and every language
showed them in English. They are now marked with msg() and translated.

Review of the 71 strings from #1507 in all eleven languages:
- zh-Hant is regenerated from zh-CN with OpenCC s2tw, as its guide says;
  40 entries had Taiwan vocabulary instead.
- ar "Dock to the right" names the left side, where RTL puts that rail.
- ja "What am I looking at?" no longer asks what the assistant sees.
- Provider Settings, dock, provider, live and map use each glossary's terms.
- de drops the du-form; ja drops spaces between Japanese and Latin text.
- Calques, register and the example commands read naturally.
2026-11-04 17:53:23 +04:00
German Khokhlov 2d917c5909 Merge branch 'main' into feat/cctv-model-specs-refresh 2026-11-04 17:53:10 +04:00
German Khokhlov 4859ba4c94 Merge pull request #1464 from quanticsoul4772/upstream/datacenter-ground-sampling
fix(infrastructure): ground-sample only stem bases the camera sees
2026-11-04 17:39:36 +04:00
German Khokhlov 9b7d9ad537 Merge origin/main 2026-11-04 16:35:00 +04:00
German Khokhlov 99831ea19b Keep STALE on Contacts while a poll is in flight
A poll that returned the same stale snapshot dropped STALE from the
Contacts cohort until the next answer, because the in-flight loading flag
outranked stale and the source revision ignored the provider name. A
source that has answered now reads its status without the loading flag;
one that has never answered (AIS first connect) still reads as loading,
so it shows no STALE before any snapshot exists.
2026-11-04 16:34:39 +04:00
Manjunath 4c9b27dc20 Keep a settled flight in reach of a later failed lookup
A new voice fly-to now records the last flight that moved as the one it replaced, landed or not; only a still-flying one passes on its manual-input count. A slow lookup cancelled by a direct flight that landed, followed by a lookup that found nothing, used to drop the queued motion, and a cancelled direct flight in the same place let it fall back to an older landing.
2026-11-04 14:48:07 +05:30
Manjunath b683b8a64b Look past voice lookups that found nothing
A motion queued behind a voice fly-to acts on the last flight that moved the camera. A later lookup that was not found, threw, or was cancelled once a newer voice fly-to had begun moved nothing, so the motion looks past it rather than refusing or running early and cancelling the flight still in the air. It never acts at a flight older than the one it started waiting on. A lookup cancelled while still the latest voice flight (a search, a share link, Cockpit) still refuses.

The top-down no-op now reports the camera's real pitch.
2026-11-04 14:29:37 +05:30
Manjunath bf73a8a1e1 Merge main into the voice tilt branch
No conflicts. The tool payload pin and the Realtime prompt size are unchanged (55,492 with Overpass).
2026-11-04 13:45:45 +05:30
Manjunath 44860df90e Follow a replacement voice flight whatever its predecessor reports
A motion queued behind a voice fly-to now follows a later fly-to in the same reply whether the earlier one arrived, was cancelled or failed. A geocode that loses navigation reports failed, so the motion used to be dropped; and a flight left flying while the next place is looked up could land and run the motion there, taking navigation and cancelling the newer flight. The deadline, abort and stale-reply checks still end the wait.

pitchDeg -90 or -89 from a top-down view is now unchanged rather than a 1° tilt up, and the tilt tests' pitch loops are bounded.
2026-11-04 13:40:43 +05:30
quanticsoul4772 13c3b011be Merge branch 'main' into upstream/tools-heading-wrap 2026-11-03 20:30:35 -08:00
quanticsoul4772 0b91938f7d Merge branch 'main' into upstream/datacenter-ground-sampling 2026-11-03 20:30:27 -08:00
daikaginza 0e0557e7f5 Merge upstream/main 73c14ac74 2026-11-04 11:21:01 +07:00
Sameh Khamis 73c14ac749 Merge pull request #1507 from manjunath22466/feat/typed-ai-chat
feat(voice): add typed AI chat beside voice
2026-11-03 16:14:58 -08:00
Adrian Sbardella 19e85941e6 docs: add changelog entry for empty-filter heat lifecycle fix 2026-11-03 21:07:29 -03:00
Adrian Sbardella 37e751f1e3 fix(fires): keep retained heat hidden when reenabling an empty filter
Add a lifecycle regression and register it in the format scope.
2026-11-03 21:06:56 -03:00
Sameh Khamis 6ce9498d18 fix(voice): move focus with the voice panel that chat asks for
Asking from the chat composer to open Voice Settings or Voice Preview
closed chat around the focused input, leaving focus on a hidden control.
Focus held in chat now moves to the requested view's tab, as the panel's
own tabs move it; focus anywhere else stays put.
2026-11-03 16:04:54 -08:00
Sameh Khamis 66fb4b6aca test(voice): pin the deadline each chat map action gets
Three 40 ms actions in one round outlast a 50 ms deadline unless each
action re-arms it, so removing that re-arm now fails the test for both
providers.
2026-11-03 15:54:59 -08:00
Sameh Khamis eed6162753 fix(voice): follow a new chat request once the log is full
The conversation is kept to its newest 60 messages, so once full it no
longer grows as a message is sent, and a reader who had scrolled up was
left behind by their own request. The view now spots a send by the newest
user message's id instead of the list's length.
2026-11-03 15:54:54 -08:00