Skip to content

Use Claude Code to sync the docs with mobile SDKs#643

Merged
jhaaaa merged 12 commits intomainfrom
xmtp-android-sync
Feb 5, 2026
Merged

Use Claude Code to sync the docs with mobile SDKs#643
jhaaaa merged 12 commits intomainfrom
xmtp-android-sync

Conversation

@jhaaaa
Copy link
Collaborator

@jhaaaa jhaaaa commented Feb 3, 2026

Update chat app docs to align React Native, Kotlin, and Swift APIs with mobile SDKs using Claude Code, including nanosecond time fields and new streaming/cancellation methods across messaging, sync, and push notification sections

Standardize examples and method signatures across React Native, Kotlin, and Swift, add identity-based DM/group creation, introduce message visibility options, expand streaming APIs with cancel handlers, switch archive parameters to startNs/endNs, and add database connection management and push topic/HMAC resubscribe guidance.

📍Where to Start

Start with push notification topic and resubscribe updates in push-notifs.mdx, then review streaming and cancellation changes in stream.mdx and archive parameter updates in archive-backups.md.


Macroscope summarized 5304a62.


messagesWithReactions() Method (Deferred)

Alternative to enrichedMessages() that only includes reactions. Per earlier decision, documenting only enrichedMessages() is sufficient - messagesWithReactions() is a lower-level API that most developers won't need.

@jhaaaa jhaaaa requested a review from a team as a code owner February 3, 2026 01:33
@vercel
Copy link

vercel bot commented Feb 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs-xmtp-org Ready Ready Preview, Comment Feb 5, 2026 1:03am

Request Review

Copy link

@macroscopeapp macroscopeapp bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend approving @jhaaaa’s PR (analysis below). Auto-approval is disabled due to the CODEOWNERS requirement.

Reasoning

Eligibility
This PR contains only documentation updates (.mdx files) that sync code examples with the current mobile SDK implementations. No runtime code is changed, making this a low-risk documentation-only change.

Ownership
@jhaaaa isn't a code owner for 15 files:

docs/pages/chat-apps/core-messaging/send-messages.mdx
docs/pages/chat-apps/list-stream-sync/sync-and-syncall.mdx
docs/pages/chat-apps/core-messaging/manage-inboxes.mdx
docs/pages/chat-apps/list-stream-sync/sync-preferences.mdx
docs/pages/chat-apps/content-types/read-receipts.mdx
docs/pages/chat-apps/push-notifs/understand-push-notifs.mdx
docs/pages/chat-apps/core-messaging/group-permissions.mdx
docs/pages/chat-apps/core-messaging/group-metadata.mdx
docs/pages/chat-apps/user-consent/support-user-consent.mdx
docs/pages/chat-apps/debug-your-app.mdx
docs/pages/chat-apps/list-stream-sync/stream.mdx
docs/pages/chat-apps/core-messaging/disappearing-messages.mdx
docs/pages/chat-apps/core-messaging/create-conversations.mdx
docs/pages/chat-apps/list-stream-sync/archive-backups.md
docs/pages/chat-apps/push-notifs/push-notifs.mdx


:::

## Manage database connections
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should move this into a dedicated local-database.mdx file, along with the database info here: https://docs.xmtp.org/chat-apps/core-messaging/create-a-client#how-it-works

Let's get this PR merged first and then make that change.

@jhaaaa jhaaaa force-pushed the xmtp-android-sync branch from a737b07 to 756f0e1 Compare February 3, 2026 02:32
```

:::

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had it intentionally leave out the fork recovery info as I believe we consciously held off on surfacing it in the docs for now. Correct?

For example: Configure fork recovery policy, Check conversation fork status

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yea think that still makes sense for now, we need a sprint or two to fix some edge cases for fork recovery before we'd want to surface it. 👍

@@ -3,7 +3,9 @@
You can sync the following preference-related information across multiple existing app installations:
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to restructure how we talk about "preferences," which are a mixture of user content and HMAC key values. So in this doc we talk about syncing these preferences -- but user consent is covered in a separate doc and HMAC keys are only relevant to and covered in the push notifs doc. Right now we are using cross-linking to keep them connected -- but I think there maybe a more seamless way to handle it. Just calling it out here - but will handle in a separate doc PR after we merge this.

@jhaaaa jhaaaa changed the title Use Claude Code to sync the docs with xmtp-android SDK code Use Claude Code to sync the docs with mobile SDKs Feb 3, 2026
To learn more about how `shouldPush` is used in the push notification filtering flow, see [Understand message filtering](/chat-apps/push-notifs/understand-push-notifs#understand-message-filtering).

:::code-group

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React Native SDK limitation for shouldPush: The "Control message
visibility and push notifications" section does not include a React
Native example because the SDK handles shouldPush differently than
Kotlin/Swift. While React Native's SendOptions type includes a
shouldPush property, it is only applied when sending custom content
types (where it's passed through _sendWithJSCodec). For standard text
messages sent via send() or prepareMessage(), the shouldPush option
is not passed through to the native layer. In contrast, Kotlin and
Swift provide MessageVisibilityOptions that can be used with any
message type. This is a feature gap in the React Native SDK that
would need to be addressed upstream before documentation can be
added.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added an issue for this one as well xmtp/xmtp-react-native#769

Get the version of the underlying libxmtp library used by the client:

:::code-group

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The React Native SDK does not have libxmtpVersion or appVersion properties on the Client class.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added a ticket to add this, thanks for flagging - xmtp/xmtp-react-native#768

Copy link
Contributor

@cameronvoell cameronvoell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updates are looking good, and thanks for flagging inconsistencies, ill tag you as those hopefully get fixed in RN soon. Thanks @jhaaaa !

@jhaaaa jhaaaa merged commit 87f4864 into main Feb 5, 2026
5 checks passed
@jhaaaa jhaaaa deleted the xmtp-android-sync branch February 5, 2026 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants