columba/python
torlando-tech 599e0753ea feat: Add TCP/WiFi connectivity for RNode devices
Add support for connecting to WiFi-enabled RNode devices via TCP as an
alternative to Bluetooth. This enables RNodes with WiFi chips to be
accessed over the network using the standard Reticulum RNodeInterface.

## Data Model Changes

- Add `tcpHost` and `tcpPort` fields to `InterfaceConfig.RNode`
- Update `connectionMode` to support "tcp" in addition to "classic"/"ble"
- Extend serialization/deserialization in InterfaceRepository with validation

## UI Changes (DeviceDiscoveryStep)

- Add connection type selector with "Bluetooth" and "WiFi / TCP" chips
- Add TcpConnectionForm composable with:
  - IP address or hostname input field
  - Port input field (default: 7633)
  - "Test Connection" button with validation feedback
- Extract BluetoothDeviceDiscovery as separate composable
- Only start Bluetooth scanning when in Bluetooth mode

## ViewModel Changes (RNodeWizardViewModel)

- Add RNodeConnectionType enum (BLUETOOTH, TCP_WIFI)
- Add TCP state fields: tcpHost, tcpPort, validation state
- Add methods: setConnectionType(), updateTcpHost(), updateTcpPort(),
  validateTcpConnection()
- Update canProceed() to handle TCP mode
- Update saveConfiguration() to create TCP config
- Update loadExistingConfig() to restore TCP settings when editing

## Python Config Generation (reticulum_wrapper.py)

- For TCP mode: write to config file using standard RNodeInterface
  format with `port = tcp://host:port`
- For Bluetooth mode: continue using ColumbaRNodeInterface (unchanged)

## Technical Notes

TCP connections can use Reticulum's standard RNodeInterface since TCP
sockets are standard Python (no jnius/Android-specific code needed).
The custom ColumbaRNodeInterface remains necessary only for Bluetooth
connections due to Android Bluetooth API requirements.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 22:57:59 -05:00
..
ble_modules fix(ble): Fix MAC rotation reconnection and dual connection deduplication 2025-12-11 13:02:35 -05:00
drivers initial commit 2025-11-30 19:59:14 -05:00
patches initial commit 2025-11-30 19:59:14 -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: use patched RNS fork for shared instance RPC fix (#42) 2025-12-08 12:10:58 -05:00
reticulum_wrapper.py feat: Add TCP/WiFi connectivity for RNode devices 2025-12-13 22:57:59 -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 fix(ble): Fix MAC rotation reconnection and dual connection deduplication 2025-12-11 13:02:35 -05:00
test_announce_handler.py test: Add Phase 2 tests for reticulum_wrapper.py coverage 2025-12-12 22:39:49 -05:00
test_opportunistic_timeout.py fix: Distinguish propagated vs delivered status for relay messages 2025-12-13 00:50:04 -05:00
test_path_request.py feat: Auto-request path for unknown destinations 2025-12-12 19:18:48 -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_rnode_interface.py fix: TDD fixes for BLE deduplication cooldown asymmetry and test stability 2025-12-09 18:56:16 -05:00
test_wrapper_announce_polling.py test: Add Phase 2 tests for reticulum_wrapper.py coverage 2025-12-12 22:39:49 -05:00
test_wrapper_ble.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00
test_wrapper_config.py test: Improve transport node toggle code coverage 2025-12-13 21:48:55 -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_identity.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00
test_wrapper_initialization.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00
test_wrapper_messaging.py fix: Distinguish propagated vs delivered status for relay messages 2025-12-13 00:50:04 -05:00
test_wrapper_path.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00
test_wrapper_peer_identity.py test: Add Phase 2 tests for reticulum_wrapper.py coverage 2025-12-12 22:39:49 -05:00
test_wrapper_propagation.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00
test_wrapper_utilities.py test: Add comprehensive unit tests for reticulum_wrapper.py 2025-12-12 22:22:10 -05:00