2939 Commits
Author SHA1 Message Date
quanticsoul4772 2e9c146060 Merge branch 'main' into upstream/traffic-paired-flow-density 2026-11-02 06:51:22 -08:00
quanticsoul4772 0697cd8493 Merge branch 'main' into upstream/voice-alias-hint-budget 2026-11-02 06:51:15 -08:00
quanticsoul4772 468d5078e3 Merge branch 'main' into upstream/terrain-partial-heights 2026-11-02 06:50:47 -08:00
German Khokhlov cfc83a6078 Release the tuner noise graph after a silent dial release
A release that only selects a station now stops the looping noise source and suspends its AudioContext. The qa-radio dial scenarios start from an active stream, or expect a silent release from a stopped Radio.
2026-11-02 17:19:53 +04:00
German Khokhlov 645e13aeaa fix(hud): catch the UNAVAILABLE word flush against Han and keep multi-word names whole
Han and kana have no word edges, so a CJK forbidden word now counts anywhere
in the reply. The proxy no longer counts words: the model reads Rue de Rivoli
as one, so only the 80-character word-boundary cap remains.

Also restore src/voice/gevActions.test.mjs, reformatted by mistake in 818d2c82.
2026-11-02 17:13:58 +04:00
German Khokhlov 818d2c8295 fix(hud): keep localized summary words whole and drop padding
- The proxy keeps combining marks, in-word apostrophes and name dots
  (ar vowel signs, fr d'Orléans, ja ・), normalizes to NFC, caps every
  summary in characters and cuts at a word boundary.
- feedState is nullable instead of a `none` token, and the summary has at
  most five words: "exactly five" made the model pad short views with
  "no data" or "unavailable".
- The HUD caches only the model's words and adds the current warning on
  every paint; an RTL locale gets a leading right-to-left mark.
- The echo check also rejects an all-Latin reply in a non-Latin language,
  translated layer ids and, with every feed healthy, the UNAVAILABLE word;
  places are matched by word and one-word layer names are skipped in
  Latin-script locales.
- The warning tag names the worst layers first; a partial analyst card
  shows one partial chip.
2026-11-02 13:44:53 +04:00
German Khokhlov 857b007fb1 Keep the Radio tuning dial silent unless a stream is playing
Releasing the tuning dial always started the chosen station, plus tuning
static, even when nothing was playing. It now follows the Previous/Next
rule: the release plays only if a stream was loading, buffering or playing
when the drag began; otherwise it just selects the station.

The privacy note no longer lists finishing tuning as a way to connect and
now names voice instead, in all locales. Docs, changelog and comments are
tightened to match.
2026-11-02 13:27:55 +04:00
German Khokhlov 0ec6735440 Merge remote-tracking branch 'origin/fix/hal-722-radio-next-no-autoplay' into fix/hal-722-radio-next-no-autoplay 2026-11-02 12:36:51 +04:00
German Khokhlov a2be947aba Merge origin/main into fix/hal-722-radio-next-no-autoplay
main moved the Radio markup into Vue views and rebuilt the UI tests on
stores. Resolved:
- src/ui/templates/context.html: deleted in main; the new privacy note now
  lives in src/ui/views/panels/RadioPanel.vue.
- src/ui/radioControls.test.mjs: main's store fixture; the Next/Previous
  autoplay test drives store.act('cycleRadio').
- src/voice/gevRealtime.test.mjs: main's createTestVoiceUi; the stop and
  select handoff cases stay one table-driven test.
- src/data/radioNextState.test.mjs reads the published gev-radio view.
- src/i18n/locales/ar.json: the new note translated for the Arabic locale.
2026-11-02 12:36:31 +04:00
Sameh Khamis 151ce3dee7 Merge pull request #1448 from Rohilalala/fix/e-local-adsb-geom-rate
fix(local-adsb): show a decoder feed's GNSS-sourced vertical rate
2026-11-02 00:18:11 -08:00
Sameh Khamis d479c1c6f6 Read an ADS-B vertical rate from one shared field reader 2026-11-02 00:09:18 -08:00
Sameh Khamis 780d8903ee Merge branch 'main' into fix/e-local-adsb-geom-rate 2026-11-02 00:09:11 -08:00
Sameh Khamis abe138884e Merge pull request #1436 from Rohilalala/fix/d-military-geom-vertical-rate
fix(military): read a GNSS-sourced vertical rate when no baro rate is sent
2026-11-02 00:09:05 -08:00
Sameh Khamis d25951272b Merge branch 'main' into fix/d-military-geom-vertical-rate 2026-11-02 00:01:44 -08:00
Sameh Khamis dc261025ea Merge pull request #1453 from Rohilalala/fix/e-satellite-launch-year
fix(satellites): stop matching a mission to a namesake from another year
2026-11-02 00:01:39 -08:00
German Khokhlov 0d3c1ef1d9 fix(hud): ask again in the new language after an in-place switch
- _relocalize() now drops the received reply and aborts one in flight, so
  the next tick asks in the new language instead of keeping old-language
  text under the new-language state tag.
- The English-echo check also allows state words inside a place label
  (Estación Loading Dock).
- Reword the non-English instruction so it reads for every language name.
- Add the two new test files to the format scope.
2026-11-02 12:00:44 +04:00
German Khokhlov 1a6687632d Merge remote-tracking branch 'origin/main' into german/hal-623-hud-summary-locale
# Conflicts:
#	src/hud.js
#	src/hudAltitudeDatum.test.mjs
2026-11-02 11:59:08 +04:00
Sameh Khamis 411cfd850b Record the shared launch-year parser in the state doc and fragment 2026-11-01 23:53:25 -08:00
Sameh Khamis 6a01355560 Merge branch 'main' into fix/e-satellite-launch-year 2026-11-01 23:51:11 -08:00
Sameh Khamis 5a2bd8d9f9 Merge pull request #1449 from Rohilalala/fix/e-cable-tool-duplicates
fix(tools): list a split submarine cable once in find_submarine_cables
2026-11-01 23:51:06 -08:00
Sameh Khamis e6be83cad7 Merge branch 'main' into fix/e-cable-tool-duplicates 2026-11-01 23:42:33 -08:00
Sameh Khamis bd4f10b225 Merge pull request #1442 from Rohilalala/fix/e-traffic-coverage-rounding
fix(traffic): stop a few matched roads reading as "no matches"
2026-11-01 23:42:28 -08:00
Sameh Khamis 36410c7f82 Merge branch 'main' into fix/e-traffic-coverage-rounding 2026-11-01 23:35:19 -08:00
Sameh Khamis c40f67a345 Merge pull request #1434 from Rohilalala/fix/c-unknown-altitude-speech
fix(voice): leave out an unreported altitude instead of saying 0 feet
2026-11-01 23:35:07 -08:00
Sameh Khamis 01c6977cdd Merge branch 'main' into fix/c-unknown-altitude-speech 2026-11-01 23:25:42 -08:00
Sameh Khamis 7e952d031c Merge pull request #1444 from Rohilalala/fix/e-replay-speed-countdown
fix(missions): keep the replay countdown real-time when the speed changes
2026-11-01 23:25:32 -08:00
Sameh Khamis 004b452966 Merge branch 'main' into fix/e-replay-speed-countdown 2026-11-01 23:16:11 -08:00
Sameh Khamis 0c67f54d2b Merge pull request #1443 from Rohilalala/fix/e-replay-countdown-ten
fix(missions): run the full T-10 replay countdown after the tile hold
2026-11-01 23:15:58 -08:00
Sameh Khamis e4c39fbea9 Merge branch 'main' into fix/e-replay-countdown-ten 2026-11-01 23:06:41 -08:00
Sameh Khamis a38c9a6b22 Merge pull request #1433 from Rohilalala/fix/b-awareness-marker-km
fix(awareness): show a 999.6 m contact marker as 1.0 km, not 1000 m
2026-11-01 23:06:33 -08:00
Sameh Khamis 8a5cad98fa Merge branch 'main' into fix/b-awareness-marker-km 2026-11-01 22:57:14 -08:00
Sameh Khamis 4ef37d44c5 Merge pull request #1502 from bilawalsidhu/sameh/core-leftovers
Keep the timing test's Vite cache out of the package tree
2026-11-01 22:53:51 -08:00
Sameh Khamis 4779432e48 Read a satellite's launch year from one TLE parser
The catalog stored the designator on satrec.intldesg for
internationalDesignatorYear, while the active-TLE lookup parsed the same
columns with tleLineLaunchYear. Each catalog entry now keeps launchYear from
tleLineLaunchYear, which moves to src/sources/tle.js beside the other TLE
field readers, and internationalDesignatorYear goes.

A blank designator now reads as an unknown year in both lookups; the
active-TLE lookup read it as 2000.
2026-11-01 22:53:35 -08:00
Sameh Khamis bfeec17c81 Merge branch 'main' into fix/e-satellite-launch-year 2026-11-01 22:51:43 -08:00
Sameh Khamis 98173afd6b test(launches): stub the replay panel the speed control now publishes to
On main, setReplaySpeed publishes the speed control through
parts.panel.publishPanel, so the replay rig needs a panel stub.
2026-11-01 22:51:37 -08:00
Sameh Khamis 950d1b78ce Merge branch 'main' into fix/b-awareness-marker-km 2026-11-01 22:47:58 -08:00
Sameh Khamis e40bff37d2 test(traffic): keep the timing test's Vite cache out of the package tree
The traffic timing test starts a Vite server rooted at the package, which
wrote its dependency cache to node_modules/.vite and kept writing after the
server closed. A host running Core's suite then finds files inside Core and
its check refuses them. The server now uses a temporary cache directory,
removed afterwards, and skips dependency discovery, which the SSR-loaded
modules never need.

The HUD place-lookup changelog note credits its PR, #1459.
2026-11-01 22:47:05 -08:00
Sameh Khamis e8d5e8793e Merge pull request #1501 from bilawalsidhu/sameh/rail-pills
Show the panel rails as labelled pills until a panel opens
2026-11-01 22:47:03 -08:00
Sameh Khamis d14205160a Format every metre/kilometre distance through one shared helper
Directions, the Contacts marker and panel, placed annotation labels, the
drawn-line measure, the Cockpit and formatRouteDistance each chose the unit
and precision on their own, and most chose before rounding: #1450, #1433 and
formatDistanceText or kilometreDigits from src/data/distanceFormat.js, which
cut after rounding. Each keeps its own metre step and rendering.

That also fixes the 10 km cut the Contacts marker and panel, the drawn-line
measure and the Cockpit still had (9,960 m read 10.0 km). The helper returns
kilometres already rounded, so the plain marker and the localized panel no
longer disagree on half-tenths such as 1,450 m.

A negative annotation distance now leaves the label without a distance, and
a drawn line with a coordinate that is not a number shows no measure, rather
than printing 0 m or NaN km. The HUD altitude tag and the spoken view height
keep their own unit choice.
2026-11-01 22:40:28 -08:00
Sameh Khamis c6fff6e7b8 changelog: note the rail pills 2026-11-01 22:40:17 -08:00
Sameh Khamis d546d65380 feat(kit): show the panel rails as labelled pills until a panel opens
UiRail takes `collapsible`: while no panel on its side is open, each item
shows its icon and label as a pill, and once one opens the labels fold away
to the icon rail, making room for the panel. The tip is not shown while the
label is on screen; the button keeps its accessible name and the visible
label is hidden from assistive technology. The side panel rails turn it on.

Each rail is now placed by its screen-side edge, at the rail clearance, so a
rail that widens grows toward the middle of the screen; collapsed, it sits
6px outside its stack as before.
2026-11-01 22:40:17 -08:00
Sameh Khamis 2124f56f92 Merge branch 'main' into fix/b-awareness-marker-km 2026-11-01 22:40:10 -08:00
Sameh Khamis 6acaa01ca8 Merge pull request #1445 from Rohilalala/fix/e-route-label-kilometre
fix(annotations): label a 996 m line or route as 1.0 km, not 1000 m
2026-11-01 22:40:05 -08:00
Sameh Khamis 54f12140cf Merge branch 'main' into fix/e-route-label-kilometre 2026-11-01 22:30:51 -08:00
Sameh Khamis 561141fe55 Merge pull request #1450 from Rohilalala/fix/e-route-distance-ten-km
fix(directions): show a 9.96 km route as 10 km, not 10.0 km
2026-11-01 22:30:48 -08:00
Sameh Khamis 941a7a392e Merge branch 'main' into fix/e-route-distance-ten-km 2026-11-01 22:22:22 -08:00
Sameh Khamis 27000cf6da Merge pull request #1454 from Rohilalala/fix/e-context-heading-north
fix(flights): read a 359.6° track as 0° in the voice context, not 360°
2026-11-01 22:22:14 -08:00
manjunath d9a460658d merge main 0c28dc7 into feat/voice-outlines 2026-11-02 11:39:21 +05:30
Sameh Khamis 639a7fb23a Merge branch 'main' into fix/e-context-heading-north 2026-11-01 21:58:41 -08:00
Sameh Khamis 0c28dc78a5 Merge pull request #1500 from bilawalsidhu/sameh/vue-loader-cache
Cache compiled components and load them on the test thread
2026-11-01 21:56:55 -08:00