xmtp-ios icon indicating copy to clipboard operation
xmtp-ios copied to clipboard

Update to libxmtp 4.7.0-dev.f5bec47

Open xmtptools opened this issue 1 month ago • 2 comments

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

xmtptools avatar Nov 19 '25 20:11 xmtptools

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.f5bec47 release
  • SHA256 checksum is properly updated (29d7aef...)
  • Version bump is consistent across both files

New Features (from binding changes):

  • streamMessageDeletions() - Callback for disappearing messages worker deletions
  • insertedAtNs() - New timestamp accessor on FfiDecodedMessage
  • FfiMessageDeletionCallback protocol - Proper callback interface for deletion notifications

Code Quality:

  • Auto-generated code follows consistent uniffi patterns
  • Proper memory management with uniffiClonePointer() and deinit
  • Thread-safety maintained with @unchecked Sendable and NSLock

⚠️ Minor Observations

  1. New dynamic target file: Sources/XMTPiOSDynamic/Libxmtp/xmtpv3.swift is added (15,533 lines) but I don't see a corresponding target definition in Package.swift. Verify this is intentional - may need to be added to the package manifest if it should be a separate dynamic library target.

  2. Dev version: This is a -dev prerelease version. Ensure this is expected for the current development cycle.

  3. 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 streamMessageDeletions functionality if it's a key feature

claude[bot] avatar Nov 19 '25 20:11 claude[bot]

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

macroscopeapp[bot] avatar Nov 19 '25 20:11 macroscopeapp[bot]