Skip to content

v1.7.0 - MeshMapper Coverage Support and Safer Legacy Routing

Choose a tag to compare

@yellowcooln yellowcooln released this 20 Mar 17:28
· 85 commits to main since this release
b47d87f

v1.7.0

This release adds MeshMapper coverage support, maintains legacy coverage map compatibility, and improves route accuracy on older 1-byte networks.

New in v1.7.0

All new ENV's in https://github.com/yellowcooln/meshcore-mqtt-live-map/blob/main/VERSIONS.md#v170-03-20-2026

Coverage API support

  • Added support for two coverage providers:
    • Legacy coverage maps using /get-samples
    • MeshMapper using https://meshmapper.net/coverage.php
  • Legacy coverage map support remains unchanged and fully compatible
  • MeshMapper API documentation:
    • https://wiki.meshmapper.net/coverage-api/
    • Access requires a Coverage API key provisioned by a Master administrator
    • Each key is scoped to a specific region or multiregion group and includes a daily rate limit
  • To avoid exhausting API limits:
    • The server caches MeshMapper data hourly
    • All user requests are served from the cached dataset instead of hitting the API directly

MeshMapper server-side caching

  • Added server-side MeshMapper coverage sync
  • Coverage data is downloaded and stored locally on the server
  • Map requests now use the local cache instead of querying MeshMapper directly
  • Added cooldown handling for MeshMapper API rate limits
  • Added MeshMapper-specific configuration options:
    • API key
    • Cache file path
    • Sync interval
    • Rate-limit cooldown

Coverage age filtering

  • Added COVERAGE_MAX_AGE_DAYS
  • Full MeshMapper dataset is cached locally
  • Only the most recent N days are served to the map
  • Default coverage window is 30 days

Safer 1-byte route resolution

  • Tightened handling of ambiguous 1-byte route prefixes
  • Removed weak matching when multiple nodes share the same first byte
  • Ambiguous 1-byte hops now require stronger validation before rendering
  • Reduces false long-distance links on large 1-byte meshes

Timing consistency fixes

  • Improved route expiry behavior after page load
  • Improved MQTT online indicator timing
  • Route and MQTT timing now align with server time instead of relying solely on the browser clock

Testing

  • Added coverage tests for:
    • Legacy coverage maps
    • MeshMapper integration
    • Cache behavior
    • Rate-limit cooldown handling
    • Coverage age filtering
  • Added regression tests for ambiguous 1-byte route handling