Commit Graph
2776 Commits
Author SHA1 Message Date
quanticsoul4772 562a2ea544 Merge branch 'main' into upstream/route-outage-unavailable 2026-11-03 06:19:14 -08:00
German Khokhlov f3adccd01a Merge pull request #1456 from quanticsoul4772/upstream/terrain-partial-heights
fix(terrain): keep known heights when a terrain request fails
2026-11-03 16:03:07 +04:00
German Khokhlov c664f8eacb Merge branch 'main' into upstream/terrain-partial-heights 2026-11-03 15:28:20 +04:00
German Khokhlov 39c648094b Merge pull request #1488 from bilawalsidhu/german/hal-623-hud-summary-locale
fix(hud): AI summary in the UI language, canonical feed state, partial aggregation
2026-11-03 15:22:40 +04:00
German Khokhlov be53c338c8 Merge branch 'main' into upstream/terrain-partial-heights 2026-11-03 14:59:12 +04:00
German Khokhlov d413362467 Merge branch 'main' into german/hal-623-hud-summary-locale 2026-11-03 14:55:40 +04:00
German Khokhlov b80c54b7f1 Merge pull request #1474 from bilawalsidhu/fix/hal-722-radio-next-no-autoplay
Keep Radio Next and Previous from starting playback before Play (HAL-722)
2026-11-03 14:55:14 +04:00
German Khokhlov ac5164b14b Merge remote-tracking branch 'origin/main' into german/hal-623-hud-summary-locale 2026-11-03 14:45:45 +04:00
German Khokhlov 03c168d7c9 refactor(hud): share the warning line and trim the summary helpers
One provenanceLine() builds STATE | text | LAYERS for the HUD and
get_hud_caption. hasWord is one lookaround regex, capAtWord one grapheme
pass. Feed-state helpers are imported from layerSnapshot.js directly, and the
kept-whole sanitizer cases are one table.
2026-11-03 14:45:32 +04:00
German Khokhlov ab8691383b docs(hud): describe the character-only summary cap and trim comments 2026-11-03 14:34:32 +04:00
German Khokhlov 238a3d0634 Merge remote-tracking branch 'origin/main' into fix/hal-722-radio-next-no-autoplay 2026-11-03 14:33:12 +04:00
German Khokhlov 81ffa5b663 Suspend the tuner noise context once a pending resume settles
A dial click shorter than the device start-up let suspend() run on a still-suspended context, so the later resume() left it running with no nodes. Cover paused, connecting and voice-fallback releases in radioNextState tests.
2026-11-03 14:32:55 +04:00
German Khokhlov 00cce1e672 Merge pull request #1515 from bilawalsidhu/codex/docs-codespaces-limitations
docs: clarify Codespaces feature restrictions
2026-11-03 14:28:44 +04:00
German Khokhlov 33381c5981 Merge remote-tracking branch 'origin/main' into german/hal-623-hud-summary-locale
# Conflicts:
#	src/voice/gevActions.test.mjs
2026-11-03 14:28:10 +04:00
German Khokhlov 57da1090d0 docs: shorten Codespaces restrictions 2026-11-03 12:09:46 +04:00
German Khokhlov c6de459436 docs: clarify Codespaces feature restrictions 2026-11-03 12:06:01 +04:00
Sameh Khamis 0e27d69fcc Merge pull request #1514 from bilawalsidhu/sameh/hud-honest-comment
Say which HUD readouts are real camera values and which are styling
2026-11-02 14:35:43 -08:00
Sameh Khamis 317de931d3 Say which HUD readouts are real camera values and which are styling 2026-11-02 14:16:39 -08:00
Sameh Khamis b847ba5508 Merge pull request #842 from bilawalsidhu/feat/voice-outlines
feat(outlines): voice outlines without Overpass - bundled places, guarded Nominatim and shared OpenFreeMap tiles
2026-11-02 14:12:27 -08:00
Sameh Khamis b9f3dd649e merge feat/voice-outlines 3ac3499e into the review fixes 2026-11-02 13:14:02 -08:00
manjunath 3ac3499e4a merge main 43a67f9 into feat/voice-outlines 2026-11-03 00:26:40 +05:30
quanticsoul4772 fa2e1a9ec7 Merge branch 'main' into upstream/route-outage-unavailable 2026-11-02 09:52:07 -08:00
Said Turksever 43a67f9ae2 Merge pull request #1469 from bilawalsidhu/feat/utilities-panel
Gather Directions, Draw and Import in a Utilities panel, with a Draw shape list
2026-11-02 17:41:44 +00:00
quanticsoul4772 55d5896cb3 Merge branch 'main' into upstream/route-outage-unavailable 2026-11-02 09:25:34 -08:00
quanticsoul4772andClaude Opus 5.5 1bff1961b4 fix(routes): keep the 12 s budget from arrival and name the outage to voice
Starting the upstream timeout after the outbound queue let a request run
up to about 19 s, past the Directions layer's 15 s; the budget again runs
from arrival, queue wait included, and a budget spent before the request
leaves the queue answers 429 "routing busy" rather than an outage.

