Commit Graph
3013 Commits
Author SHA1 Message Date
Sameh Khamis b80ef27eb9 Merge branch 'main' into contrib/gods-002-director-dateline-seek-20261011-reviewed 2026-10-14 15:03:18 -07:00
Ian BlenkeandSameh Khamis 504d56ba2b test: fix flaky timing and timeout guards (#969)
Clears the timeout guards once each race settles, measures the 15,000-vehicle transit ingestion with main-thread CPU time instead of wall time, and times the region-timeout case from the boundary lookup with a 2 s ceiling, below the 3 s default budget, so an ignored budget still fails.

Co-authored-by: Sameh Khamis <[email protected]>
2026-10-14 14:58:53 -07:00
quanticsoul4772andSameh Khamis 4cacd4cc00 fix(qa): exit QA gates gracefully on Windows (#1064)
process.exit(2) after a successful fetch trips a libuv assertion on Windows and turns the exit code into 127. The four gates set process.exitCode and return instead, and discard the unread reachability response so an early exit does not wait for the server to finish the body.

Co-authored-by: Sameh Khamis <[email protected]>
2026-10-14 14:48:53 -07:00
Sameh Khamis 6a1432d3c0 Merge pull request #917 from kvnloo/fix/recent-imagery-qa-relative-layout-20261003
test: make Recent Imagery live gate rail-reflow safe
2026-10-14 14:40:05 -07:00
Sameh Khamis a9c41e7c3e Merge branch 'main' into fix/recent-imagery-qa-relative-layout-20261003 2026-10-14 14:29:12 -07:00
Sameh Khamis 7725a8fafb Merge pull request #1062 from quanticsoul4772/fix/qa-stale-mutation-anchors
fix(qa): repoint stale mutation anchors after the September refactors
2026-10-14 14:28:52 -07:00
Sameh Khamis 8daaa065d2 qa: log the Recent Imagery gate's stability mode and document its flag 2026-10-14 14:16:30 -07:00
Sameh Khamis cb2ead3c16 Merge branch 'main' into fix/recent-imagery-qa-relative-layout-20261003 2026-10-14 14:12:59 -07:00
Sameh Khamis 7a9463bf2f Merge branch 'main' into fix/qa-stale-mutation-anchors 2026-10-14 14:12:55 -07:00
German Khokhlov f2fcd82290 test(qa): click street-level coverage at a verified pixel
The draped coverage line is about one pixel wide and can sit on a pixel
boundary: the probe hit at a fractional x while the click at the integer
pixel missed. Wait for tiles, click only at an integer pixel that picks the
line right before the click (off the centre column first), retry up to 4x.
2026-10-15 00:19:52 +04:00
German Khokhlov e3061872cc refactor(streetLevel,traffic,transit,firms,installations,radio,bikeshare,cables,detection): take vector maths from src/geo
Street level view/cameraFollow/groundClick/index, traffic footprint/viewport/ingestion, transit viewport/trails/state/rendering, FIRMS state/viewport, installations controls/viewport/state, radio queries/navigation/state, bikeshare viewport, submarine cable overlay and data/detection now use src/geo for Math, Cartesian2/3, Cartographic and WGS84 maths. Cesium stays for Rectangle, Ray, BoundingSphere, HeadingPitchRange, EasingFunction, EllipsoidGeodesic, EllipsoidalOccluder and the Ellipsoids passed into Cesium (pickEllipsoid, occluders). traffic/state.js keeps its Cesium lerp scratch (written per frame by Cesium.Cartesian3.lerp in animation.js; a geo scratch cost +4-7% there) and traffic/timing.js stays on Cesium (a test keeps it source-equivalent to model.parseRoads, outside this batch). street-level-layer, traffic-layer, installations-layer, bikeshare-layer and submarine-cables own the src/geo files.
2026-10-15 00:19:13 +04:00
German Khokhlov a915bdb3e5 refactor(launches,cctv,alpr): take vector maths from src/geo
Launches selection/replay/panel/policy/policyHelpers/state/camera, CCTV geometry/model/projection/navigation/cards/geometryQueue/state and ALPR model/visuals now use src/geo for Math, Cartesian2/3, Cartographic, Matrix3/4, Quaternion and ENU frames. launches/paths.js keeps Cesium (EllipsoidGeodesic). In camera.js, EllipsoidGeodesic, BoundingSphere.fromPoints/union and the BoundingSphere constructor stay on Cesium; the geo Cartographics passed into EllipsoidGeodesic are only read field by field and cloned there (computeProperties). The CCTV plane orientation stays a Cesium Quaternion and plane dimensions a Cesium Cartesian2 (entity ConstantProperty values). launches-layer and alpr-cameras own the src/geo files.
2026-10-15 00:18:35 +04:00
German Khokhlov ee8b94d987 refactor(flights,military,localAdsb): take vector maths from src/geo
Dead reckoning, the grounded display floor, snapshot rendering, queries and layer scratch state now use src/geo. Outputs are bit-identical to the previous batch (frozen-clock probe over flights, military, local ADS-B and orbits); per-frame paths are as fast as base 132b9e96 or faster (see docs/migration/phase1a-report.md).
2026-10-15 00:17:56 +04:00
German Khokhlov 2b83606765 refactor(vessels,satellites,awareness): take vector maths from src/geo
Moves the Cartesian3/Cartographic/Matrix3/Matrix4/Math calls of the vessel, satellite and Contacts (awareness) layers, plus flights controller/enrichment, to src/geo. The satellites-layer package boundary now owns the src/geo modules. Awareness keeps Cesium.Cartesian3.clone for the resolved subject position, which reaches the installations anchor (anchor.test pins a Cesium instance).
2026-10-15 00:17:17 +04:00
German Khokhlov 1a69368ae6 refactor(ui,voice,annotations,scenes): take vector maths from src/geo
Move the Cartesian3/Cartographic/Matrix4/Transforms/Ellipsoid/Math calls of
the second batch (cockpit camera, context and controller; camera orientation
controls; application shell; location navigation; the annotation resolver
and engine; voice actions and pointer pick; the scene director; the embed
app) to src/geo. Behaviour is unchanged: same argument order, same `result`
semantics.

Kept on Cesium: out-of-scope classes (HeadingPitchRange, BoundingSphere,
Intersect, EllipsoidalOccluder, EasingFunction, SceneTransforms, JulianDate),
WGS84 where it goes into pickEllipsoid or EllipsoidalOccluder,
Matrix4.IDENTITY handed to lookAtTransform, and the Cartesian2 window
positions that reach scene.pickPosition: Cesium keys its per-frame pick
cache on windowPosition.toString(), which a plain object would collapse to
one "[object Object]" key.

The Contacts-subject harness in gevActions.test stubbed
Cesium.Cartographic.fromCartesian to place its subject; it now builds a real
subject position at the same coordinates with geo.cartesian3.fromDegrees.
The cockpit-controls and scenes package-boundary groups now own the src/geo
files.
2026-10-15 00:16:38 +04:00
German Khokhlov d886be68a8 refactor(camera,data): take vector maths from src/geo
Move the Cartesian3/Cartographic/Matrix/Quaternion/Transforms/Math calls of
the first batch (src/data motion, anchor, tracked-camera and icon helpers;
the root camera, locations, HUD, share-link, world-focus, ground-guard,
orbit and cloud modules; services/groundSnap) to src/geo. Behaviour is
unchanged: same argument order, same `result` semantics.

Kept on Cesium: out-of-scope classes (JulianDate, Axis, HeadingPitchRange,
BoundingSphere, Rectangle, EasingFunction, EllipsoidalOccluder with its
WGS84 and seed vector, SceneTransforms) and Matrix4.IDENTITY wherever it is
handed straight to a Cesium camera call (locations.test pins its identity).

synthesizeForwardKinematicsFix now returns a plain position, so the two
snapshot renderers clone it with the static Cesium.Cartesian3.clone instead
of the instance method. The package-boundary groups that reach these
modules now own the src/geo files.
2026-10-15 00:15:59 +04:00
German Khokhlov 4a92ed8377 feat(geo): add src/geo, Cesium's vector maths without Cesium
An engine-neutral port of the CesiumJS 1.138 core maths gev uses: angle
maths, the WGS84 ellipsoid and geodetic coordinates, 2D/3D vectors, 3x3/4x4
matrices, quaternions and local east-north-up / heading-pitch-roll frames.
Formulas and operation order match Cesium, so outputs are bit-identical
(golden tests pin the centre, pole, -0 and quaternion branches).

- Values are plain-data instances of module-private constructors (own
  enumerable fields only), so geo's hot functions keep their own V8 hidden
  classes; matrices are plain column-major arrays Cesium accepts.
- Cesium's debug argument checks are ported with the same conditions, order
  and DeveloperError messages, gated on DEBUG (src/geo/debug.js): on in Node
  and the dev server, folded away by vite build, as Cesium's Build strips
  them. A release-parity test compares DEBUG=false geo with Build/Cesium.
- The import-direction check forbids cesium and @cesium/* in src/geo;
  CODE-BOUNDARIES.md and THIRD_PARTY_NOTICES.md document the port.
2026-10-15 00:15:20 +04:00
Meir Michanie 29f2885cda Merge branch 'main' into i18n-spanish 2026-10-14 22:01:40 +02:00
Sameh Khamis 22241550ae Merge pull request #789 from kvnloo/docs/pinokio-browser-performance
docs(pinokio): distinguish embedded-browser stutter from hardware limits
2026-10-14 12:43:56 -07:00
Sameh Khamis ffbd91c209 Merge branch 'main' into docs/pinokio-browser-performance 2026-10-14 12:33:46 -07:00
Sameh Khamis a190b6024f Merge pull request #772 from daikaginza/docs/voice-backend-contract
docs: add the realtime backend to the voice ownership table
2026-10-14 12:33:39 -07:00
Sameh Khamis bea32dcfae Merge branch 'main' into docs/voice-backend-contract 2026-10-14 12:23:58 -07:00
quanticsoul4772andSameh Khamis 91ac5c1190 test(codex): match the installed-executable stub on Windows (#997)
The test's access stub matched a forward-slash suffix, so on Windows the resolver's backslash path never matched and it fell back to PATH. The stub and the expected value now use the same path.join result. The Windows CI job also runs this test file now.

Co-authored-by: Sameh Khamis <[email protected]>
2026-10-14 12:23:49 -07:00
Rudy CelekliandClaude Sonnet 5.5 4adcb3f727 docs: drop superseded CHANGELOG bullet
The review-driven rewrite added a narrower entry but left the original
bullet in place, so the PR carried two entries for one change.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 15:18:17 -04:00
Rudy CelekliandClaude Sonnet 5.5 09018ac753 docs: drop superseded CHANGELOG bullet
The review-driven rewrite added a narrower entry but left the original
bullet in place, so the PR carried two entries for one change.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 15:18:15 -04:00
trygvehhh 2aa0ae851f Merge branch 'main' into feat/cctv-vegvesen-kartverket-heights 2026-10-14 21:18:04 +02:00
Sameh Khamis eae16e08fb Merge pull request #792 from daikaginza/fix/unit-runner-discovers-server-tests
fix(build): discover unit tests under server/, not only src/
2026-10-14 12:12:03 -07:00
Sameh Khamis 4cd7200fe4 docs: attribute the Pinokio stutter report accurately
The workaround came from one Pinokio 8.2.0 user who did not state an OS, and a
single report suggests rather than isolates the embedded-browser cause.
2026-10-14 12:00:16 -07:00
Sameh Khamis afb3a92914 docs: say what the connection reads from the voice credential
It reads the token, model, transcription model and tier for diagnostics and
cost accounting, so the credential is not opaque to it. Also lists requestToken's
authMode option in APPLICATION.md.
2026-10-14 11:59:51 -07:00
Sameh Khamis 85754bcf50 test: say which CI job and which files the discovery guard covers 2026-10-14 11:59:14 -07:00
Sameh Khamis cefae76638 Merge branch 'main' into docs/pinokio-browser-performance 2026-10-14 11:59:04 -07:00
Sameh Khamis af95f957ec Merge branch 'main' into docs/voice-backend-contract 2026-10-14 11:59:03 -07:00
Sameh Khamis 3bc41cc12a Merge branch 'main' into fix/unit-runner-discovers-server-tests 2026-10-14 11:59:00 -07:00
HEOJUNFOandSameh Khamis 750f3da6eb fix(styles): keep Snow wind sway bounded over time (#782)
The horizontal offset multiplied elapsed time by a sine, so flakes swung faster the longer the app ran. It is now the integral of the intended sway velocity, which stays bounded at any session age; Wind still scales the amplitude.

Co-authored-by: Sameh Khamis <[email protected]>
2026-10-14 11:48:51 -07:00
Kevin Rajan 702ecc38e2 chore: reconcile #816 with merged right-rail fix #918 2026-10-14 13:43:55 -05:00
Sameh Khamis 95d376f13d Merge pull request #918 from kvnloo/fix/right-rail-css-hidden-panel-20261003
fix(ui): ignore CSS-hidden panels in right rail layout
2026-10-14 11:37:40 -07:00
Sameh Khamis f6ae1ecdd1 Merge branch 'main' into fix/right-rail-css-hidden-panel-20261003
# Conflicts:
#	CHANGELOG.md
2026-10-14 11:27:31 -07:00
Sameh Khamis 5209421973 Merge pull request #1022 from rudycelekli/contrib/gods-001-coordinate-empty-components-20261011-reviewed
fix(search): refuse empty coordinate components instead of silently dropping them
2026-10-14 11:27:26 -07:00
Sameh Khamis aa32d4d588 Merge branch 'main' into fix/right-rail-css-hidden-panel-20261003 2026-10-14 11:20:20 -07:00
Sameh Khamis c7c63a00ce Merge branch 'main' into contrib/gods-001-coordinate-empty-components-20261011-reviewed 2026-10-14 11:20:19 -07:00
Sameh Khamis 18f58e278b Merge pull request #950 from PoBruno/fix/cctv-hls-insecure-context
fix(cctv): start live HLS on plain-HTTP LAN pages
2026-10-14 11:20:01 -07:00
Rudy Celekli f67888be00 docs: address review scope and feature placement for #1032 2026-10-14 14:17:56 -04:00
Rudy Celekli ba58a5ec50 fix(street-level): deduplicate overlapping dateline tile halves 2026-10-14 14:17:56 -04:00
Rudy Celekli aacb409fbf fix(tools): limit cancellation guard to pre-execution 2026-10-14 14:17:55 -04:00
Rudy Celekli fffbe67b66 fix(tools): reject cancellation after async interception 2026-10-14 14:17:54 -04:00
Rudy Celekli 0796efe603 docs: address review scope and feature placement for #1031 2026-10-14 14:17:54 -04:00
Rudy Celekli 691be39c1b fix(tools): stop cancelled calls before execution and discard late results 2026-10-14 14:17:54 -04:00
Rudy Celekli 69815a92be docs: address review scope and feature placement for #1030 2026-10-14 14:17:52 -04:00
Rudy Celekli a140c52f84 fix(directions): report truncation only when a maneuver was actually omitted 2026-10-14 14:17:52 -04:00
Rudy Celekli 7126555acb fix: address review feedback for PR #1027 2026-10-14 14:17:48 -04:00