From 9c083f9b951c53eff066972418c549dad4ffce81 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Tue, 8 Sep 2026 00:16:09 +0300 Subject: [PATCH] Fix durable Nostr fallback for private chats --- app/src/debug/AndroidManifest.xml | 2 +- .../android/testhook/TestHookDriver.kt | 50 ++ .../xml/nostr_fixture_network_security.xml | 7 + .../com/bitchat/android/BitchatApplication.kt | 2 + .../favorites/FavoriteControlMessage.kt | 4 +- .../favorites/FavoritesPersistenceService.kt | 111 +++- .../identity/SecureIdentityStateManager.kt | 4 + .../android/mesh/BluetoothMeshService.kt | 23 +- .../java/com/bitchat/android/mesh/MeshCore.kt | 23 +- .../bitchat/android/mesh/MessageHandler.kt | 24 +- .../android/mesh/UnifiedMeshService.kt | 1 + .../bitchat/android/model/BitchatMessage.kt | 4 +- .../nostr/NostrBackgroundEventProcessor.kt | 50 +- .../android/nostr/NostrBackgroundRuntime.kt | 48 +- .../com/bitchat/android/nostr/NostrClient.kt | 313 ----------- .../com/bitchat/android/nostr/NostrCrypto.kt | 14 +- .../nostr/NostrDirectMessageHandler.kt | 408 ++++---------- .../android/nostr/NostrEmbeddedBitChat.kt | 20 +- .../bitchat/android/nostr/NostrInboxSync.kt | 30 + .../android/nostr/NostrPendingEventQueue.kt | 16 + .../bitchat/android/nostr/NostrProtocol.kt | 31 +- .../android/nostr/NostrRelayManager.kt | 206 +++++-- .../com/bitchat/android/nostr/NostrRequest.kt | 4 + .../android/nostr/NostrSubscriptionManager.kt | 4 +- .../bitchat/android/nostr/NostrTestManager.kt | 276 ---------- .../bitchat/android/nostr/NostrTransport.kt | 511 +++--------------- .../android/service/AppShutdownCoordinator.kt | 1 + .../ConversationNotificationReceiver.kt | 4 +- .../bitchat/android/services/AppStateStore.kt | 86 ++- .../services/ConversationRepository.kt | 202 ++++++- .../services/IncomingMessageAdmission.kt | 10 +- .../bitchat/android/services/MessageRouter.kt | 454 ++-------------- .../services/PrivateDeliveryCoordinator.kt | 193 +++++++ .../android/services/PrivateDeliveryJob.kt | 28 + .../com/bitchat/android/ui/ChatViewModel.kt | 84 +-- .../com/bitchat/android/ui/DataManager.kt | 8 +- .../bitchat/android/ui/GeohashViewModel.kt | 2 +- .../bitchat/android/ui/MeshDelegateHandler.kt | 7 +- .../com/bitchat/android/ui/MessageManager.kt | 4 +- .../bitchat/android/ui/PrivateChatManager.kt | 35 +- .../favorites/FavoritesPersistenceTest.kt | 37 ++ .../nostr/NostrDirectMessageHandlerTest.kt | 327 +++++------ .../android/nostr/NostrInboxSyncTest.kt | 30 + .../nostr/NostrPendingEventQueueTest.kt | 42 +- .../android/nostr/NostrRelayDeliveryTest.kt | 68 +++ .../services/IncomingMessageAdmissionTest.kt | 6 +- .../android/services/MessageRouterTest.kt | 279 ++++------ .../android/ui/PrivateChatManagerTest.kt | 11 +- docs/nostr-private-messaging-review.md | 129 +++++ tools/release_gate/mesh_lab.py | 49 ++ tools/release_gate/nostr_relay_fixture.py | 157 ++++++ .../release_gate/test_nostr_relay_fixture.py | 51 ++ wear/build.gradle.kts | 2 + .../com/bitchat/watch/mesh/WearMeshService.kt | 4 +- 54 files changed, 2062 insertions(+), 2434 deletions(-) create mode 100644 app/src/debug/res/xml/nostr_fixture_network_security.xml delete mode 100644 app/src/main/java/com/bitchat/android/nostr/NostrClient.kt create mode 100644 app/src/main/java/com/bitchat/android/nostr/NostrInboxSync.kt delete mode 100644 app/src/main/java/com/bitchat/android/nostr/NostrTestManager.kt create mode 100644 app/src/main/java/com/bitchat/android/services/PrivateDeliveryCoordinator.kt create mode 100644 app/src/main/java/com/bitchat/android/services/PrivateDeliveryJob.kt create mode 100644 app/src/test/kotlin/com/bitchat/android/favorites/FavoritesPersistenceTest.kt create mode 100644 app/src/test/kotlin/com/bitchat/android/nostr/NostrInboxSyncTest.kt create mode 100644 app/src/test/kotlin/com/bitchat/android/nostr/NostrRelayDeliveryTest.kt create mode 100644 docs/nostr-private-messaging-review.md create mode 100644 tools/release_gate/nostr_relay_fixture.py create mode 100644 tools/release_gate/test_nostr_relay_fixture.py diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml index e84ea5db..781c836f 100644 --- a/app/src/debug/AndroidManifest.xml +++ b/app/src/debug/AndroidManifest.xml @@ -2,7 +2,7 @@ - +