plan_route threw "Routing HTTP 502" for an outage, and voice passes only
the message on; it now throws "Routing service unavailable (HTTP 502)".

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 09:21:08 -08:00
Sameh Khamis 64c9f4cfa5 let building words pass only on single-structure results
A building word ending the ask ('… Chapel', '… Library', '… Hall') now
passes the last-word rule only when the result is one a building ask
would accept, so a campus, zoo or district whose name merely starts the
ask (Duke University, Old Town) no longer answers it.
2026-11-02 09:07:31 -08:00
Sameh Khamis c059e12a11 merge main 17daf897 into feat/voice-outlines 2026-11-02 09:06:21 -08:00
Sameh Khamis 0712db9891 address the final review of the voice outline fixes
- A building word ("Burj Khalifa Tower", "Sagrada Familia Church") passes
  the last-word rule on a building-like result; enclosures stay out.
- The anchor chooses only among the best-named outlines, so a worse name
  never wins by containment alone.
- An ask without a quadrant takes only the quadrant of the matching street
  nearest the point; a leading quadrant ("SE Main St") may go unsaid too.
- On an unbuffered tile edge a fragment shows as an edge along the
  boundary, so a whole building touching it at a corner is not cut.
- Drop two orphaned comments and correct the place-name key wording.
2026-11-02 09:03:36 -08:00
Said Turksever f38961ef1e Merge main into the Utilities panel 2026-11-02 17:01:52 +00:00
Said Turksever 672a145254 Keep Contact folded until both Cockpit left panels close, and keep focus in a renamed row
Opening Utilities while Data Layers is open no longer forgets that Contact
was folded for the first, and closing one of them leaves Contact folded
while the other is still open. Enter and Esc in a drawn shape's name keep
focus in the field instead of dropping it to the page. The draw tool's
destroy test now checks it stops following the board, and the Draw gate's
amber-count comment sits on its function again.
2026-11-02 17:01:31 +00:00
Bilawal Sidhu 17daf897c3 Merge pull request #1458 from anobjectn/fix/node-24.22.1-security-release
fix(deps): pin Node 24.22.1 for the October 21, 2026 security release
2026-11-02 10:55:02 -06:00
quanticsoul4772andClaude Opus 5.5 536f371dde docs(changelog): credit #1509 in the fragment
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 08:52:35 -08:00
Sameh Khamis a61d0f4c2a tighten the remaining voice outline review items
- One place-name key for server and tiles, so "St. Paul" and "Saint Paul"
  agree in Nominatim name checks.
- Tile street names: a lone letter is a direction only beside another name
  word ("E Street" is not "East Street"), and a trailing quadrant ("E St NW")
  may go unsaid in the ask.
- A building cut at the tile edge that is nearer the point than any whole
  one leaves the point instead of a farther neighbour standing in; an edge
  without a tile buffer counts as a cut, so a cut area never answers grounds.
- A batch building install re-judges only results that installed; a late
  timeout during caption conversion keeps the pending point drawn; a failed
  plain recaption keeps the old mark addressable.
