What's Changed
- Include mermaid diagrams for packet structures by @FLAK-ZOSO in #666
- Add base localization infrastructure and externalize strings by @jackjackbits in #670
- Add default localization to fix CI builds by @qalandarov in #674
- Fix tests that were broken after localization integration by @qalandarov in #677
- Comment out broken tests by @qalandarov in #675
- Fix Localizations by @qalandarov in #684
- Unify the usages of
splitSuffix()
by @qalandarov in #683 - Fix a typo in base
Localizable.strings
by @hyeonjongyang in #685 - Refactor: Migrate to Swift String Catalogs (.xcstrings) by @SkinnnyJay in #691
- Add new languages by @jackjackbits in #700
- Fix broke tests with LocationNotesManagerTests to expect localization key by @SkinnnyJay in #699
- Optimize private chat deduplication by @jackjackbits in #694
- Remove unused favorites and notification helpers by @jackjackbits in #693
- Chore: Add localization regression tests to prevent format string crashes by @SkinnnyJay in #695
- Unify SHA256 hash and hex usages by @qalandarov in #687
- Refactor
peerID
- 1/n: AddPeerID
+ Tests by @qalandarov in #688 - Fix broken build + uncover localization tests by @qalandarov in #702
- Prune unused validation helpers by @jackjackbits in #701
- PeerID 2/n: Count and hex-conversion done with
bare
by @qalandarov in #705 - PeerID 3/n: Remove dead code by @qalandarov in #706
- Temporarily disable broken tests to catch actual issues by @qalandarov in #740
- Shared schemes by @qalandarov in #738
- Modularization: Extract Tor into a separate module by @qalandarov in #602
- PeerID 4/n:
BitchatMessage.senderPeerID
+ String equality by @qalandarov in #739 - Injectable UserDefaults to fix race condition in tests by @qalandarov in #741
- PeerID 5/n: Ephemeral and Secure Identities by @qalandarov in #742
- PeerID 6/n: Unifiy validation by @qalandarov in #743
- PeerID 7/n: Unify PeerIDUtils & PeerIDResolver by @qalandarov in #744
- PeerID 8/n: NoiseRateLimiter & FavoritesPersistenceService by @qalandarov in #745
- Don’t auto-register mock BLE services on creation by @qalandarov in #746
- PeerID 9/n:
NoiseEncryptionService
by @qalandarov in #747 - PeerID 10/n: MessageRouter by @qalandarov in #749
- PeerID 11/n:
Noise
types usePeerID
+ create separate files by @qalandarov in #750 - PeerID 12/n:
GossipSyncManager
by @qalandarov in #751 - PeerID 14/n:
Transport
and its dependents by @qalandarov in #753 - Extract
DeliveryStatusView
into a separate file by @qalandarov in #757 - PeerID 15/n: Bitchat Message & Packet accept in init by @qalandarov in #754
- PeerID 16/n: BitchatPeer / PeerInfo / TransportPeer by @qalandarov in #755
- PeerID 17/n:
PeripheralState
+centralToPeerID
by @qalandarov in #756 - Extract and simplify
PaymentChipView
by @qalandarov in #758 - Extract
TextMessageView
into a separate file by @qalandarov in #759 - Swift Testing by @qalandarov in #748
- Fix test suite peer ID collisions by @jackjackbits in #764
- Show Bluetooth permission alerts on launch and foreground by @jackjackbits in #765
- Swiping to close the sidebar by @riconroy in #678
- Fix ghost peers and stale messages from gossip sync by @jackjackbits in #766
- Add Tor’s xcframework and select “Do not embed” by @qalandarov in #768
- Fix QR verification sending multiple notifications by @jackjackbits in #773
- Location notes: fix performance and UI issues by @jackjackbits in #774
- SwiftTesting: Enable in GitHubActions + peer uuids by @qalandarov in #767
- PeerID 18/n:
BitchatDelegate
+ Tests by @qalandarov in #769 - PeerID 19/n:
BLEService
’s private properties by @qalandarov in #770 - PeerID 20/n:
BLEService
’s private functions by @qalandarov in #771 - PeerID 21/n:
UnifiedPeerService
by @qalandarov in #772 - Fix send button tap responsiveness and sidebar drag jitter by @jackjackbits in #783
- Remove
MockBluetoothMeshService
by @qalandarov in #777 - Cleanup by @qalandarov in #793
- Centralize repeated queue-checking logic by @qalandarov in #791
- Fix hidden source of deadlocks by @qalandarov in #794
- Align DM sheet toolbar with people list by @jackjackbits in #795
- Serialize fragment assembly on BLE message queue by @jackjackbits in #804
- Refactor Nostr ID Bridge & Keychain Helper by @qalandarov in #796
- PeerID 22/n:
PrivateChatManager
by @qalandarov in #800 - Add Turkish translations for share extension & Add Turkey to knownRegions by @fikarme in #787
- Align gossip sync stale cleanup with Android client by @jackjackbits in #798
- Guard BLE link state lookups on BLE queue by @jackjackbits in #805
- Fix people sheet dismiss gestures by @jackjackbits in #803
- PeerID 23/n:
ChatViewModel
+ its dependences by @qalandarov in #801 - Refactor Noise: Extract files and remove dead code by @qalandarov in #806
- Convert the remaining tests to Swift Testing by @qalandarov in #781
- Fix crash in handleMessage peer lookup by @jackjackbits in #810
- fix: improve Xcode detection in Justfile by @RedThoroughbred in #814
- Prune unused helpers and add Linux logging stubs by @jackjackbits in #811
- Reuse cached mention regex in parseMentions by @jackjackbits in #812
- Privacy: Remove LocationNotesCounter background subscriptions by @jackjackbits in #820
- Feature: Location notes ± 1 grid (subscribe to 9 cells) by @jackjackbits in #821
New Contributors
- @FLAK-ZOSO made their first contribution in #666
- @hyeonjongyang made their first contribution in #685
- @SkinnnyJay made their first contribution in #691
- @riconroy made their first contribution in #678
- @fikarme made their first contribution in #787
- @RedThoroughbred made their first contribution in #814
Full Changelog: v1.4.3...v1.4.4