v1.7.5 - Route Details, Channel Secrets, and Packet Analyzer Links
This release improves Route Details, adds channel secret file support for decrypting sender names, and introduces optional packet analyzer links.
Changes
- Added
CHANNEL_SECRETS_FILEsupport for loading channel secrets from a file instead of a long environment variable - Added a shipped
channel_secrets.example.jsonwith example channel entries - Replaced per-packet Node decoder process spawning with a persistent decoder worker
- Reused the loaded channel key store across packets to reduce decode overhead
- Route Details can now show a display-only sender-name row as hop
0when the packet includes a decrypted sender name but not a stable sender identity - Route Details now preserves companion endpoints more accurately, including non-spatial endpoint rows for companions without GPS coordinates
- Route Details hop counts now match the visible rows when sender companion rows are present
- Route Details now shows the full packet hash in the header instead of truncating it
- Route Details now prefers the MQTT packet hash over a shorter decoder
messageHash - Added optional
PACKET_ANALYZER_URLso packet hashes in Route Details can link to an external analyzer - Fixed the production route payload so Route Details keeps the packet hash and sender name instead of falling back to the internal
hash:receiverroute ID - Made the node popup
Location:line clickable to copyLocation: <lat>, <lon>to the clipboard
New ENVs
Optional channel secrets file (for decrypting sender names from supported group-text packets):
CHANNEL_SECRETS_FILE=/data/channel_secrets.jsonCopy channel_secrets.example.json to your chosen path and keep only the channels you want to ship.
Optional packet analyzer link base (used for Route Details hashes):
PACKET_ANALYZER_URL=https://analyzer.letsmesh.net/packets?packet_hash=Testing
- Added channel secret decoder coverage
- Added route identity regression coverage for packet hash preference and production payload behavior
- Test suite passing:
76 passed, 2 skipped