- An interrupted Nominatim dispatch is reclaimed by the next lock owner ten
  minutes after the start its marker names; node:sqlite loads on first use
  without its experimental warning.
- PHOTON_URL accepts only https, which the page's connect-src allows.
- Shared OpenFreeMap tiles decode each layer when a consumer first selects
  it; outline selection reuses the shared ring area and simplification, and
  ground probes the shared ring centroid; the grounds word list lives once.
2026-11-02 08:50:05 -08:00
Said Turksever 345d5db593 Point the Draw and layer panel gates at Utilities and at what is drawn
qa-draw-tool drives the rows, waits on a mark's state instead of fixed
sleeps, checks that fly-to centres the line, and compares two screenshots to
show a hidden Line's pixels go and come back. Its clicks and pixel clip stay
clear of the Utilities panel beside the left rail. qa-layer-panel checks
that Directions returns to the Utilities list after a reassembly.
2026-11-02 16:43:49 +00:00
Said Turksever e35483d37d Give Utilities the room Data Layers gets in Cockpit
Utilities stays in Cockpit for Directions, but only Data Layers folded the
Cockpit context rail away when opened, set its top below the open panel and
took Cyber's Cockpit size. Utilities now does all three, and Contact
expanding closes it as it closes Data Layers.
2026-11-02 16:43:49 +00:00
Said Turksever 46b23ccc06 Let voice open the Utilities panel
Draw and Import used to be reachable by voice through DISPLAY. set_panel_open
now takes 'utilities-panel', and "utilities", "draw", "drawing" and "import"
reach it. This adds one value to the Realtime tool schema, so the pinned
payload digest, enum list and serialized length are re-derived with a note.

The show_data_layers_menu test now finds a row only inside the list that
really holds it, so dropping #utilities-toggles from the lookup fails it.
2026-11-02 16:43:49 +00:00
Said Turksever 38eb98b8f8 Take a hidden shape off the globe whole, and keep every drawn shape
Answers the review of bdbbc3d7 and the IC8 pass after it.

A shape hidden from Draw's list was only set to alpha 0, so the line's
flowing stroke, which keeps its own colour, stayed painted. Now:
- the world renderer's sync() sets every entity of a hidden mark to
  show = false, and FlowMaterialProperty follows the mark's alpha;
- the screen renderer does not project a hidden callout, so it is not drawn
  and cannot push a visible label aside;
- hiding acts at once, even before a mark's first frame, and with every
  mark hidden the annotations render hold is released after one last frame;
- fly_route skips a hidden route.

Hand-drawn shapes are never merged as duplicates: every one is drawn on
purpose and unnamed until its row names it, so a second pin dropped near
the first was dropped, or replaced the first when its colour differed. A
restyle the renderer cannot draw now also syncs the renderer.

Tests cover each: renderer show/hide and flow alpha, the screen skip, the
render hold and its last frame, a show with no fade-in, hidden routes, two
nearby pins, and the restyle rollback.
2026-11-02 16:43:39 +00:00
Said Turksever 4ebb287d36 Merge main into the Utilities panel, rebuilt on the Vue panel rail
main moved the panels to Vue views and a one-open-panel rail, and removed
the two templates this branch edited. This merge carries the branch onto
that architecture; it adds no behaviour of its own beyond the port.

- The Utilities panel is a RailPanel in LayerPanelsView with its own rail
  item (handyman). LayerPanel renders the Directions rows into its list with
  LayerRows, and falls back to Data Layers without it.
- Draw leaves DisplayPanel for DrawControls, DrawMarkList and DrawSwatches,
  which render what the draw tool publishes to the display store and call
  its actions, as GeoImport does. drawMarks.js words the rows; the DOM-built
  drawMarkList.js is gone. A row's fly-to is an immediate navigation like
  Import's ('drawing' gets its Cockpit refusal), the name field keeps a
  draft through v-field-value, and the colours are one radio group with a
  single tab stop.
- UiSegmented draws an option's icon, named by its label, for the shape
  buttons.
