v1.8.0 - Automatic Backups, Chained LOS Paths, and Official Decoder Restore
This release adds automatic backups, expands the LOS tool into a chained path workflow, restores the official MeshCore decoder, and improves MeshMapper coverage behavior.
Highlights
- Added automatic runtime backups as timestamped
.tar.gzarchives - Expanded the LOS tool to support multiple chained pins and full-path elevation profiles
- Switched the runtime decoder back to the official
@michaelhart/meshcore-decoder - Improved MeshMapper coverage rendering to better match the displayed coverage footprint
- Added backup tests covering archive creation and retention pruning
- Full test suite passes with
84 passed, 2 skipped
Backups
Automatic runtime backups are now supported as timestamped .tar.gz archives. This release also adds backup-specific environment controls, changes the default backup location to /backup, adds retention pruning for older archives, and mounts ./backup:/backup in docker-compose.yaml.
Backups include live-state files such as:
state.jsondevice_roles.jsondevice_coords.jsonneighbor_overrides.jsonchannel_secrets.jsonmap_boundary.jsonroute_history.jsonlcoverage_cache.json
New backup environment variables:
BACKUP_ENABLEDBACKUP_INTERVAL_SECONDSBACKUP_DIRBACKUP_RETENTION_DAYS
LOS Tool
The LOS tool now supports multiple chained pins as part of issue #41. Elevation profiles span the full chained path instead of only the active segment, height inputs are stored per pin, and intermediate pin movement now correctly recalculates both adjacent segments.
This release also removes the old Keep A LOS workflow, adds Remove last pin, and updates helper text and labels to match the chained-pin model.
Decoder
The runtime decoder has been switched back to the official @michaelhart/meshcore-decoder, which now supports the multibyte path decoding needed by the map.
MeshMapper Coverage
MeshMapper coverage rendering now expands returned squares to better match MeshMapper’s displayed footprint. Styling was also tuned to keep the fuller footprint while making coverage easier to read.