Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 5a9f6ab The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
9 tasks
mikepitre
force-pushed
the
mike/expo-native-sync-engine
branch
from
September 28, 2026 19:35
5fa1eaf to
ec9a54c
Compare
mikepitre
force-pushed
the
mike/expo-native-remove-legacy-sync
branch
from
September 28, 2026 19:35
441f8a7 to
871298f
Compare
Remove configure, getClientToken, syncClientStateFromJs and the clerkNativeClientChanged event from the iOS and Android ClerkExpo module, along with the client observation loop and JS-sync suppression state that only served them. The JS engine now uses configureNative, getDeviceToken, setDeviceToken, refreshClient and clerkNativeClientInvalidated. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
mikepitre
force-pushed
the
mike/expo-native-sync-engine
branch
from
September 28, 2026 20:23
ec9a54c to
1b59ac3
Compare
mikepitre
force-pushed
the
mike/expo-native-remove-legacy-sync
branch
from
September 28, 2026 20:23
871298f to
5a9f6ab
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Stacked on #9956 (stack: main ← #9955 ← #9957 ← #9954 ← #9956 ← this PR). #9956 moved
@clerk/expoto the new client sync engine, which only usesconfigureNative,getDeviceToken,setDeviceToken,refreshClientand theclerkNativeClientInvalidatedevent from #9957. This PR removes the legacy native sync path from@clerk/expo-native-componentsthat nothing calls any more.Removed on iOS (
ClerkExpoModule.swift,ClerkNativeBridge.swift) and Android (ClerkExpoModule.kt):configure(publishableKey, bearerToken),getClientToken()andsyncClientStateFromJs(...).clerkNativeClientChangedevent, with its emitter and payload builder, and the Android companionemitClientChanged.lastObservedClientState,jsOriginatedClientSyncDepthand the client-state snapshot/changes types. On iOS this also removesclientObservationGeneration,syncTokenStateandwaitForLoadedClient. On Android it removesclientStateObserverJob,emitSyncedClientChangedand the unusedsharedInstance.configureNativeno longer starts that loop.Unchanged: auth-flow state and
clerkNativeAuthFlowChanged,getAuthFlowState, pending callback URL handling, client invalidation, and the trusted-device / biometric reverification functions. The shared iOS event queue stays because the auth-flow and invalidation emitters still use it.Native views:
ClerkNativeViewHostattaches its controller onceClerkNativeBridgeis configured, and retries on theclerkNativeSDKDidConfigurenotification.configureNativealready posts that notification when it configures or reconfigures the SDK, so views mounted before configuration still attach. The legacyconfigureposted it only after waiting (up to 3s) forClerk.shared.isLoaded.configureNativeposts it as soon as ClerkKit is configured, as it already did in feat(expo): simplify native client sync engine #9956. The hosted SwiftUI views observeClerk.shared, so they update when the client loads.configureawaiting initialization.ClerkAuthViewModulerecreatesAuthViewwhenClerk.isInitializedflips, and the UserButton/UserProfile views collectClerk.userFlow. Only a comment that referred toconfigure()changed.No TypeScript types for the legacy methods were left in
@clerk/expoor@clerk/expo-native-components. One test mock in@clerk/exponow usesconfigureNativeinstead ofconfigure.@clerk/expo-native-componentsis unreleased, so this uses an empty changeset.Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
🤖 Generated with Claude Code