feat(path_hash_mode): add hop_count and path_hash_size to API responses

Stage 2 of path_hash_mode support. All API endpoints and SocketIO
emissions now include decoded hop_count and path_hash_size fields
alongside the raw path_len, so the frontend can display and segment
paths correctly for any hash mode.

Changes:
- Import decode_path_len in api.py
- GET /api/messages: add hop_count, path_hash_size, echo_hash_sizes
- GET /api/messages/<id>/meta: add hop_count, path_hash_size, echo_hash_sizes
- GET /api/dm/messages: add hop_count, path_hash_size
- SocketIO new_message emission: add hop_count, path_hash_size

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
MarekWo
2026-03-30 10:00:03 +02:00
parent 719e11e868
commit e8f271f4ef
2 changed files with 43 additions and 5 deletions
+10 -2
View File
@@ -503,9 +503,15 @@ class DeviceManager:
if self.socketio:
snr = data.get('SNR', data.get('snr'))
path_len = data.get('path_len')
path_len_raw = data.get('path_len')
pkt_payload = data.get('pkt_payload')
# Decode path_len into hop_count and path_hash_size
hop_count = None
path_hash_size = 1
if path_len_raw is not None:
hop_count, path_hash_size, _ = decode_path_len(path_len_raw)
# Compute analyzer URL from pkt_payload
analyzer_url = None
if pkt_payload:
@@ -524,7 +530,9 @@ class DeviceManager:
'timestamp': ts,
'id': msg_id,
'snr': snr,
'path_len': path_len,
'path_len': path_len_raw,
'hop_count': hop_count,
'path_hash_size': path_hash_size,
'pkt_payload': pkt_payload,
'analyzer_url': analyzer_url,
}, namespace='/chat')