* Swift Testing: `PrivateChatE2ETests` + minor refactor
* Swift Testing: `PublicChatE2ETests`
* Swift Testing: `FragmentationTests`
* Fix MockBLEService init to accept PeerID and remove _testRegister call
* Add peerID property to MockBLEService and fix ttlDecrement test
* Remove duplicate peerID property and fix type comparisons
---------
Co-authored-by: jack <jackjackbits@users.noreply.github.com>
* Fix fragmentation + BLE long-write + padding
- Accumulate CBATTRequest long writes by offset and decode once per central
- Decode original packet after fragment reassembly (preserve flags/compression)
- Switch MessagePadding to strict PKCS#7 and validate before unpadding
- Make BinaryProtocol.decode robust: try raw first, then unpad fallback
- Unpad frames before BLE notify; fragment when exceeding centrals' max update length
- Skip notify path when max update length < 21 bytes (protocol minimum)
Verified large PMs and announces route without decode errors and peers show reliably.
* Tests: fix weak delegate lifetime, legacy constants, and unused vars; fragment unpadded frames
- BLEServiceTests: hold strong reference to MockBitchatDelegate
- IntegrationTests: fix inline comment braces; replace removed types with test-safe values; use numeric 0x06 for legacy handshake resp checks
- BinaryProtocolTests: remove unused minResult variable
- BLEService: fragment the unpadded frame so fragments are efficient
* tests: add Noise rehandshake recovery test; document in-memory test bus and autoFlood; stabilize large-network broadcast
* tests: align suite with current behavior (compression, padding, routing, nonce); deflake and stabilize
---------
Co-authored-by: jack <jackjackbits@users.noreply.github.com>