Update to libxmtp 4.7.0-dev.f5bec47
This PR updates the iOS bindings to libxmtp version 4.7.0-dev.f5bec47.
Changes:
- Updated XMTP.podspec version to 4.7.0-dev.f5bec47
- Updated static binary (LibXMTPSwiftFFI) URL and checksum in Package.swift
- Updated dynamic binary (LibXMTPSwiftFFIDynamic) URL and checksum in Package.swift
- Updated Swift source files (xmtpv3.swift) for both static and dynamic bindings
Base branch: main
Claude finished @xmtptools's task —— View job
PR Review Complete
- [x] Review Package.swift changes (binary URLs and checksums)
- [x] Review XMTP.podspec version update
- [x] Analyze xmtpv3.swift changes for API modifications
- [x] Check for security, performance, and quality concerns
- [x] Provide comprehensive review feedback
Summary
This PR updates the iOS bindings from libxmtp 1.6.1-rc2 to 4.7.0-dev.f5bec47. The changes are primarily auto-generated Swift bindings from the Rust uniffi toolchain.
Review Findings
✅ Looks Good
Package.swift & XMTP.podspec:
- Binary URL correctly points to
swift-bindings-1.7.0-dev.f5bec47release - SHA256 checksum is properly updated (
29d7aef...) - Version bump is consistent across both files
New Features (from binding changes):
streamMessageDeletions()- Callback for disappearing messages worker deletionsinsertedAtNs()- New timestamp accessor onFfiDecodedMessageFfiMessageDeletionCallbackprotocol - Proper callback interface for deletion notifications
Code Quality:
- Auto-generated code follows consistent uniffi patterns
- Proper memory management with
uniffiClonePointer()anddeinit - Thread-safety maintained with
@unchecked SendableandNSLock
⚠️ Minor Observations
-
New dynamic target file:
Sources/XMTPiOSDynamic/Libxmtp/xmtpv3.swiftis added (15,533 lines) but I don't see a corresponding target definition inPackage.swift. Verify this is intentional - may need to be added to the package manifest if it should be a separate dynamic library target. -
Dev version: This is a
-devprerelease version. Ensure this is expected for the current development cycle. -
Large line changes: 886 additions to the static bindings indicate significant API additions in libxmtp. Consider documenting the new capabilities in the SDK's public API if they're exposed to users.
🔒 Security
- No hardcoded secrets or credentials
- URLs point to official xmtp GitHub releases
- Checksums properly validate binary integrity
Recommendation
Approve - This is a standard automated libxmtp update with proper checksums and consistent versioning. The new APIs (streamMessageDeletions, insertedAtNs) follow existing patterns and are well-structured.
Consider:
- Verifying if the dynamic target needs Package.swift configuration
- Adding integration tests for the new
streamMessageDeletionsfunctionality if it's a key feature
Update Swift bindings to libxmtp 4.7.0-dev.f5bec47 and add FfiConversationsProtocol.streamMessageDeletions with message insertion timestamp support
Bumps the FFI artifact and CocoaPods version to 4.7.0-dev.f5bec47, adds a deletion stream callback via FfiConversationsProtocol.streamMessageDeletions, introduces insertion timestamp access on decoded messages and messages, and extends FFI types/enums to carry intents, actions, and sort options.
📍Where to Start
Start with the new stream API in FfiConversationsProtocol.streamMessageDeletions in xmtpv3.swift; then review the added FFI callback interface and converters nearby.
📊 Macroscope summarized 9d053a6. 1 file reviewed, 27 issues evaluated, 25 issues filtered, 1 comment posted. View details