Releases: Olib-AI/PoolChat
Releases · Olib-AI/PoolChat
v1.1.0
Concurrency Fixes
- PoolChatConfiguration — Mutable statics (
logger,rejectUnencryptedMessages,enableHistorySync) are now protected byNSLock(were unguarded data races) - VoiceRecordingService — Removed unnecessary
Task { @MainActor in }wrappers from timer closures (already on main thread; was creating 10 Task allocations/sec) - PoolChatViewModel — Setup Tasks are now tracked in an array, cancelled on re-entry and
terminate()to prevent racing duplicate tasks on reconnect; addedTask.isCancelledchecks for cooperative cancellation
v1.0.0
PoolChat v1.0.0
Initial public release — end-to-end encrypted mesh chat for iOS and macOS.
Features
- Curve25519 ECDH + HKDF-SHA256 + AES-256-GCM end-to-end encryption
- Trust-On-First-Use (TOFU) key verification model
- Key fingerprint verification for MITM detection
- Group and private chat modes
- Rich message types (text, images, voice notes, emoji, polls, reactions)
- EXIF/GPS metadata stripped from images before sending
- Encrypted chat history persistence via SecureStorageProvider protocol
- Configurable history sync for new members
- Voice recording with AVFoundation
- Relay-aware key exchange for mesh network peers
- Unencrypted message rejection (default: on)
- Local notifications for background messages
- Built-in SwiftUI views
- Cross-platform (iOS + macOS)
- Configurable logging and storage via protocol injection
Security
- 3 laps of security audits completed
- All CRITICAL, HIGH, and MEDIUM findings resolved
- Ready for public audit
Requirements
- iOS 17.0+ / macOS 14.0+
- Swift 6.0+
- Xcode 16+
- ConnectionPool v1.0.0+