Fixed up various issues noticed in field testing + base string improvements - #1044
Merged
Conversation
Migrates SA project issues from Jira Cloud into GitHub Issues via ACLI and gh: full fidelity (description, comments, labels, status, attachment filenames), detects Jira issues that just reference an existing GitHub issue and appends comments there instead of creating a duplicate, and supports --exclude for issues containing information not fit for a public repo. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
OfflineGeocoder used properties["pavement"] as the callout's road name, falling back to the way's own name only when pavement was null. But an unnamed sidewalk/path with no adjacent named road caches pavement as the empty-string sentinel "" (WayNaming.addSidewalk), not null, so `?:` never kicked in and callouts like StreetDescriptionBetween got a blank first argument. Treat a null-or-empty pavement value as absent and fall back to Way.getName(), which resolves a generic label (e.g. "Path") for unnamed ways, matching the convention already used elsewhere (ManualCallouts). Also refactor the offlineReverseGeocode test into one @test per case, each building its own geocoder/grid via a shared helper, and add a mapMatch option to the helper so a test can reproduce being GPS map-matched onto an unnamed way - the only way OfflineGeocoder's buggy branch is reachable, since its own unmatched fallback search only ever considers named roads. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
StreetDescription.createDescription() bucketed houses by a house.side Boolean using the opposite mapping from what getStreetNumber() assumed when looking up Side.LEFT/Side.RIGHT, so a query point's computed side was matched against the other side's house numbers. This inversion was previously masked by a second, unrelated inversion in getStreetNumber() that got fixed in be20ab3 - fixing one exposed the other. Retype MvtFeature.side from Boolean? to Side? and drop the sideToBool() detour so the compiler enforces the LEFT/RIGHT bucketing instead of a positional Boolean array that has to be got right by convention. Adds regression tests against real Kersland Drive data and a GPX fixture reproducing the side-switching case. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
locationRecorder.storeLocation() was only called inside the same gate that decides whether to speak an auto-callout ((!isAudioEngineBusy() || streetPreview.running) && !autoCalloutDisabled && !menuActive). Since "My Location" itself speaks a callout, every GPS update arriving while that callout was playing got silently dropped from the recorded track - repeatedly pressing "My Location" while walking a street noticeably thinned out the recorded GPX points. Recording is a data-capture concern, not an audio one, so move it out from behind the callout gate - it now only depends on recordTravel. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
StreetDescription.createDescription() walks a street's whole way graph plus every nearby house-number/POI tree, which isn't cheap. It was rebuilt from scratch on every getAddressFromLngLat() call, so pressing "My Location" repeatedly while stationary or map-matched to the same street recomputed identical work each time. Add GridState.generation, bumped whenever featureTrees/ gridStreetNumberTreeMap are rebuilt (or torn down), and have OfflineGeocoder cache the last StreetDescription it built, reusing it when the street name, grid generation, and the specific Way passed in (verified against the cached description's own way graph, so two disconnected same-named streets in one grid can't be confused) all still match. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
davecraig
had a problem deploying
to
development
August 27, 2026 15:23 — with
GitHub Actions
Failure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.