columba/python
torlando-tech 0afd5019b1 fix: BLE shutdown cleanup + battery-tunable power settings
Fix timing bug where BLE scanner/advertiser/GATT connections persist after
service restart because System.exit(0) kills the process before the async
Python shutdown chain can complete. Add synchronous stopImmediate() methods
that run directly on Main thread before process exit.

Add user-configurable BLE power settings (Performance/Balanced/Battery Saver/
Custom presets) with per-interface controls for scan interval, scan duration,
and advertising refresh interval. Settings flow through the full stack:
UI → Room DB → Python config → Kotlin BLE bridge → Scanner/Advertiser.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 15:09:44 -05:00
..
ble_modules fix: BLE shutdown cleanup + battery-tunable power settings 2026-03-06 15:09:44 -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: batch TX audio frames to eliminate progressive call degradation 2026-02-16 14:45:06 -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 feat: add BLE peer RSSI signal tracking 2026-01-18 21:25:47 -05:00
auto_interface_manager.py Serialize hot_add_interfaces and defer thread starts until after resource creation 2026-03-02 00:39:09 -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
interface_lookup.py fix: resolve announce interface identification when transport is disabled 2026-02-21 17:31:10 -05:00
logging_utils.py initial commit 2025-11-30 19:59:14 -05:00
memory_profiler.py docs(05-02): audit PyObject lifecycle for memory leaks 2026-01-29 18:41:10 -05:00
requirements.txt chore: remove dead Python LXST dependencies and audio backend 2026-02-07 16:02:34 -05:00
reticulum_wrapper.py fix: BLE shutdown cleanup + battery-tunable power settings 2026-03-06 15:09:44 -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: abort USB start if old read thread won't stop 2026-01-20 19:37:34 -05:00
signal_quality.py feat: add BLE peer RSSI signal tracking 2026-01-18 21:25:47 -05:00
test_android_ble_driver.py feat: add BLE peer RSSI signal tracking 2026-01-18 21:25:47 -05:00
test_android_ble_interface.py test: add unit tests for BLE interface RSSI methods 2026-01-18 21:52:09 -05:00
test_announce_handler.py fix: resolve announce interface identification when transport is disabled 2026-02-21 17:31:10 -05:00
test_auto_interface_manager.py Fix global UDPServer mutation and defer state registration in hot-add 2026-03-01 22:42:56 -05:00
test_autoconnected_endpoints.py test: add comprehensive unit tests for RNS discovery feature 2026-01-21 22:58:08 -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_ble_modules_android_ble_interface.py test: add unit tests for BLE interface RSSI methods 2026-01-18 21:52:09 -05:00
test_call_manager.py fix: batch TX audio frames to eliminate progressive call degradation 2026-02-16 14:45:06 -05:00
test_discovered_interfaces.py test: add comprehensive tests for get_discovered_interfaces() 2026-01-21 23:19:20 -05:00
test_discovery_enabled.py test: add comprehensive unit tests for RNS discovery feature 2026-01-21 22:58:08 -05:00
test_memory_profiler.py test(05-02): add unit tests for memory profiler 2026-01-29 17:33:04 -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_pr422_icon_appearance.py fix: swap icon foreground/background color order to match LXMF standard 2026-02-13 06:18:47 +00: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 feat(telephony): improve call setup reliability and init speed 2026-02-08 12:43:23 -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 refactor: extract testable utilities to improve test coverage 2026-01-20 17:46:09 -05:00
test_signal_quality.py feat: add BLE peer RSSI signal tracking 2026-01-18 21:25:47 -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_telemetry_host_mode.py fix: include host device location in hosted group telemetry stream 2026-02-26 16:13:01 +01:00
test_telemetry_stream.py fix: swap icon foreground/background color order to match LXMF standard 2026-02-13 06:18:47 +00:00
test_usb_bridge.py fix: resolve detekt issues and update tests for USB RNode support 2026-01-20 00:24:53 -05:00
test_wrapper_announce_polling.py test: Add comprehensive tests for interface name extraction 2026-01-21 19:07:22 -05:00
test_wrapper_attachment_staging.py Add Python tests for attachment staging to cover PR diff lines 2026-03-01 19:01:22 -05:00
test_wrapper_ble.py feat: simplify USB RNode interface naming to "RNode USB" 2026-01-19 23:43:57 -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 fix: increase heartbeat stop test timeout to match 5s idle sleep 2026-02-20 18:04:23 -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 feat(telephony): improve call setup reliability and init speed 2026-02-08 12:43:23 -05:00
test_wrapper_link.py fix(test): stabilize flaky establish_link tests with concrete status values 2026-02-15 15:06:12 -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 test: add unit tests for BLE interface RSSI methods 2026-01-18 21:52:09 -05:00
test_wrapper_path.py fix: flaky Python test from global state leak + remove CI self-cancel 2026-02-10 19:35:58 -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
TorClientInterface.py Add SOCKS5 proxy UI fields to TCP Client interface config 2026-02-16 19:47:17 -05:00
usb_bridge.py fix: auto-generate Bluetooth RNode interface names from device name 2026-01-19 23:48:06 -05:00