Skip to content

Fix iOS crash and improve callouts based on today's testing - #1292

Merged
davecraig merged 2 commits into
Scottish-Tech-Army:mainfrom
davecraig:main
Nov 13, 2026
Merged

davecraig merged 2 commits into
Scottish-Tech-Army:mainfrom
davecraig:main

Conversation

@davecraig

Copy link
Copy Markdown
Contributor

No description provided.

davecraig and others added 2 commits November 13, 2026 15:38
updateGeometry, createBeacon/destroyBeacon, toggleBeaconMute and
onAllBeaconsCleared touched the AVAudioEngine node graph (attach/
connect/disconnect/detach, node position, listenerAngularOrientation)
from whatever thread the caller happened to be on — GeoEngine's
location thread, RoutePlayer, BeaconPreviewController, UI code, etc.
Only the callout pipeline was actually pinned to audioQueue, the
serial queue that exists specifically to prevent this. The resulting
concurrent graph mutation corrupted the render thread's view of the
graph, crashing AURemoteIO::IOThread in the mixer.

Fix: every graph-touching entry point now dispatches its work onto
audioQueue itself instead of trusting the caller to already be there.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ng clear

Two problems from the 2026-11-13 walk recorded on a Pixel and an iPhone,
added here as pixel.gpx and iphone.gpx.

The path and steps down from Milngavie Road to Hillfoot station stop
25m short of the station node, with nothing mapped onwards to the
platforms, so the junction said "Path to dead end via steps goes left".
A way that dead-ends now takes the name of a railway station within
40m of its end. Other destinations are still only looked for within
20m, and a path that carries on past a station isn't named after it.

Off the train at Milngavie the rail lock let go 20s into the walk and
the walk was seen 13s later, 40m from the line, but the 60s train window
kept everything quiet for another 50s, up Station Road. Only trams were
released early. A passenger who is walking, off the lock and more than
30m from every line has left the station, so the window now ends there
too. In the full replay this also brings forward the first walking
callouts after ToTown, train-1, train-2 and ToMilngavie.

isARailwayStation moves to top level so WayNaming can use it. The
platform test gets a railway beside it, as a real platform has. Four
pixel.gpx clips join testJunctionClips, and clip output now numbers the
Stationary/Train markers by GPX point as well as the callouts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B1S5ms9deCsLGKfw3y96qf
@davecraig
davecraig merged commit df5958f into Scottish-Tech-Army:main Nov 13, 2026
5 checks passed

This branch was previously deployed

1 inactive deployment
development — 6f35473b Deployed Nov 13, 2026 by davecraig via Run unit tests #1663
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant