Sameh Khamis
fefd5cdcf1
fix(layers): make Clear All clear the saved and shared layer selection ( #1417 )
...
* fix(layers): make Clear All clear the saved and shared layer selection
After Clear All every layer control was off, but the share URL could keep
listing layers (for example l=e.f) and a reload switched them back on.
The URL and local preferences are written from the committed layer
state, which only explicit visibility changes update. Clear All issued an
explicit OFF only for layers it found on at the start of the batch and
whose turn was not superseded. A layer already off for a passive reason
(isolated by Contacts or another context mode, or released by Contacts'
own teardown while the batch ran) never received one, so it stayed in the
committed state. Clear All also discards the context snapshot that would
have restored those layers, leaving the screen and the URL out of step.
Clear All now publishes the set of layers still on once its batch
settles, and the layer-state coordinator commits that selection: every
saved layer not in it is dropped and its passive restore is cancelled,
while a layer a newer explicit request turned back on is kept. A context
restore interrupted by Clear All no longer brings its snapshot back after
Contacts settles.
* docs: changelog for #1417
2026-10-26 14:07:58 -07:00
Sameh Khamis
b7ece1d4d1
fix(share): restore a share link opened in an already-open tab ( #1416 )
...
* fix(share): restore a share link opened by hash navigation
Opening a different share link in an already-open tab (pasting it into
the address bar, following a link, or Back/Forward) changed the URL but
left the camera, visual style, map, panels and layers on the old view
until a reload.
The share manager now listens for hashchange and popstate. A new hash
that parses as a share and differs from the last hash the app read or
wrote runs the start-up restore pipeline: lane authority is reserved, URL
writes are held (including a pending debounced write of the old view),
the camera restore takes a new navigation generation, and the layer
coordinator replaces any in-flight layer restore with the new share's
layers through the passive share origin. A newer navigation supersedes an
older restore end to end; only the newest one releases URL writes. The
app's own replaceState writes never restore. Listeners are removed on
destroy.
Returning to the Normal style and resetting an already-active preset now
also apply when a share is restored after start-up, so the result matches
a fresh load of the same link.
* docs: changelog for #1416
2026-10-26 13:56:19 -07:00
Sameh Khamis
301bc2e0b3
feat(voice): add preview and settings panel ( #1299 )
...
Add the shared Voice Preview and Settings panel with browser-local preferences, inactivity controls and visible cost warnings.
Contribution by @manjunath22466.
2026-10-26 09:03:04 -07:00
Sameh Khamis
2b2dad5bbe
Harden Vite fs.deny for local logs and cache ( #948 )
...
Deny local logs, cache, and repository build output from Vite development file serving.
Contribution by @blowing-a-raspberry.
2026-10-25 19:00:20 -07:00
Sameh Khamis
76311e36d4
feat(docker): add a HEALTHCHECK to the image ( #1394 )
...
Report Docker application health using a bounded loopback HTTP probe.
Contribution by @14traits.
2026-10-25 17:46:52 -07:00
Sameh Khamis
2006c035d9
chore: remove four modules nothing in the app uses ( #1403 )
...
* chore: remove four modules nothing in the app uses
src/app/sourceSlot.js re-exported src/sources/sourceSlot.js, which every
caller imports directly. src/data/flowTiles.js and src/data/issPass.js were
reached only by their own tests. src/data/localGeojson.js wrapped
localGeojsonCore.js with the app's services, which the catalog already
passes itself. The local GeoJSON layer tests now build layers the way the
catalog does, so they keep covering localGeojsonCore.js; only the test of
the wrapper's own default host goes. Boundary lists, format scope and docs
drop the removed paths.
* docs: changelog for #1403
2026-10-25 17:21:41 -07:00
Sameh Khamis
5103ff672c
fix(gbfs): exclude stations with invalid coordinates ( #1232 )
...
Reject invalid bike-share station coordinates while preserving genuine zero coordinates and numeric aliases.
Contribution by @Bortlesboat.
2026-10-25 16:47:51 -07:00
Sameh Khamis
5ae22ac333
fix(awareness): wrap north-bound bearings ( #1390 )
...
Wrap awareness bearing and course labels at north and register the formatting helper in package boundaries.
Contribution by @rudycelekli.
2026-10-25 16:21:50 -07:00
Sameh Khamis
8886e063e6
fix(local-adsb): show a 359.7° track as TRK 0°, not TRK 360° ( #1396 )
...
Wrap rounded local ADS-B track labels at north.
Contribution by @rudycelekli.
2026-10-25 14:14:28 -07:00
Sameh Khamis
405c7f0d20
fix(cockpit): show wind from 359.6° as 0°, not 360° ( #1389 )
...
Wrap rounded cockpit wind direction to zero degrees at north.
Contribution by @rudycelekli.
2026-10-25 12:30:37 -07:00
Sameh Khamis
db74129eb0
fix(draw): show a 999.6 m line as 1.0 km, not 1000 m ( #1388 )
...
Select drawn-line distance units after rounding metres.
Contribution by @rudycelekli.
2026-10-25 12:26:14 -07:00
Sameh Khamis
5b6c52437e
fix(awareness): show a 999.6 m contact as 1.0 km, not 1000 m ( #1387 )
...
Choose awareness distance units after rounding so nearby contacts never display as 1000 metres.
Contribution by @rudycelekli.
2026-10-25 09:07:36 -07:00
Sameh Khamis
81af549ad7
fix(directions): show a 996 m leg as 1.0 km, not 1000 m ( #1386 )
...
Choose route distance units after rounding so near-kilometre legs display in kilometres.
Contribution by @rudycelekli.
2026-10-25 09:01:26 -07:00
Sameh Khamis
3f9b44ecc8
fix(directions): show a 59.6-second leg as 1 min, not 60 s ( #1385 )
...
Choose route duration units after rounding so near-minute legs display as one minute.
Contribution by @rudycelekli.
2026-10-25 08:55:17 -07:00
Sameh Khamis
f6e7f63a63
fix(voice): keep FIRMS and ALPR entity labels English in voice data ( #1207 )
...
Keep FIRMS and ALPR entity data labels in English and localize their presentation.
Contribution by @daikaginza.
2026-10-25 08:21:25 -07:00
Sameh Khamis
abd81155f9
Merge pull request #1379 from bilawalsidhu/perf/aircraft-label-candidates
...
Reduce repeated work in aircraft detection candidates
2026-10-24 23:48:30 -07:00
Sameh Khamis
8dec9eaa10
perf(terrain): evict from the front of the point cache instead of sorting it ( #1326 )
...
Preserve oldest-fetch terrain cache eviction without sorting the full cache on each overflow.
Contribution by @daikaginza.
2026-10-24 23:27:37 -07:00
Sameh Khamis
86d52a0f7a
fix(cyclones): label NHC classification codes by their published meanings ( #1349 )
...
Correct NHC cyclone classification labels and document their published meanings.
Contribution by @rudycelekli.
2026-10-24 23:21:04 -07:00
Sameh Khamis
6b458c897d
Merge pull request #1378 from bilawalsidhu/fix/touch-zoom-aircraft-performance
...
Improve touch zoom and aircraft update performance
2026-10-24 22:55:14 -07:00
Sameh Khamis
a888e0fa22
Merge pull request #1353 from rudycelekli/fix/transit-ninety-second-age
...
Correct the transit report-age label and document its rounding rule.
2026-10-24 22:46:45 -07:00
Sameh Khamis
f2ee3c984f
Merge pull request #1352 from rudycelekli/fix/cockpit-destination-heading
...
Reviewed display correction with its runtime documentation update.
2026-10-24 22:33:05 -07:00
Sameh Khamis
5d23a874b1
Merge pull request #1354 from rudycelekli/fix/firms-frp-ten-megawatts
...
Reviewed display correction with its runtime documentation update.
2026-10-24 22:27:34 -07:00
Sameh Khamis
7a8ba29186
Merge pull request #1351 from rudycelekli/fix/ais-static-keeps-motion
...
fix(ais): keep a tracked vessel's motion when static data arrives
2026-10-24 21:45:40 -07:00
Sameh Khamis
2fc9ca8516
Merge pull request #1350 from rudycelekli/fix/cyclone-movement-knots
...
fix(cyclones): convert NHC movement speed from mph to knots
2026-10-24 21:39:26 -07:00
Sameh Khamis
19ed82af07
Merge branch 'main' into fix/cyclone-movement-knots
2026-10-24 21:33:20 -07:00
Sameh Khamis
88803f16e8
Merge pull request #1303 from quanticsoul4772/upstream/wind-stale
...
fix(tools): flag stale wind forecasts in get_wind
2026-10-24 21:31:01 -07:00
Sameh Khamis
4ba0a1b57f
Merge branch 'main' into upstream/wind-stale
2026-10-24 21:26:18 -07:00
Sameh Khamis
2a48e1d186
Merge pull request #1244 from KnottyDyes/fix/terrain-test-cache-isolation
...
test(terrain): give every terrain-heights proxy in the bounds tests its own cache
2026-10-24 21:26:11 -07:00
Sameh Khamis
aa33bb5ec3
Merge branch 'main' into fix/terrain-test-cache-isolation
2026-10-24 21:20:50 -07:00
Sameh Khamis
8d454bf7f1
fix: improve mobile contact selection and context drawers ( #1338 )
...
Improve coarse-pointer contact selection, reveal tracked aircraft through Contacts, support downward drawer dismissal, and enlarge the mobile logo.
2026-10-23 15:05:23 -07:00
Sameh Khamis
8cdd184a90
feat(street-level): provider exports and a Mapillary Graph endpoint for hosts ( #1324 )
...
* feat(street-level): export the KartaView and Panoramax providers
A host that composes Street Level with its own provider list can already
import the Mapillary and Google Street View providers; KartaView and Panoramax
were reachable only through the default list, which needs a Mapillary source.
Exporting them lets a host offer the keyless providers without Mapillary.
* chore: changelog entry for the Street Level provider exports
* feat(street-level): send Mapillary Graph lookups to a source endpoint
A Mapillary source can take a graphEndpoint, a Graph API base that adds
the token itself. Its sequence lookups go there through the source's
transport, and the photo viewer uses MapillaryJS's stock GraphDataProvider
at that endpoint, so a host that proxies Mapillary needs no client token in
the page. Without it, behaviour is unchanged: direct Graph API calls with
the client token.
2026-10-23 07:47:57 -07:00
Sameh Khamis
d48b9c4df9
Merge pull request #1325 from bilawalsidhu/feat/phone-drawer
...
feat(ui): phone layout with a bottom tab bar and one panel sheet at a time
2026-10-22 22:26:49 -07:00
Sameh Khamis
224745bd0a
Merge pull request #1321 from bilawalsidhu/chore/dead-code-cleanup
...
chore: remove dead code across the repository
2026-10-22 20:54:09 -07:00
Sameh Khamis
7be5937fc3
Merge pull request #1317 from bilawalsidhu/fix/provider-response-hardening
...
Harden provider response handling and camera source validation
2026-10-21 16:18:50 -07:00
Sameh Khamis
713285b554
Merge pull request #1205 from manjunath22466/fix/cctv-tool-routing
...
fix(voice): report actual cctv toggle results
2026-10-20 10:15:33 -07:00
Sameh Khamis
23feb16b0f
Merge pull request #1235 from manjunath22466/fix/location-resolution
...
fix(analyst): disambiguate region names and retain boundary provenance
2026-10-20 10:05:27 -07:00
Sameh Khamis
93c1f6cd45
Merge pull request #1220 from manjunath22466/codex/openai-typed-send-rejection
...
fix replies after rejected openai typed commands
2026-10-19 14:06:19 -07:00
Sameh Khamis
2f171c7d79
Merge pull request #872 from manjunath22466/feat/gemini-voice
...
add Gemini Live as an alternative voice provider
2026-10-19 13:10:47 -07:00
Sameh Khamis
dd079db9b3
Merge pull request #1101 from VG31OP/fix/tle-catalog-matching
...
fix(satellites): reject TLE pairs with mismatched catalog numbers (#906 , #936 )
2026-10-17 14:00:30 -07:00
Sameh Khamis
84da1b9606
Merge pull request #287 from onionviolet/codex/shared-geodesy
...
refactor(geo): share great-circle distance utility
2026-10-17 13:44:03 -07:00
Sameh Khamis
5ce56bddd4
Merge pull request #767 from hneogy/fix/alpha5-norad-id
...
fix(satellites): decode Alpha-5 catalog numbers in the layer and the satellite tools
2026-10-17 13:31:26 -07:00
Sameh Khamis
200a83465b
Merge pull request #839 from dajiaohuang/docs/fix-adsbdb-cache-ttl
...
docs: correct ADSBDB cache TTL note
2026-10-17 12:07:42 -07:00
Sameh Khamis
710f2e9710
Merge pull request #1196 from HyperionBurn/docs/qa-gate-npm-alias-list
...
docs: list every npm alias for the qa gates
2026-10-17 12:02:40 -07:00
Sameh Khamis
1df2a272cf
Merge pull request #1111 from Rohilalala/fix/map-fallback-retry
...
fix(maps): retry the real imagery and terrain provider after a fallback
2026-10-16 17:16:52 -07:00
Sameh Khamis
cc84ab11b1
Merge pull request #1071 from cj-vana/feature/geo-uri-search
...
feat(search): resolve two-dimensional geo URIs offline
2026-10-16 17:10:53 -07:00
Sameh Khamis
79176667b0
Merge pull request #973 from Sunil56224972/fix/tomtom-cross-site-gate
...
fix(traffic): refuse cross-site requests before they spend the TomTom budget
2026-10-16 17:01:31 -07:00
Sameh Khamis
e15b169e3d
Merge pull request #1135 from djabhi31/fix/director-scene-results-971
...
fix(director): keep scene results and save status accurate (#971 )
2026-10-16 16:10:16 -07:00
Sameh Khamis
9898058fa5
Merge pull request #1142 from ariannamethod/codex/fix-antimeridian-polygon-containment
...
fix(perimeters): handle antimeridian queries and incident card anchors
2026-10-16 16:04:17 -07:00
Sameh Khamis
2189e9c512
Merge pull request #1136 from djabhi31/test/rocket-launches-edge-cases
...
test(launches): add finiteCoordinate and stage normalization edge-case coverage (#938 )
2026-10-16 15:58:26 -07:00
Sameh Khamis
5a79a4d246
Merge pull request #1173 from Rohilalala/fix/geo-distance-dateline
...
fix(geo): wrap longitude differences across the antimeridian
2026-10-16 15:46:27 -07:00
Sameh Khamis
bd4f5a6af9
Merge pull request #1172 from omerbberk/fix/cctv-missing-numbers
...
fix(cctv): keep missing numbers unknown instead of reading them as zero
2026-10-16 15:40:39 -07:00
Sameh Khamis
ec7823daad
Merge pull request #1171 from Rohilalala/fix/director-goto-shot
...
fix(director): land on the requested shot
2026-10-16 14:59:40 -07:00
Sameh Khamis
e5ee6696b1
Merge pull request #1097 from Rohilalala/fix/overpass-failure-phrases-in-data
...
fix(overpass): read failure phrases from the remark, not element tags
2026-10-16 14:48:24 -07:00
Sameh Khamis
bb00a13b03
Merge pull request #1096 from Rohilalala/fix/military-sticky-track
...
fix(military): hold the last track and speed when a poll omits them
2026-10-16 14:43:59 -07:00
Sameh Khamis
e2274bbf0c
Merge pull request #634 from cliph/feat/transit-ontario
...
Add nine Ontario transit feeds, with per-feed mode and route naming
2026-10-15 19:19:49 -07:00
Sameh Khamis
978b8e9c88
Merge pull request #452 from ch-bas/feat/cctv-model-spec-enrichment
...
feat(cctv): enrich identified cameras with datasheet FOV + specs
2026-10-15 19:14:04 -07:00
Sameh Khamis
ec844c2ca2
Merge pull request #359 from MiguelGFerreira/feat/brazil-gbfs-cities
...
feat: add seven Brazilian Bike Itaú cities to the GBFS bikeshare layer
2026-10-15 19:08:49 -07:00
Sameh Khamis
f91dfc4b8f
Merge pull request #636 from cliph/feat/webapp-icons
...
feat: ship a web app manifest and home-screen icons
2026-10-15 19:03:40 -07:00
Sameh Khamis
8202230683
Merge pull request #644 from ch-bas/feat/wsdot-camera-pack
...
feat(cctv): WSDOT highway camera source pack (Washington State)
2026-10-15 16:21:45 -07:00
Sameh Khamis
ffc6e0f84f
Merge pull request #595 from ulihhhh/feature/catalonia-cctv-cameras
...
feat(cctv): add the Open Catalonia camera pack
2026-10-15 16:16:42 -07:00
Sameh Khamis
584a95fbec
Merge pull request #607 from Reloded/feat/lithuania-cctv
...
feat(cctv): add Lithuania Eismoinfo road cameras
2026-10-15 16:10:15 -07:00
Sameh Khamis
28501ddee3
Merge pull request #645 from ch-bas/feat/king-county-camera-pack
...
feat(cctv): King County road camera source pack (Washington State)
2026-10-15 16:03:02 -07:00
Sameh Khamis
4deafbb589
Merge pull request #640 from cliph/feat/cctv-toronto
...
feat(cctv): add the City of Toronto RESCU camera pack
2026-10-15 15:55:44 -07:00
Sameh Khamis
79b9de07d8
Merge pull request #208 from SM-26/docker-support
...
feat: add a Docker install path
2026-10-15 14:10:36 -07:00
Sameh Khamis
a5a361f79e
Merge pull request #568 from rileygramlich/feat/aqhi
...
feat(air-quality): add the Air quality layer to the Weather group
2026-10-15 13:59:17 -07:00
Sameh Khamis
c6f92da962
Merge pull request #641 from cliph/feat/bikeshare-toronto-and-failure-fix
...
feat(bikeshare): add Bike Share Toronto, and fix the layer-wide failure it exposes
2026-10-15 13:47:08 -07:00
Sameh Khamis
1710c83463
Merge pull request #581 from Mikejr314159/fix/cap-remaining-upstream-reads
...
fix(providers): bound the remaining upstream body reads
2026-10-15 13:34:45 -07:00
Sameh Khamis
614b207c32
Merge pull request #937 from daikaginza/fix/overpass-cache-tracks-upstream
...
fix(overpass): do not serve cached answers from a different upstream (#932 )
2026-10-15 11:10:36 -07:00
Sameh Khamis
37dfb79e32
Merge pull request #1082 from jeffblakely/feat/bikeshare-detroit-mogo
...
feat(bikeshare): add Detroit, Pittsburgh, Aspen and Kona & Hilo
2026-10-15 10:59:50 -07:00
Sameh Khamis
f0a1b22dc8
Merge pull request #1047 from rudycelekli/contrib/gods-026-map-subscription-ownership-20261011-reviewed
...
fix(maps): stop delivering settled state to detached subscribers
2026-10-14 21:28:08 -07:00
Sameh Khamis
871523593f
Merge pull request #1046 from rudycelekli/contrib/gods-025-asset-stream-cancellation-20261011-reviewed
...
fix(director): reject cancellation during the final asset stream read
2026-10-14 21:11:42 -07:00
Sameh Khamis
84bfba8d39
Merge pull request #1044 from rudycelekli/contrib/gods-023-firms-coordinate-evidence-20261011-reviewed
...
fix(firms): reject missing and out-of-range detection coordinates
2026-10-14 19:43:39 -07:00
Sameh Khamis
7661cd349c
Merge pull request #1040 from rudycelekli/contrib/gods-019-terrain-warm-batch-lru-20261011-reviewed
...
fix(terrain): refresh cache recency when resolving warm batches
2026-10-14 19:02:26 -07:00
Sameh Khamis
fc798969ec
Merge pull request #1036 from rudycelekli/contrib/gods-015-imagery-box-missing-edge-20261011-reviewed
...
fix(recent-imagery): reject absent box edges instead of inventing zero degrees
2026-10-14 18:54:24 -07:00
Sameh Khamis
197e5ee855
Merge pull request #1032 from rudycelekli/contrib/gods-011-street-level-unique-tiles-20261011-reviewed
...
fix(street-level): deduplicate overlapping dateline tile halves
2026-10-14 18:43:48 -07:00
Sameh Khamis
0265ad4c19
Merge pull request #1030 from rudycelekli/contrib/gods-009-route-cap-truthfulness-20261011-reviewed
...
fix(directions): report truncation only when a maneuver was actually omitted
2026-10-14 17:03:41 -07:00
Sameh Khamis
81cf437ee5
Merge pull request #1027 from rudycelekli/contrib/gods-006-weather-missing-observations-20261011-reviewed
...
fix(weather): keep absent observations unknown instead of reporting clear skies
2026-10-14 16:14:00 -07:00
Sameh Khamis
58f4a71f22
Merge pull request #1026 from rudycelekli/contrib/gods-005-tool-schema-codepoints-20261011-reviewed
...
fix(tools): enforce string schema lengths by Unicode code point
2026-10-14 16:03:36 -07:00
Sameh Khamis
1d9d7c71d5
Merge pull request #1023 from rudycelekli/contrib/gods-002-director-dateline-seek-20261011-reviewed
...
fix(director): seek camera longitude across the shortest dateline arc
2026-10-14 15:48:41 -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
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
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
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
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
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
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
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
Sameh Khamis
591f299d11
Merge pull request #986 from bilawalsidhu/fix/healthy-empty-vessel-coverage
...
Handle healthy empty vessel coverage without an outage
2026-10-09 20:59:43 -07:00
Sameh Khamis
89e566aa9b
Merge pull request #985 from bilawalsidhu/fix/street-level-provider-sharing
...
Preserve custom Street Level provider switches in shared state
2026-10-09 20:03:02 -07:00
Sameh Khamis
7ed47a2b79
Merge branch 'main' into fix/street-level-provider-sharing
2026-10-09 19:56:27 -07:00
Sameh Khamis
90a1442c9c
Merge pull request #984 from bilawalsidhu/refactor/route-imagery-sources
...
Separate Directions and Recent Imagery acquisition sources
2026-10-09 19:56:17 -07:00
Sameh Khamis
7acf55e187
Merge branch 'main' into refactor/route-imagery-sources
2026-10-09 19:47:09 -07:00
Sameh Khamis
2fe70f63f8
Merge pull request #983 from bilawalsidhu/feat/optional-catalog-sources
...
Make catalog feeds optional and configurable at startup
2026-10-09 19:47:03 -07:00
Sameh Khamis
f289a1ce03
Merge branch 'main' into feat/optional-catalog-sources
2026-10-09 19:37:39 -07:00
Sameh Khamis
e626137a7a
Merge pull request #982 from bilawalsidhu/fix/optional-street-level-providers
...
Fix startup with optional Street Level providers
2026-10-09 19:37:14 -07:00
Sameh Khamis and SmokeDev
6be25595b1
Merge pull request #621 from devv-shayan/codex/chatgpt-realtime-oauth
...
feat(voice): add optional ChatGPT OAuth for Realtime voice
Builds on the credential handling from #653 .
Co-authored-by: SmokeDev <[email protected] >
2026-10-08 11:31:48 -07:00
Sameh Khamis
06b5ac7d12
Merge pull request #935 from daikaginza/fix/tile-origin-follows-tilejson
...
fix(tiles): derive the tile origin from the configured TileJSON (#933 )
2026-10-08 10:52:10 -07:00
Sameh Khamis
95fa816232
Merge pull request #958 from jibraaan/fix/mcp-shared-panel-key
...
fix(mcp): share one panel key across an install's stdio servers
2026-10-07 15:34:17 -07:00
Sameh Khamis
6423d60d0b
Merge pull request #934 from xiehuanyi/docs/mcp-default-port
...
docs(mcp): align client setup with the default app port
2026-10-07 15:21:56 -07:00
Sameh Khamis
208814a094
Merge pull request #837 from bilawalsidhu/feat/voice-core
...
feat(voice): voice core — honest layer reach, spoken summary with on-screen card, narration, point-and-ask
2026-10-07 14:35:27 -07:00