- The catalogs take main's languages with this branch's strings, Arabic
  included, and the tests follow the views to their new homes.
2026-11-02 16:43:29 +00:00
quanticsoul4772andClaude Opus 5.5 f8795ff426 fix(routes): report an upstream routing outage as unavailable
When the OSRM routing service failed (a 5xx, a 403 block, a 404), answered
with a body that was not JSON, or did not answer at all (timeout, network
error), /api/route returned HTTP 200 with 'no route found' or 'route proxy
error'. plan_route turned that into invalid_arguments ("No walk route from
...: no route found"), blaming the caller for an outage, and the directions
layer reported "No route found between A and B".

The proxy now answers all of these with 502 {ok:false, error:'routing
service unavailable'}: a rejected upstream fetch, any failure status but
400, a non-JSON content type, and a body read that fails or does not parse.
An exception in the proxy's own code after that point is still a 200 'route
proxy error'. createRouteService throws for a 5xx before reading the body's
ok:false, so plan_route reports unavailable, and the directions source
treats any 5xx as "Routing unavailable (HTTP n)", also when the failure
page in front of the proxy is not JSON. OSRM's own refusal (a 400 such as
NoRoute, or a 200 without a route) still reads "no route found".

The 12 s upstream timeout now starts when the request leaves rather than
before it waits for an outbound slot, so a wait in the proxy's own queue
(up to about 8 s at the 1 s spacing) is not reported as an outage.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 08:42:57 -08:00
Sameh Khamis a38a065c5c keep bent streets, enclosed landmarks and same-name outlines honest
A street ribbon that holds neither its ring mean nor the anchor is centred
on the street's nearest point when the street runs within 100 m.

Nominatim outline selection ranks an exact name, then one holding every
asked word, then an overlap, and refuses an overlap whose name lacks the
ask's last word unless that word is in the result's address or type, so
"Central Park Zoo" is no longer Central Park. The server caches every
accepted outline and answers each ask with the one holding its resolved
anchor (sent as alat/alon), read across the antimeridian.

A duplicate mark that fails to clean up no longer tears down the new
outline it duplicates.
2026-11-02 08:37:45 -08:00
Sameh Khamis d411802d8c Merge branch 'main' into fix/node-24.22.1-security-release 2026-11-02 08:05:41 -08:00
Sameh Khamis 4c94f202d7 Merge pull request #210 from gaurav7902/main
docs: fix stale reference, document Shinjuku pilot pack, clarify test prerequisites
2026-11-02 08:05:35 -08:00
Sameh Khamis 2be9e00522 Merge branch 'main' of github.com:bilawalsidhu/gods-eye-view 2026-11-02 07:55:02 -08:00
Sameh Khamis a61f6fb1bd Merge pull request #1457 from ZloyS/denis/hal-728-dock-icon-only-wings
fix(dock): show only icons on the narrow dock wings so labels stop covering the voice control
2026-11-02 07:54:57 -08:00
Sameh Khamis a50a61a0c7 Merge branch 'main' into denis/hal-728-dock-icon-only-wings 2026-11-02 07:45:21 -08:00
Sameh Khamis bab5157989 Merge pull request #1427 from Sunil56224972/security/cross-site-gate-overpass-military
fix(security): add cross-site gate to military-installations proxy
2026-11-02 07:45:16 -08:00
Sameh Khamis d646fdbe60 Pin Node 24.22.2, the current 24 LTS patch, keeping 24.22.1 as the security floor 2026-11-02 07:39:02 -08:00
Sameh Khamis 5b76a8a40b Merge branch 'main' into security/cross-site-gate-overpass-military 2026-11-02 07:36:10 -08:00
Sameh Khamis cb6a0e9008 Merge branch 'main' into fix/node-24.22.1-security-release 2026-11-02 07:35:05 -08:00
Sameh Khamis 0088df95ca Merge pull request #980 from johnleshan/docs/add-codespaces-deployment
docs(readme): add GitHub Codespaces setup path
2026-11-02 07:35:00 -08:00