What's changed in 0.4.1733
- Reach snapshot for 2026-09-21
- Let the voice stop reading street names out loud
- Put country and city names in the reader's language
- Write down why labels stopped taking the icon correction
- Stop shrinking map labels to fix map icons
- Make the master switch cover the places it was meant to hide
- Write down the offline gate that went out without its documentation
- Do not scrape for places that cannot be reached
- Put a floor under the map for when there is no network
- Measure what a world overview would cost before designing around it
- Stop painting an empty map over tiles that were about to arrive
- Write down both ways a car client could take the map, and wait
- Name the car project, and the part of it worth building here
- Protect the one counter that sees every channel
- Say what reaches Google before the screenshots do
- Weblate is not blocked any more, it is just unapplied
- Write down the one Android Auto door nobody has opened
- Stop an update from quietly costing somebody their car screen
- Write down what giving back to OpenStreetMap would take
- Let a patch land on an archive an earlier patch already changed
- Hold the compaction claim down in CI
- Reclaim the dead space instead of downloading the region again
- Put the drive on the same footing Google Maps gives its own
- Keep a patched archive from drifting away from a fresh one
- Notice a bake that lands while the app is running
- Ask for the live update with the permission that grants it
- Promote the drive to an Android 16 live update
- Default region updates to off, and retract the frame-rate claim
- Fatter residential streets, and their names a step and a half sooner
- Compile against Android 36, keep targeting 35
- Guard location leaks before the push, not after
- Use a region chosen for a reason, not the one I happened to be reading
- Bring the spec book up to date with today's work
- Roadmap Android 16 live updates, gated on the compileSdk 36 upgrade
- One countdown length for everyone, frozen while you reach for it
- Park self-hosted map tiles as a big bet with a clear trigger
- Measure map frames properly, and fix the sources that overscale
- Measure the Microsoft building merge before building it
- Install the writing check as a pre-push hook, since running it by hand failed twice
- Keep the map credit clear of the speedometer, and show controls sooner
- Check US English too, since a commit message just slipped one through
- Publish patches from the bake, and four things from the drive
- Write down the delta machinery, the link cache rule and the icon scale
- Delta updates: the applier, the policy and the logging
- Prove the delta design against a real archive and a real phone
- Draw named parks again, and give every download one progress bar
- Check the writing rules instead of remembering them
- Draw the faster-route countdown over the card, not under it
- Document the auto-resolving faster-route offer
- Stream the AllThePlaces decode instead of parsing a country in one bite
- Say what the AllThePlaces step is doing, and auto-resolve the faster-route offer
- Bake the big regions on the big disk
- Deltas apply in place: append the tiles, flip the header last
- A week of edits leaves 98.7 percent of a state's tiles untouched
- Measure what a rebake changes, so the delta question has an answer
- Keep the exact name rule on the lot it was written for
- Let OpenStreetMap add businesses, not just correct their positions
- Let a continent-sized bake spill to disk instead of taking the runner down
- Show both nav bar buttons when both are wanted, and say why a tap did not link
- Stop reading every place on earth once per region
- Move pause onto the nav bar and pin the GPS message to the arrow
- US English in the comments added today
- Rebuild the basemap manifest from the release instead of folding fragments
- Tell a brand's fuel station apart from the store it sits beside
- Keep the nav buttons still when the mute control slides out
- cancelled() is a function, not a word
- The tap pauses, and mute slides out beside it
- Write the tap rule into the places chapter
- Move the same-business name rule into core, with tests
- Keep Google's session coordinate out of the review probes
- Open the place that was tapped, not the one nearest its own point
- Ask the archive whether it draws the map here, and put pause and mute on one button
- Move the map call out of MapScreen so debug builds compile again
- Pin planetiler bounds so a basemap bake cannot claim ground it has no tiles for (#593)
- Log what the stop card's detour check answered
- Say what a mid-drive stop costs, show where it is, and let the offer expire
- Write the repo in US English, and keep the spellings that are not ours
- Make SPEC the one technical document and fold five docs into it
- Hold the map still, hold the place sheet still, ship the new picker (#592)
- Keep the map-wide stop signs from painting over the route's own
- One pill for mute and pause, and say plainly that browsing skips Google
- No AI attribution, as a hard rule at the top of the guide
- Pause the drive, a leak check in CI, and two more book chapters
- Wider streets, earlier street names, anchor-aware Google ranking, and the book
- Say what each places source costs, and write up bugs by mechanism
- Shorten the map credit to "© OpenStreetMap"
- Stop a tap on a shop opening the transit stop beside it
- Hold the map still, hold the place sheet still, ship the new picker
- Fit the route chooser to landscape, and mark the destination (#591)
- Add an FAQ, and a table of what each feature uses (#590)
- Do not swap sharp tiles for a shallow download (#589)
- Start the drive from where you are (#588)
- Let every trip row be moved or dropped (#587)
- Remove a debug probe that shipped by mistake (#586)
- Keep the stop signs that are actually yours (#585)
- Put the stop signs and lights back (#584)
- Fix the callouts, the stray stop signs and the in-nav place cost (#583)
- Offer a tapped place as a stop while driving (#582)
- Put the alternate routes next to the ETA (#581)
- Take shop positions from OpenStreetMap first (#580)
- Retry the places upload (#579)
- Call out the exit you take, and one badge per camera corner (#578)
- Frame the whole route in the overview (#577)
- Keep a shop's counters from outranking the shop (#576)
- Give the route bar badges their own lane (#575)
- Route bubbles in the classic chooser, offline routing offer (#574)
- Add an opt-in OpenStreetMap shops switch (#573)
- Group settings by topic (#572)
- List the voice commands in Settings > Search (#571)
- Both mode: only hide an open twin behind a drawn Google pin, purge closures (#570)
- Fewer place icons at street zoom in dense blocks, tunable remotely (#569)
- Reroutes stop waiting on a stalled open router and fall back to Google or the downloaded map (#568)
- Dense cities pan much smoother with Google places on the map (#567)
- Option to show the current road name inside the nav bar (#566)
- Avoid ferries, and reroutes keep your avoid settings (#565)
- More category chips: things to do, bars, parking, hospitals, banks, post offices and campgrounds (#564)
- The route overview keeps the destination clear of the side buttons (#563)
- Plate camera alerts while navigating, and cameras only count when they face your road (#562)
- Calmer dense cities: office pins become dots, every block has an icon limit, and the route overview shows landmarks only (#561)
- Sharing several trips now sends one zip, trimmed at one distance you pick (#560)
- The turn list opens on the turn you are driving to, with passed turns greyed above it (#559)
- Drive navigation: fewer places on the map, street names at the crossings, lights above the route (#558)
- Experiment: Google-style route chooser and full-trip stops editor (#542)
- Panning in Both mode no longer stalls on the Google twin check (#551)
- The same category chips on the map, in the route chooser and while navigating (#550)
- Contributing: how to use an AI assistant, and what the keyless check asks (#549)
- The full review page opens on the reviews for places like Davis, and logs to Diagnostics (#548)
- Dragging a stop in the stops editor reorders it again (#543)
- Places bake: hash join for the AllThePlaces dedupe, per-statement timings (#541)
- Stacked tenants get their own door, icons get a per-block budget, the sheet fades without an offscreen buffer, bake joins scale (#538)
- Take the settle-time stalls out of dense areas (#540)
- Older places archives keep their icons at high zoom (#539)
- Both mode: Google's copy wins a twin outright; drop the one-report-at-a-time rule (#537)
- Fix a doubled bullet marker in the contributor notes (#536)
- Contributing: how bug reports and feature requests are handled (#531)
- Follow flies in once, the better coordinate wins a twin, labels thin at max zoom (#534)
- Turn list: a stop divider where each leg begins (#533)
- Fix a map hang from the OSM fill-in: compile the name regexes once (#532)
- Diagnostics: the directions breadcrumb counts Google's congestion spans (#530)
- Traffic overlay above buildings, flock counts within 45 m, storage first in Offline maps (#529)
- Places come from: fleet default on the signed calibration channel; picker moved to Data source and privacy (#526)
- Free-drive follow glides: a fix corrects the estimate, it no longer re-anchors it (#525)
- Offline places show their baked hours with an open/closed status (#523)
- OSM basemap places fill in what the open layer lacks (#522)
- Place titles keep the app language's script over Google's local-script name (#520)
- Places bake: merge AllThePlaces store locators into each region (#515)
- Place sheet: Open in another map app (#514)
- Shields outside the US follow the sign color; exit numbers get a badge (#513)
- Route shields drawn like Google's: blue interstates, white US and state badges (#512)
- Retire GraphHopper: the obf engine is the one offline router (#496)
- Roadmap: AllThePlaces and the long-tail sources for the open places bake (#511)
- Roadmap: docs audit and the OpenStreetMap contribution conversation (#510)
- Diagnostics: a Redact places in exports toggle (#507) (#509)
- Both mode fills in what the open layer does not draw; closed listings vanish (#508)
Full changelog: v0.4.1430...v0.4.1733