columba/python
torlando-tech 019f88ea2b fix: convert Chaquopy jarray to Python bytes in BLE callbacks
When Kotlin passes ByteArray to Python via Chaquopy, it arrives as a
jarray('B') (Java array), not Python bytes. Java arrays don't have
Python methods like .hex(), so calling .hex() on identity bytes
caused "jarray('B')' object has no attribute 'hex'" errors.

Add ensure_bytes() helper function and apply it to:
- _handle_data_received: data parameter
- _handle_duplicate_identity_detected: identity_bytes parameter

This fixes the duplicate identity detection callback which was failing
silently and allowing connections that should have been rejected.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 01:10:23 -05:00
..
ble_modules fix: convert Chaquopy jarray to Python bytes in BLE callbacks 2026-01-18 01:10:23 -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
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 Capture receiving interface and hops for opportunistic messages 2026-01-12 23:59:47 -05:00
reticulum_wrapper.py Merge pull request #274 from torlando-tech/feature/settings-about-section 2026-01-16 20:20:04 -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
test_android_ble_driver.py feat(ble): add duplicate identity detection callback for Android 2026-01-17 16:19:17 -05:00
test_announce_handler.py Fix test_extract_interface_from_announce_table mock setup 2026-01-13 19:25:27 -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_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