columba/python
torlando-tech a83ac4f0e0 fix: Show accurate toast feedback when saving contacts
Previously, MessagingScreen showed "Saved to Contacts" immediately
without waiting for the async operation result. If the peer's public
key wasn't available (e.g., they never announced), the save would
silently fail despite showing success.

Changes:
- Add ContactToggleResult sealed class to emit success/error from toggleContact()
- Update MessagingScreen to collect results and show accurate toasts
- Extract sender's public key from RNS identity cache in poll_received_messages()
- Add publicKey field to ReceivedMessage and pass through the pipeline
- Store public key from messages in peer_identities table

Now users see "Identity not available - peer hasn't announced" when
save fails, and contacts can be saved from message senders even if
they never announced.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 18:01:50 -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
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 fix: use patched RNS fork for shared instance RPC fix (#42) 2025-12-08 12:10:58 -05:00
reticulum_wrapper.py fix: Show accurate toast feedback when saving contacts 2025-12-15 18:01:50 -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_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_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 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_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_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 perf: Optimize peer identity restoration from minutes to milliseconds 2025-12-14 22:13:35 -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