Repository navigation
Roadstr 1.3.0 — full changelog below. Signed with the official release key; APKs are per-ABI (arm64-v8a is right for almost every phone since 2016) plus a universal one.
Changed
- One road-event format, shared with Roadbeacon. Reports and votes follow
nips/road-events.md: six-decimal coordinates, noalt,
two-tag votes, and anexpirationofcreated_at + max(14 days, lifetime). Roadstr's own reports already had that layout, so
each report is now written once: the optional second copy in the jooray/roadstr layout and its settings are gone, and reports in
that deprecated layout are no longer shown. - New MeshCore frame. A report is 117 bytes plus its comment (at most 46 bytes are written, so a frame never exceeds the 163
bytes a companion link carries; up to 48 are read), a vote is a self-contained 134 bytes. The codec runs the shared conformance
vectors indocs/interoperability/vectors/road-events-v1.json. The old 110-byte frame is not accepted. - MeshCore datagrams use the allocated
data_type0x0150"Road Events"
(meshcore-dev/MeshCore#3750), sent and accepted; the development value
0xFF52is no longer used. The frame bytes are unchanged. - Own reports and votes can go on the radio directly ("Send my reports by radio"); they no longer depend on the compatible copy.
- Votes now decide how long every report stays on the map, not only the ones heard over the radio. A "still there" keeps a
report alive for its category's lifetime counted from the vote (a police report confirmed at hour five is still shown), a "no longer
there" ends it at the time of the vote, only a key's latest vote counts, and a report is hidden while the last five minutes hold
more denials than confirmations. Nothing is shown past the report'sexpiration. A report older than its category's lifetime is now
kept while relays still serve it, so the votes that arrive afterwards can bring it back. - Bigger speed limit and route line while navigating. The number on the speed-limit sign is 40% larger; a three-digit limit
(100, 110, 130) is measured with the real font and shrunk just enough to stay inside the red ring, whatever the system font scale.
The route line (the coloured line, its halo, the grey part already driven, traffic and alternatives) is 20% wider, and every
route update now first checks that the route's map layers still exist.
Added
- MeshCore Open as the radio link (opt-in). Instead of taking the radio's only Bluetooth connection, Roadstr can use it through
MeshCore Open's local API on the same phone (ws://127.0.0.1:8787/api/v1), so the chat app keeps working. The pairing key lives in
the Android Keystore; Settings shows its fingerprint to compare with MeshCore Open's dialog. What the radio heard while Roadstr was
closed is replayed from where it left off. Bluetooth stays the default, and a saved radio is never switched over.
Fixed
- Votes on reports heard over the radio were always rejected, because the vote was expected to repeat the report's position.
- A 30-day report heard over the radio (speed camera, police station, surveillance camera) disappeared after 14 days.
- A vote heard on the radio before its report waits up to 15 minutes for it, from the radio or a relay, instead of being lost.
- A report sent again by a relay (relay rotation, area replay) no longer wipes its votes.
- Downloadable maps: Czechia could be selected but every one of its downloads failed, because Geofabrik publishes the Shortbread
extract for the whole country and not for its regions. Of the 222 European areas offered, 89 had no file; the list of areas that
really have one is now checked into the app (tools/offline_packages/probe_geofabrik_shortbread.py), a region without its own
file downloads the area that contains it, and Czechia and Slovakia are listed under Eastern Europe. - Downloadable maps: a city is placed by its area's outline, not its bounding box, so Northern Irish towns no longer point at England's file.
- The turn-by-turn card no longer covers the list of downloadable maps while navigating.
- The road-test build remembers the MeshCore switches across launches.
- Offline packages: updating or deleting a package no longer deletes the files of another package whose name merely starts
the same way (italyanditaly-north). - Importing the old app's data: the copied workspace is no longer closed and deleted while the snapshot is still being read,
and a failure in that step is reported like every other one.
Security
- Opening a report no longer contacts the reporter's Lightning server. The zap total of someone else's report used to be looked
up on open, which told whoever runs that server (the reporter chooses it) the driver's IP address and the moment they looked. It is
now looked up only for your own reports; for other people's it starts at zero and grows with what you zap. Zapping itself still
contacts that server, as it must. The README's Privacy section says so. - MeshCore Open's local API is only ever reached directly on this phone (no system proxy, no redirect), and a message or a
payload larger than the protocol allows is refused instead of being handed on. - A remote signer (bunker) can no longer change the date of an event it is asked to sign, and a repeated request for approval
opens the browser once, not once per answer. - A self-hosted SearXNG answer with a negative chunk size is treated as broken.
- The Gradle distribution used for release builds is checked against a pinned SHA-256.
- Machine-local build files that recorded a developer's home directory are no longer tracked.
SHA-256
a505f7b4dc3625e2ea6e69d968ffe1570e41fb203de34474e053fcc01b68817e app-arm64-v8a-release.apk
062ca8182fa008f57fcee174f3c0e704271a5d24e731ef24de5f45046406f3be app-armeabi-v7a-release.apk
6660e089d820cc1535ec0b69fc0d4144e311323a654953ac2481d9525bb5498c app-release.apk
2bef7ff1907cb2ab0ada15af3ed37bab3fb46ce2fc9de73f1099bed103560080 app-x86_64-release.apk