Skip to content

February 26, 2026

🎉 MeshMapper App v1.1.0

New Features¶

  • Regional Flood Scoping: If a region has configured scopes on their repeaters, a MeshMapper regional admin can now set the scope of Active/Hybrid Mode TX pings. This limits flood messages to a specific channel, stopping wardriving pings from flooding past boundaries defined by the local mesh. Discovery pings are unaffected.
  • Scope Indicator: The Regional Configuration card on the Connection tab now shows your active scope (e.g., #ottawa) or "Global" when no scope is set.
  • Anonymous Mode: New privacy option in Settings that renames your device to "Anonymous" for all mesh pings. Other mesh users can no longer see your companion name in wardrive broadcasts. Your device's public key still authenticates your session with the MeshMapper API (geo-auth), but your sessions and pings are not stored with your public key on the server. Toggling while connected automatically disconnects and reconnects with the new identity, switching to the Connection tab so you can see progress. On proper disconnect, the original device name is restored. Persisted across app restarts.
  • Auto Tile Refresh: Map tiles now refresh automatically after a successful upload, so new coverage appears near real-time (around 15s after a ping).
  • Faster Uploads: TX and discovery pings now upload on a predictable 5-second timer, replacing the old batch system (up to 20s worst case).
  • CARpeater Filter Toggle: Disable the RSSI CARpeater filter in Wardrive Settings (with a stern confirmation warning about data integrity consequences).
  • Multi-hop CARpeater Handling: Multi-hop CARpeater packets now strip the CARpeater hop and report coverage from the underlying repeater with null SNR/RSSI, instead of being dropped entirely. Single-hop packets and discovery responses are still dropped. The -30 dBm failsafe is bypassed for packets matching your CARpeater prefix but stays active for everything else.
  • Offline Mode: Option now displayed when zone check fails due to no internet. Start wardriving immediately instead of waiting for connectivity.
  • Admin: Enforced Hybrid Mode: Regional admins can now enforce hybrid mode per-zone through the API. When enabled, hybrid mode is automatically activated and the toggle is locked on the Settings screen with a "Forced Enabled by Regional Admin" label.
  • Admin: Minimum Ping Interval: Regional admins can set a minimum auto-ping interval per-zone. Interval options below the threshold are greyed out in Settings with a "Disabled by Regional Admin" label. If your saved interval is below the new minimum, it gets automatically bumped up on connect.

Bug Fixes¶

  • Fixed API queue race condition that could cause missed or double-processed items
  • Fixed ping race condition where rapid double-taps could trigger concurrent pings
  • Fixed resource cleanup gaps causing listener leaks from undisposed stream subscriptions and timers
  • Fixed tile refresh race condition causing half-rendered and ghost tiles at certain zoom levels
  • Fixed Light (OSM) and Satellite (ArcGIS) tiles not loading at low zoom on iOS retina displays
  • GITHUB 98: The heard repeaters panel now scrolls and dynamically expands to accommodate larger lists of heard repeaters
  • GITHUB 95: Fixed the IATA popup panel being hidden behind the Android navigation bar
  • Fixed a bug where a stale BLE device name was used instead of the current one
  • CARpeater filter order of operations corrected
  • Fixed RX CARpeater detection checking the wrong hop position. On RX packets, the CARpeater is co-located with the wardriver so it only appears as the last hop (delivery repeater), not the first. The check now correctly evaluates the last hop.

Improvements¶

  • In-memory log and map pin lists are now capped (500 for logs/pins, 200 for errors) to prevent memory bloat during long wardriving sessions
  • Replaced force unwraps with safe null checks across connection, ping, and debug services to prevent crashes
  • Empty catch blocks now log errors with descriptive tags instead of silently swallowing exceptions
  • Added a warning dialog before submitting debug logs alerting you that logs contain approximate GPS location history
  • Documented AES-ECB as a MeshCore protocol requirement
  • Removed deprecated method in channel_service
  • Listen windows reduced from 7s to 5s across the board
  • Map zoom range adjusted to 3-17
  • Disconnect now uploads immediately with no delay