columba/python
torlando-tech cd345baba9 feat: add RSSI and SNR signal metrics to messages
Add signal quality metrics (RSSI and SNR) to received messages, displayed
on the message detail screen. RNode-delivered messages show both metrics;
BLE shows RSSI only (Android limitation).

Changes:
- Python layer: New signal_quality.py module for extracting metrics from
  Reticulum interfaces at message delivery time
- Database: Add receivedRssi (INTEGER) and receivedSnr (REAL) columns with
  migration 30->31
- Protocol: Parse rssi/snr from JSON in ServiceReticulumProtocol and
  EventHandler
- UI: New SignalQualityInfo utility with color-coded signal strength/quality
  display in MessageDetailScreen

Signal thresholds:
- RSSI: Excellent (>-50), Good (-50 to -70), Fair (-70 to -85), Weak (-85 to -100), Very Weak (<-100) dBm
- SNR: Excellent (>10), Good (5-10), Fair (0-5), Poor (-5-0), Very Poor (<-5) dB

Closes #209

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 21:23:46 -05:00
..
ble_modules refactor: implement hierarchical BLE logging tags 2026-01-18 13:41:35 -05:00
drivers initial commit 2025-11-30 19:59:14 -05:00
jnius fix: Correct TCP RNode config format and add stub modules 2025-12-14 00:10:49 -05:00
lxst_modules fix: resolve call startup issues with retry and async IO 2026-01-16 22:06:23 -05:00
patches initial commit 2025-11-30 19:59:14 -05:00
usb4a fix: Correct TCP RNode config format and add stub modules 2025-12-14 00:10:49 -05:00
usbserial4a fix: Correct TCP RNode config format and add stub modules 2025-12-14 00:10:49 -05:00
android_ble_interface.py initial commit 2025-11-30 19:59:14 -05:00
columba_logo.py feat: display Columba logo on RNode OLED via external framebuffer 2025-12-08 21:58:48 -05:00
conftest.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00
logging_utils.py initial commit 2025-11-30 19:59:14 -05:00
requirements.txt fix: revert to Python 3.11 and fix delivery status UI refresh 2026-01-16 22:06:23 -05:00
reticulum_wrapper.py feat: add RSSI and SNR signal metrics to messages 2026-01-18 21:23:46 -05:00
rmsp_client.py Revert "fix(security): correct destination direction in RMSP hash verification" 2026-01-12 21:25:45 -05:00
rnode_interface.py fix: TDD fixes for BLE deduplication cooldown asymmetry and test stability 2025-12-09 18:56:16 -05:00
signal_quality.py feat: add RSSI and SNR signal metrics to messages 2026-01-18 21:23:46 -05:00
test_android_ble_driver.py fix: restore reticulum_wrapper module in test tearDown to prevent isolation issues 2026-01-18 16:54:30 -05:00
test_announce_handler.py Fix test_extract_interface_from_announce_table mock setup 2026-01-13 19:25:27 -05:00
test_ble_duplicate_identity_stale.py test: add tests for stale identity-to-address rejection bug fix 2026-01-18 16:06:35 -05:00
test_call_manager.py fix: update mute test to verify mute_transmit(False) instead of unmute_transmit 2026-01-16 22:06:23 -05:00
test_chaquopy_audio_backend.py test: add comprehensive unit tests for LXST voice call feature 2026-01-16 22:04:40 -05:00
test_opportunistic_timeout.py test: update propagation node tests to match None-clearing behavior 2026-01-16 19:00:06 -05:00
test_path_request.py feat: Auto-request path for unknown destinations 2025-12-12 19:18:48 -05:00
test_propagated_status_protection.py fix(#257): add Python tracking + Kotlin guard for propagated message status 2026-01-16 16:55:42 -05:00
test_propagation_fallback.py feat: Add automatic relay fallback and manual retry for failed messages 2025-12-13 00:01:13 -05:00
test_reticulum_wrapper.py test: add comprehensive tests for offline maps feature 2026-01-11 01:09:51 -05:00
test_rmsp_client.py fix(tests): use explicit global coverage marker in Server D test 2026-01-11 21:44:49 -05:00
test_rnode_interface.py fix: TDD fixes for BLE deduplication cooldown asymmetry and test stability 2025-12-09 18:56:16 -05:00
test_signal_quality.py feat: add RSSI and SNR signal metrics to messages 2026-01-18 21:23:46 -05:00
test_stub_modules.py test: Improve patch coverage from 20.94% to 80%+ with 61 new tests 2025-12-14 01:30:09 -05:00
test_telemetry_format.py test: add comprehensive telemetry format tests 2025-12-29 17:50:57 -05:00
test_wrapper_announce_polling.py Fix receiving interface capture for AutoInterface messages 2026-01-13 18:50:36 -05:00
test_wrapper_ble.py test: Add 30 tests to improve TCP RNode patch coverage to 80%+ 2025-12-14 01:58:19 -05:00
test_wrapper_config.py test: Add 30 tests to improve TCP RNode patch coverage to 80%+ 2025-12-14 01:58:19 -05:00
test_wrapper_destination.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00
test_wrapper_heartbeat.py test: add coverage for heartbeat, exception handler, and persistence fields 2025-12-28 22:03:19 -05:00
test_wrapper_identity.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00
test_wrapper_initialization.py fix: Enable async TCP startup to prevent initialization timeout 2025-12-15 10:08:37 -05:00
test_wrapper_link.py test: add unit tests for reticulum_wrapper coverage 2026-01-09 23:45:26 -05:00
test_wrapper_message_size_limit.py test: add comprehensive tests for incoming message size limit feature 2026-01-03 23:04:51 -05:00
test_wrapper_messaging.py fix(#257): add Python tracking + Kotlin guard for propagated message status 2026-01-16 16:55:42 -05:00
test_wrapper_path.py fix: add LXMF mock to TestOnLXMFDelivery and fix hop count test 2026-01-09 09:26:36 -05:00
test_wrapper_peer_identity.py perf: Optimize peer identity restoration from minutes to milliseconds 2025-12-14 22:13:35 -05:00
test_wrapper_propagation.py test: update propagation node tests to match None-clearing behavior 2026-01-16 19:00:06 -05:00
test_wrapper_reactions.py auto-claude: subtask-4-3 - Add Python tests for reaction send/receive 2025-12-24 20:46:18 -05:00
test_wrapper_stamp_generator.py test: add Python tests for stamp generator callback 2025-12-16 18:52:21 -05:00
test_wrapper_utilities.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00