diff --git a/app/device_manager.py b/app/device_manager.py
index 1e7992a..9ac1de0 100644
--- a/app/device_manager.py
+++ b/app/device_manager.py
@@ -228,7 +228,7 @@ class DeviceManager:
for event_type, handler in handlers:
sub = self.mc.subscribe(event_type, handler)
self._subscriptions.append(sub)
- logger.info(f"Subscribed to {event_type.value}")
+ logger.debug(f"Subscribed to {event_type.value}")
def _sync_contacts_to_db(self):
"""Sync device contacts to database."""
@@ -519,7 +519,7 @@ class DeviceManager:
import io
data = getattr(event, 'payload', {})
payload_hex = data.get('payload', '')
- logger.info(f"RX_LOG_DATA received: {len(payload_hex)//2} bytes, snr={data.get('snr')}")
+ logger.debug(f"RX_LOG_DATA received: {len(payload_hex)//2} bytes, snr={data.get('snr')}")
if not payload_hex:
return
diff --git a/app/static/js/app.js b/app/static/js/app.js
index 22f4d4a..e230bab 100644
--- a/app/static/js/app.js
+++ b/app/static/js/app.js
@@ -774,12 +774,12 @@ function createMessageElement(msg) {
}));
}
- let metaInfo = '';
+ let metaParts = [];
if (msg.snr !== undefined && msg.snr !== null) {
- metaInfo += `SNR: ${msg.snr.toFixed(1)} dB`;
+ metaParts.push(`SNR: ${msg.snr.toFixed(1)} dB`);
}
if (msg.path_len !== undefined && msg.path_len !== null) {
- metaInfo += ` | Hops: ${msg.path_len}`;
+ metaParts.push(`Hops: ${msg.path_len}`);
}
if (msg.paths && msg.paths.length > 0) {
// Show first path inline (shortest/first arrival)
@@ -790,8 +790,9 @@ function createMessageElement(msg) {
: segments.join('\u2192');
const pathsData = encodeURIComponent(JSON.stringify(msg.paths));
const routeLabel = msg.paths.length > 1 ? `Route (${msg.paths.length})` : 'Route';
- metaInfo += ` | ${routeLabel}: ${shortPath}`;
+ metaParts.push(`${routeLabel}: ${shortPath}`);
}
+ const metaInfo = metaParts.join(' | ');
if (msg.is_own) {
// Own messages: right-aligned, no avatar