mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-25 03:25:19 +00:00
* Refactor BitChat for improved robustness and performance Major refactoring to simplify architecture and fix critical issues: Architecture Improvements: - Replace complex BluetoothMeshService with simplified SimplifiedBluetoothService - Consolidate message routing and peer management into unified services - Remove redundant caching layers and optimize performance Bug Fixes: - Fix critical BLE peer mapping corruption in mesh networks - Fix encrypted message routing failures in multi-peer scenarios - Fix app freezes and Main Thread Checker warnings - Fix BLE message delivery in dual-role connections - Fix favorite toggle UI not updating instantly - Fix Nostr offline messaging with 24-hour message filtering Features: - Add command processor for chat commands - Add autocomplete service for mentions and commands - Improve private chat management with dedicated service - Add unified peer service for consistent state management Performance: - Optimize BLE reconnection speed - Reduce excessive logging throughout codebase - Improve message deduplication efficiency - Optimize UI updates and state management * Improvements refactor robust (#441) * remove unused code * remove more * TLV for announcement * restore * restore * restore? * messages tlv too (#442) * Fix Nostr notification and read receipt issues, add TLV encoding, cleanup unused code ## Notification & Read Receipt Fixes - Fixed toolbar notification icon appearing incorrectly on app restart for already-read messages - Fixed read receipts being incorrectly deleted on startup when privateChats was empty - Fixed messages not being marked as read when opening chat for first time - Fixed senderPeerID not being updated during message consolidation - Added startup phase logic to block old messages (>30s) while allowing recent ones - Fixed unread status checking across all storage locations (ephemeral, stable Noise keys, temporary Nostr IDs) ## TLV Encoding Implementation - Implemented Type-Length-Value encoding for private message payloads - Added PrivateMessagePacket struct with TLV encode/decode methods - Enhanced message structure for better extensibility and robustness ## Code Cleanup - Removed unused PeerStateManager class and related dependencies - Removed dead protocol types (DeliveryAck, ProtocolAck/Nack, NoiseIdentityAnnouncement) - Cleaned up BitchatDelegate by removing unused methods - Removed excessive debug logging throughout ChatViewModel - Added test-only ProtocolNack helper for integration tests ## Technical Details - Messages stored under three ID types: ephemeral peer IDs, stable Noise key hexes, temporary Nostr IDs - Fixed cleanupOldReadReceipts() to skip when privateChats is empty or during startup - Updated message consolidation to properly update senderPeerID - Restored NIP-17 timestamp randomization (±15 minutes) for privacy --------- Co-authored-by: jack <jackjackbits@users.noreply.github.com> Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
68 lines
967 B
Plaintext
68 lines
967 B
Plaintext
# Xcode
|
|
#
|
|
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
|
|
|
|
## implementation plans
|
|
plans/
|
|
|
|
## AI
|
|
CLAUDE.md
|
|
|
|
## User settings
|
|
xcuserdata/
|
|
|
|
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
|
|
*.xcscmblueprint
|
|
*.xccheckout
|
|
|
|
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
|
|
build/
|
|
DerivedData/
|
|
*.moved-aside
|
|
*.pbxuser
|
|
!default.pbxuser
|
|
*.mode1v3
|
|
!default.mode1v3
|
|
*.mode2v3
|
|
!default.mode2v3
|
|
*.perspectivev3
|
|
!default.perspectivev3
|
|
|
|
## Gcc Patch
|
|
/*.gcno
|
|
|
|
## macOS
|
|
.DS_Store
|
|
|
|
## SPM
|
|
.swiftpm
|
|
.build/
|
|
|
|
## CocoaPods
|
|
Pods/
|
|
|
|
## Carthage
|
|
Carthage/Build/
|
|
|
|
## fastlane
|
|
fastlane/report.xml
|
|
fastlane/Preview.html
|
|
fastlane/screenshots/**/*.png
|
|
fastlane/test_output
|
|
|
|
## Code Injection
|
|
iOSInjectionProject/
|
|
|
|
## Xcode project
|
|
*.xcodeproj/project.xcworkspace/
|
|
*.xcodeproj/xcshareddata/
|
|
|
|
## Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
|
|
## Temporary files
|
|
*.tmp
|
|
*.temp
|