Skip to content

feat(expo): add iOS Google sign-in hint - #8906

Merged
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default
Jun 18, 2026
Merged

feat(expo): add iOS Google sign-in hint#8906
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default

Conversation

@mikepitre

@mikepitremikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an iOS-only hint option for Google Sign-In and documents filterByAuthorizedAccounts as Android-only.

Reasoning

Google does not document these as one shared cross-platform option. The Android Credential Manager API exposes setFilterByAuthorizedAccounts(boolean) on GetGoogleIdOption.Builder, where it controls whether the account picker is limited to accounts already authorized for the app. The iOS Google Sign-In API exposes hint on GIDSignIn.signIn(...), where it can prefill or prioritize a user ID or email address but does not strictly filter the account picker.

This keeps the Expo API usable from one shared call site: apps can pass both options, Android consumes filterByAuthorizedAccounts and ignores hint, and iOS consumes hint and ignores filterByAuthorizedAccounts.

Backward compatibility

This is additive for JavaScript callers: existing signIn calls continue to work, and Android keeps the existing filterByAuthorizedAccounts behavior and default. On iOS, filterByAuthorizedAccounts is now treated as an Android-only option. A previous implementation briefly mapped that option to an implicit restored-user email hint on iOS, but that did not match Google’s platform APIs because hint does not strictly filter the account picker. Use the new hint option when an iOS sign-in hint is desired.

@vercel

vercelBot commented Jun 17, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreview, CommentJun 17, 2026 9:51pm
swingsetReadyReadyPreview, CommentJun 17, 2026 9:51pm

Request Review

@changeset-bot

changeset-botBot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9474fb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
@clerk/expoPatch

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

@mikepitremikepitre changed the title Clarify Google One Tap platform defaults in Expo docsdocs(expo): clarify Google One Tap platform defaultsJun 17, 2026
@mikepitre

Copy link
Copy Markdown
ContributorAuthor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit:1f98539c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai

coderabbitaiBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an optional hint parameter to the SignInParams type for iOS Google Sign-In account prefilling. The Swift ClerkGoogleSignInModule now reads hint directly from the incoming params. JSDoc for filterByAuthorizedAccounts is updated across types and the sign-in class to explicitly mark it as Android-only.

Changes

iOS hint support and platform-specific docs

Layer / File(s)Summary
SignInParams type: hint field and platform docs
packages/expo/src/google-one-tap/types.ts, packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
Adds optional hint?: string to SignInParams with iOS-only documentation and a no-op note for Android; updates filterByAuthorizedAccounts JSDoc to explicitly mark it Android-only (no-op on iOS).
Swift signIn: read hint from params
packages/expo/ios/ClerkGoogleSignInModule.swift
Removes the previous logic that derived hint from filterByAuthorizedAccounts and the current user's email; now reads hint directly as an optional String from params?["hint"].
Changeset
.changeset/bright-google-docs.md
Declares a patch release for @clerk/expo describing the new iOS hint option and the Android-only clarification for filterByAuthorizedAccounts.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • clerk/javascript#8901: Refactors the same ClerkGoogleSignInModule.swiftsignIn implementation using Expo ModulesCore, directly overlapping with the hint param handling in this PR.
  • clerk/javascript#8903: Modifies the iOS ClerkGoogleSignInModule.swiftsignIn flow around filterByAuthorizedAccounts, the same code path this PR changes.
  • clerk/javascript#8905: Overlaps on signIn behavior in ClerkGoogleSignInModule.swift around iOS filterByAuthorizedAccounts/hint derivation.

Suggested reviewers

  • wobsoriano

🐇 A hint for iOS, a hop of delight,
Android and iOS now split left and right.
No more deriving from email on hand,
Just read from the params — as the platform planned.
The rabbit approves this cross-platform feat! 🍎🤖

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(expo): add iOS Google sign-in hint' directly and accurately summarizes the main change: adding a new iOS-specific hint parameter for Google Sign-In in the Expo package.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mikepitre
mikepitreforce-pushed the mike/docs-google-signin-platform-default branch from 1f98539 to 9c6fe1cCompareJune 17, 2026 21:45
@mikepitremikepitre changed the title docs(expo): clarify Google One Tap platform defaultsfeat(expo): add iOS Google sign-in hintJun 17, 2026

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:9474fb3c67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

let hint: String? = filterByAuthorized
? GIDSignIn.sharedInstance.currentUser?.profile?.email
: nil
let hint = params?["hint"] as? String

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the iOS filter hint fallback

For iOS callers that already pass filterByAuthorizedAccounts: true, this patch release now drops the only behavior that flag had: the previous code used the current Google user's email as the hint. Those callers will silently stop getting the returning-account hint unless they also adopt the new hint option, which changes behavior for existing consumers of the public signIn params. Please keep the new explicit hint but fall back to the old filterByAuthorizedAccounts-based hint when no explicit hint is provided.

Useful? React with 👍 / 👎.

@mikepitremikepitreJun 17, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

See the backward compatability section of the PR body

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T21:56:00.727Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/expo

Current version: 3.4.4
Recommended bump: MINOR → 3.5.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: SignInParams
 export type SignInParams = {
nonce?: string;
filterByAuthorizedAccounts?: boolean;
+ hint?: string;
};

Static analyzer: Breaking change in type alias SignInParams: Type changed: {nonce?:string;filterByAuthorizedAccounts?:boolean;}{nonce?:string;filterByAuthorizedAccounts?:boolean;hint?:string;}

🤖 AI review (reclassified as non-breaking) (97%): A new optional property hint? is added to SignInParams, which is an input/parameter type; existing consumers who construct or pass this object are unaffected because the field is optional and they need not supply it.


Report generated by Break Check

Last ran on 9474fb3.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts`:
- Around line 88-89: The JSDoc for the hint parameter in
ClerkGoogleOneTapSignIn.ts is incomplete and lacks the helpful detail provided
in the corresponding type definition in types.ts. Enhance the JSDoc for the hint
parameter to include comprehensive documentation that explains what values it
accepts (user ID or email address), how it behaves (may prefill or prioritize an
account), and clarify that it does not restrict the account picker. Reference
the detailed documentation in types.ts (lines 54-60) as a guide to match the
level of detail and customer-facing clarity needed for the generated Clerk Docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: ca9aec07-e321-405e-925d-a115fcd0a609

📥 Commits

Reviewing files that changed from the base of the PR and between f4488f5 and 9474fb3.

📒 Files selected for processing (4)
  • .changeset/bright-google-docs.md
  • packages/expo/ios/ClerkGoogleSignInModule.swift
  • packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
  • packages/expo/src/google-one-tap/types.ts

Comment threadpackages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
@pkg-pr-new

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8906

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8906

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8906

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8906

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@8906

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8906

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8906

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8906

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8906

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8906

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8906

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8906

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8906

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8906

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8906

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8906

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8906

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8906

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8906

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8906

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8906

commit: 9474fb3

@wobsorianowobsoriano left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good

@wobsoriano
wobsoriano merged commit 15b059c into mainJun 18, 2026
119 of 121 checks passed
@wobsoriano
wobsoriano deleted the mike/docs-google-signin-platform-default branch June 18, 2026 19:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mikepitre@wobsoriano
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
feat(expo): add iOS Google sign-in hint by mikepitre · Pull Request #8906 · clerk/javascript · GitHub
Skip to content

feat(expo): add iOS Google sign-in hint - #8906

Merged
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default
Jun 18, 2026
Merged

feat(expo): add iOS Google sign-in hint#8906
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default

Conversation

@mikepitre

@mikepitremikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an iOS-only hint option for Google Sign-In and documents filterByAuthorizedAccounts as Android-only.

Reasoning

Google does not document these as one shared cross-platform option. The Android Credential Manager API exposes setFilterByAuthorizedAccounts(boolean) on GetGoogleIdOption.Builder, where it controls whether the account picker is limited to accounts already authorized for the app. The iOS Google Sign-In API exposes hint on GIDSignIn.signIn(...), where it can prefill or prioritize a user ID or email address but does not strictly filter the account picker.

This keeps the Expo API usable from one shared call site: apps can pass both options, Android consumes filterByAuthorizedAccounts and ignores hint, and iOS consumes hint and ignores filterByAuthorizedAccounts.

Backward compatibility

This is additive for JavaScript callers: existing signIn calls continue to work, and Android keeps the existing filterByAuthorizedAccounts behavior and default. On iOS, filterByAuthorizedAccounts is now treated as an Android-only option. A previous implementation briefly mapped that option to an implicit restored-user email hint on iOS, but that did not match Google’s platform APIs because hint does not strictly filter the account picker. Use the new hint option when an iOS sign-in hint is desired.

@vercel

vercelBot commented Jun 17, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreview, CommentJun 17, 2026 9:51pm
swingsetReadyReadyPreview, CommentJun 17, 2026 9:51pm

Request Review

@changeset-bot

changeset-botBot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9474fb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
@clerk/expoPatch

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

@mikepitremikepitre changed the title Clarify Google One Tap platform defaults in Expo docsdocs(expo): clarify Google One Tap platform defaultsJun 17, 2026
@mikepitre

Copy link
Copy Markdown
ContributorAuthor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit:1f98539c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai

coderabbitaiBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an optional hint parameter to the SignInParams type for iOS Google Sign-In account prefilling. The Swift ClerkGoogleSignInModule now reads hint directly from the incoming params. JSDoc for filterByAuthorizedAccounts is updated across types and the sign-in class to explicitly mark it as Android-only.

Changes

iOS hint support and platform-specific docs

Layer / File(s)Summary
SignInParams type: hint field and platform docs
packages/expo/src/google-one-tap/types.ts, packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
Adds optional hint?: string to SignInParams with iOS-only documentation and a no-op note for Android; updates filterByAuthorizedAccounts JSDoc to explicitly mark it Android-only (no-op on iOS).
Swift signIn: read hint from params
packages/expo/ios/ClerkGoogleSignInModule.swift
Removes the previous logic that derived hint from filterByAuthorizedAccounts and the current user's email; now reads hint directly as an optional String from params?["hint"].
Changeset
.changeset/bright-google-docs.md
Declares a patch release for @clerk/expo describing the new iOS hint option and the Android-only clarification for filterByAuthorizedAccounts.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • clerk/javascript#8901: Refactors the same ClerkGoogleSignInModule.swiftsignIn implementation using Expo ModulesCore, directly overlapping with the hint param handling in this PR.
  • clerk/javascript#8903: Modifies the iOS ClerkGoogleSignInModule.swiftsignIn flow around filterByAuthorizedAccounts, the same code path this PR changes.
  • clerk/javascript#8905: Overlaps on signIn behavior in ClerkGoogleSignInModule.swift around iOS filterByAuthorizedAccounts/hint derivation.

Suggested reviewers

  • wobsoriano

🐇 A hint for iOS, a hop of delight,
Android and iOS now split left and right.
No more deriving from email on hand,
Just read from the params — as the platform planned.
The rabbit approves this cross-platform feat! 🍎🤖

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(expo): add iOS Google sign-in hint' directly and accurately summarizes the main change: adding a new iOS-specific hint parameter for Google Sign-In in the Expo package.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mikepitre
mikepitreforce-pushed the mike/docs-google-signin-platform-default branch from 1f98539 to 9c6fe1cCompareJune 17, 2026 21:45
@mikepitremikepitre changed the title docs(expo): clarify Google One Tap platform defaultsfeat(expo): add iOS Google sign-in hintJun 17, 2026

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:9474fb3c67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

let hint: String? = filterByAuthorized
? GIDSignIn.sharedInstance.currentUser?.profile?.email
: nil
let hint = params?["hint"] as? String

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the iOS filter hint fallback

For iOS callers that already pass filterByAuthorizedAccounts: true, this patch release now drops the only behavior that flag had: the previous code used the current Google user's email as the hint. Those callers will silently stop getting the returning-account hint unless they also adopt the new hint option, which changes behavior for existing consumers of the public signIn params. Please keep the new explicit hint but fall back to the old filterByAuthorizedAccounts-based hint when no explicit hint is provided.

Useful? React with 👍 / 👎.

@mikepitremikepitreJun 17, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

See the backward compatability section of the PR body

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T21:56:00.727Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/expo

Current version: 3.4.4
Recommended bump: MINOR → 3.5.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: SignInParams
 export type SignInParams = {
nonce?: string;
filterByAuthorizedAccounts?: boolean;
+ hint?: string;
};

Static analyzer: Breaking change in type alias SignInParams: Type changed: {nonce?:string;filterByAuthorizedAccounts?:boolean;}{nonce?:string;filterByAuthorizedAccounts?:boolean;hint?:string;}

🤖 AI review (reclassified as non-breaking) (97%): A new optional property hint? is added to SignInParams, which is an input/parameter type; existing consumers who construct or pass this object are unaffected because the field is optional and they need not supply it.


Report generated by Break Check

Last ran on 9474fb3.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts`:
- Around line 88-89: The JSDoc for the hint parameter in
ClerkGoogleOneTapSignIn.ts is incomplete and lacks the helpful detail provided
in the corresponding type definition in types.ts. Enhance the JSDoc for the hint
parameter to include comprehensive documentation that explains what values it
accepts (user ID or email address), how it behaves (may prefill or prioritize an
account), and clarify that it does not restrict the account picker. Reference
the detailed documentation in types.ts (lines 54-60) as a guide to match the
level of detail and customer-facing clarity needed for the generated Clerk Docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: ca9aec07-e321-405e-925d-a115fcd0a609

📥 Commits

Reviewing files that changed from the base of the PR and between f4488f5 and 9474fb3.

📒 Files selected for processing (4)
  • .changeset/bright-google-docs.md
  • packages/expo/ios/ClerkGoogleSignInModule.swift
  • packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
  • packages/expo/src/google-one-tap/types.ts

Comment threadpackages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
@pkg-pr-new

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8906

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8906

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8906

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8906

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@8906

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8906

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8906

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8906

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8906

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8906

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8906

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8906

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8906

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8906

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8906

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8906

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8906

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8906

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8906

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8906

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8906

commit: 9474fb3

@wobsorianowobsoriano left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good

@wobsoriano
wobsoriano merged commit 15b059c into mainJun 18, 2026
119 of 121 checks passed
@wobsoriano
wobsoriano deleted the mike/docs-google-signin-platform-default branch June 18, 2026 19:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mikepitre@wobsoriano
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(expo): add iOS Google sign-in hint by mikepitre · Pull Request #8906 · clerk/javascript · GitHub
Skip to content

feat(expo): add iOS Google sign-in hint - #8906

Merged
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default
Jun 18, 2026
Merged

feat(expo): add iOS Google sign-in hint#8906
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default

Conversation

@mikepitre

@mikepitremikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an iOS-only hint option for Google Sign-In and documents filterByAuthorizedAccounts as Android-only.

Reasoning

Google does not document these as one shared cross-platform option. The Android Credential Manager API exposes setFilterByAuthorizedAccounts(boolean) on GetGoogleIdOption.Builder, where it controls whether the account picker is limited to accounts already authorized for the app. The iOS Google Sign-In API exposes hint on GIDSignIn.signIn(...), where it can prefill or prioritize a user ID or email address but does not strictly filter the account picker.

This keeps the Expo API usable from one shared call site: apps can pass both options, Android consumes filterByAuthorizedAccounts and ignores hint, and iOS consumes hint and ignores filterByAuthorizedAccounts.

Backward compatibility

This is additive for JavaScript callers: existing signIn calls continue to work, and Android keeps the existing filterByAuthorizedAccounts behavior and default. On iOS, filterByAuthorizedAccounts is now treated as an Android-only option. A previous implementation briefly mapped that option to an implicit restored-user email hint on iOS, but that did not match Google’s platform APIs because hint does not strictly filter the account picker. Use the new hint option when an iOS sign-in hint is desired.

@vercel

vercelBot commented Jun 17, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreview, CommentJun 17, 2026 9:51pm
swingsetReadyReadyPreview, CommentJun 17, 2026 9:51pm

Request Review

@changeset-bot

changeset-botBot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9474fb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
@clerk/expoPatch

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

@mikepitremikepitre changed the title Clarify Google One Tap platform defaults in Expo docsdocs(expo): clarify Google One Tap platform defaultsJun 17, 2026
@mikepitre

Copy link
Copy Markdown
ContributorAuthor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit:1f98539c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai

coderabbitaiBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an optional hint parameter to the SignInParams type for iOS Google Sign-In account prefilling. The Swift ClerkGoogleSignInModule now reads hint directly from the incoming params. JSDoc for filterByAuthorizedAccounts is updated across types and the sign-in class to explicitly mark it as Android-only.

Changes

iOS hint support and platform-specific docs

Layer / File(s)Summary
SignInParams type: hint field and platform docs
packages/expo/src/google-one-tap/types.ts, packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
Adds optional hint?: string to SignInParams with iOS-only documentation and a no-op note for Android; updates filterByAuthorizedAccounts JSDoc to explicitly mark it Android-only (no-op on iOS).
Swift signIn: read hint from params
packages/expo/ios/ClerkGoogleSignInModule.swift
Removes the previous logic that derived hint from filterByAuthorizedAccounts and the current user's email; now reads hint directly as an optional String from params?["hint"].
Changeset
.changeset/bright-google-docs.md
Declares a patch release for @clerk/expo describing the new iOS hint option and the Android-only clarification for filterByAuthorizedAccounts.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • clerk/javascript#8901: Refactors the same ClerkGoogleSignInModule.swiftsignIn implementation using Expo ModulesCore, directly overlapping with the hint param handling in this PR.
  • clerk/javascript#8903: Modifies the iOS ClerkGoogleSignInModule.swiftsignIn flow around filterByAuthorizedAccounts, the same code path this PR changes.
  • clerk/javascript#8905: Overlaps on signIn behavior in ClerkGoogleSignInModule.swift around iOS filterByAuthorizedAccounts/hint derivation.

Suggested reviewers

  • wobsoriano

🐇 A hint for iOS, a hop of delight,
Android and iOS now split left and right.
No more deriving from email on hand,
Just read from the params — as the platform planned.
The rabbit approves this cross-platform feat! 🍎🤖

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(expo): add iOS Google sign-in hint' directly and accurately summarizes the main change: adding a new iOS-specific hint parameter for Google Sign-In in the Expo package.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mikepitre
mikepitreforce-pushed the mike/docs-google-signin-platform-default branch from 1f98539 to 9c6fe1cCompareJune 17, 2026 21:45
@mikepitremikepitre changed the title docs(expo): clarify Google One Tap platform defaultsfeat(expo): add iOS Google sign-in hintJun 17, 2026

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:9474fb3c67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

let hint: String? = filterByAuthorized
? GIDSignIn.sharedInstance.currentUser?.profile?.email
: nil
let hint = params?["hint"] as? String

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the iOS filter hint fallback

For iOS callers that already pass filterByAuthorizedAccounts: true, this patch release now drops the only behavior that flag had: the previous code used the current Google user's email as the hint. Those callers will silently stop getting the returning-account hint unless they also adopt the new hint option, which changes behavior for existing consumers of the public signIn params. Please keep the new explicit hint but fall back to the old filterByAuthorizedAccounts-based hint when no explicit hint is provided.

Useful? React with 👍 / 👎.

@mikepitremikepitreJun 17, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

See the backward compatability section of the PR body

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T21:56:00.727Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/expo

Current version: 3.4.4
Recommended bump: MINOR → 3.5.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: SignInParams
 export type SignInParams = {
nonce?: string;
filterByAuthorizedAccounts?: boolean;
+ hint?: string;
};

Static analyzer: Breaking change in type alias SignInParams: Type changed: {nonce?:string;filterByAuthorizedAccounts?:boolean;}{nonce?:string;filterByAuthorizedAccounts?:boolean;hint?:string;}

🤖 AI review (reclassified as non-breaking) (97%): A new optional property hint? is added to SignInParams, which is an input/parameter type; existing consumers who construct or pass this object are unaffected because the field is optional and they need not supply it.


Report generated by Break Check

Last ran on 9474fb3.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts`:
- Around line 88-89: The JSDoc for the hint parameter in
ClerkGoogleOneTapSignIn.ts is incomplete and lacks the helpful detail provided
in the corresponding type definition in types.ts. Enhance the JSDoc for the hint
parameter to include comprehensive documentation that explains what values it
accepts (user ID or email address), how it behaves (may prefill or prioritize an
account), and clarify that it does not restrict the account picker. Reference
the detailed documentation in types.ts (lines 54-60) as a guide to match the
level of detail and customer-facing clarity needed for the generated Clerk Docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: ca9aec07-e321-405e-925d-a115fcd0a609

📥 Commits

Reviewing files that changed from the base of the PR and between f4488f5 and 9474fb3.

📒 Files selected for processing (4)
  • .changeset/bright-google-docs.md
  • packages/expo/ios/ClerkGoogleSignInModule.swift
  • packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
  • packages/expo/src/google-one-tap/types.ts

Comment threadpackages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
@pkg-pr-new

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8906

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8906

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8906

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8906

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@8906

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8906

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8906

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8906

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8906

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8906

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8906

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8906

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8906

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8906

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8906

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8906

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8906

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8906

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8906

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8906

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8906

commit: 9474fb3

@wobsorianowobsoriano left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good

@wobsoriano
wobsoriano merged commit 15b059c into mainJun 18, 2026
119 of 121 checks passed
@wobsoriano
wobsoriano deleted the mike/docs-google-signin-platform-default branch June 18, 2026 19:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mikepitre@wobsoriano
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(expo): add iOS Google sign-in hint by mikepitre · Pull Request #8906 · clerk/javascript · GitHub
Skip to content

feat(expo): add iOS Google sign-in hint - #8906

Merged
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default
Jun 18, 2026
Merged

feat(expo): add iOS Google sign-in hint#8906
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default

Conversation

@mikepitre

@mikepitremikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an iOS-only hint option for Google Sign-In and documents filterByAuthorizedAccounts as Android-only.

Reasoning

Google does not document these as one shared cross-platform option. The Android Credential Manager API exposes setFilterByAuthorizedAccounts(boolean) on GetGoogleIdOption.Builder, where it controls whether the account picker is limited to accounts already authorized for the app. The iOS Google Sign-In API exposes hint on GIDSignIn.signIn(...), where it can prefill or prioritize a user ID or email address but does not strictly filter the account picker.

This keeps the Expo API usable from one shared call site: apps can pass both options, Android consumes filterByAuthorizedAccounts and ignores hint, and iOS consumes hint and ignores filterByAuthorizedAccounts.

Backward compatibility

This is additive for JavaScript callers: existing signIn calls continue to work, and Android keeps the existing filterByAuthorizedAccounts behavior and default. On iOS, filterByAuthorizedAccounts is now treated as an Android-only option. A previous implementation briefly mapped that option to an implicit restored-user email hint on iOS, but that did not match Google’s platform APIs because hint does not strictly filter the account picker. Use the new hint option when an iOS sign-in hint is desired.

@vercel

vercelBot commented Jun 17, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreview, CommentJun 17, 2026 9:51pm
swingsetReadyReadyPreview, CommentJun 17, 2026 9:51pm

Request Review

@changeset-bot

changeset-botBot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9474fb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
@clerk/expoPatch

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

@mikepitremikepitre changed the title Clarify Google One Tap platform defaults in Expo docsdocs(expo): clarify Google One Tap platform defaultsJun 17, 2026
@mikepitre

Copy link
Copy Markdown
ContributorAuthor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit:1f98539c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai

coderabbitaiBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an optional hint parameter to the SignInParams type for iOS Google Sign-In account prefilling. The Swift ClerkGoogleSignInModule now reads hint directly from the incoming params. JSDoc for filterByAuthorizedAccounts is updated across types and the sign-in class to explicitly mark it as Android-only.

Changes

iOS hint support and platform-specific docs

Layer / File(s)Summary
SignInParams type: hint field and platform docs
packages/expo/src/google-one-tap/types.ts, packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
Adds optional hint?: string to SignInParams with iOS-only documentation and a no-op note for Android; updates filterByAuthorizedAccounts JSDoc to explicitly mark it Android-only (no-op on iOS).
Swift signIn: read hint from params
packages/expo/ios/ClerkGoogleSignInModule.swift
Removes the previous logic that derived hint from filterByAuthorizedAccounts and the current user's email; now reads hint directly as an optional String from params?["hint"].
Changeset
.changeset/bright-google-docs.md
Declares a patch release for @clerk/expo describing the new iOS hint option and the Android-only clarification for filterByAuthorizedAccounts.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • clerk/javascript#8901: Refactors the same ClerkGoogleSignInModule.swiftsignIn implementation using Expo ModulesCore, directly overlapping with the hint param handling in this PR.
  • clerk/javascript#8903: Modifies the iOS ClerkGoogleSignInModule.swiftsignIn flow around filterByAuthorizedAccounts, the same code path this PR changes.
  • clerk/javascript#8905: Overlaps on signIn behavior in ClerkGoogleSignInModule.swift around iOS filterByAuthorizedAccounts/hint derivation.

Suggested reviewers

  • wobsoriano

🐇 A hint for iOS, a hop of delight,
Android and iOS now split left and right.
No more deriving from email on hand,
Just read from the params — as the platform planned.
The rabbit approves this cross-platform feat! 🍎🤖

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(expo): add iOS Google sign-in hint' directly and accurately summarizes the main change: adding a new iOS-specific hint parameter for Google Sign-In in the Expo package.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mikepitre
mikepitreforce-pushed the mike/docs-google-signin-platform-default branch from 1f98539 to 9c6fe1cCompareJune 17, 2026 21:45
@mikepitremikepitre changed the title docs(expo): clarify Google One Tap platform defaultsfeat(expo): add iOS Google sign-in hintJun 17, 2026

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:9474fb3c67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

let hint: String? = filterByAuthorized
? GIDSignIn.sharedInstance.currentUser?.profile?.email
: nil
let hint = params?["hint"] as? String

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the iOS filter hint fallback

For iOS callers that already pass filterByAuthorizedAccounts: true, this patch release now drops the only behavior that flag had: the previous code used the current Google user's email as the hint. Those callers will silently stop getting the returning-account hint unless they also adopt the new hint option, which changes behavior for existing consumers of the public signIn params. Please keep the new explicit hint but fall back to the old filterByAuthorizedAccounts-based hint when no explicit hint is provided.

Useful? React with 👍 / 👎.

@mikepitremikepitreJun 17, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

See the backward compatability section of the PR body

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T21:56:00.727Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/expo

Current version: 3.4.4
Recommended bump: MINOR → 3.5.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: SignInParams
 export type SignInParams = {
nonce?: string;
filterByAuthorizedAccounts?: boolean;
+ hint?: string;
};

Static analyzer: Breaking change in type alias SignInParams: Type changed: {nonce?:string;filterByAuthorizedAccounts?:boolean;}{nonce?:string;filterByAuthorizedAccounts?:boolean;hint?:string;}

🤖 AI review (reclassified as non-breaking) (97%): A new optional property hint? is added to SignInParams, which is an input/parameter type; existing consumers who construct or pass this object are unaffected because the field is optional and they need not supply it.


Report generated by Break Check

Last ran on 9474fb3.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts`:
- Around line 88-89: The JSDoc for the hint parameter in
ClerkGoogleOneTapSignIn.ts is incomplete and lacks the helpful detail provided
in the corresponding type definition in types.ts. Enhance the JSDoc for the hint
parameter to include comprehensive documentation that explains what values it
accepts (user ID or email address), how it behaves (may prefill or prioritize an
account), and clarify that it does not restrict the account picker. Reference
the detailed documentation in types.ts (lines 54-60) as a guide to match the
level of detail and customer-facing clarity needed for the generated Clerk Docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: ca9aec07-e321-405e-925d-a115fcd0a609

📥 Commits

Reviewing files that changed from the base of the PR and between f4488f5 and 9474fb3.

📒 Files selected for processing (4)
  • .changeset/bright-google-docs.md
  • packages/expo/ios/ClerkGoogleSignInModule.swift
  • packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
  • packages/expo/src/google-one-tap/types.ts

Comment threadpackages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
@pkg-pr-new

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8906

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8906

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8906

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8906

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@8906

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8906

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8906

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8906

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8906

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8906

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8906

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8906

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8906

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8906

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8906

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8906

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8906

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8906

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8906

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8906

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8906

commit: 9474fb3

@wobsorianowobsoriano left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good

@wobsoriano
wobsoriano merged commit 15b059c into mainJun 18, 2026
119 of 121 checks passed
@wobsoriano
wobsoriano deleted the mike/docs-google-signin-platform-default branch June 18, 2026 19:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mikepitre@wobsoriano
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' feat(expo): add iOS Google sign-in hint by mikepitre · Pull Request #8906 · clerk/javascript · GitHub
Skip to content

feat(expo): add iOS Google sign-in hint - #8906

Merged
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default
Jun 18, 2026
Merged

feat(expo): add iOS Google sign-in hint#8906
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default

Conversation

@mikepitre

@mikepitremikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an iOS-only hint option for Google Sign-In and documents filterByAuthorizedAccounts as Android-only.

Reasoning

Google does not document these as one shared cross-platform option. The Android Credential Manager API exposes setFilterByAuthorizedAccounts(boolean) on GetGoogleIdOption.Builder, where it controls whether the account picker is limited to accounts already authorized for the app. The iOS Google Sign-In API exposes hint on GIDSignIn.signIn(...), where it can prefill or prioritize a user ID or email address but does not strictly filter the account picker.

This keeps the Expo API usable from one shared call site: apps can pass both options, Android consumes filterByAuthorizedAccounts and ignores hint, and iOS consumes hint and ignores filterByAuthorizedAccounts.

Backward compatibility

This is additive for JavaScript callers: existing signIn calls continue to work, and Android keeps the existing filterByAuthorizedAccounts behavior and default. On iOS, filterByAuthorizedAccounts is now treated as an Android-only option. A previous implementation briefly mapped that option to an implicit restored-user email hint on iOS, but that did not match Google’s platform APIs because hint does not strictly filter the account picker. Use the new hint option when an iOS sign-in hint is desired.

@vercel

vercelBot commented Jun 17, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreview, CommentJun 17, 2026 9:51pm
swingsetReadyReadyPreview, CommentJun 17, 2026 9:51pm

Request Review

@changeset-bot

changeset-botBot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9474fb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
@clerk/expoPatch

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

@mikepitremikepitre changed the title Clarify Google One Tap platform defaults in Expo docsdocs(expo): clarify Google One Tap platform defaultsJun 17, 2026
@mikepitre

Copy link
Copy Markdown
ContributorAuthor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit:1f98539c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai

coderabbitaiBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an optional hint parameter to the SignInParams type for iOS Google Sign-In account prefilling. The Swift ClerkGoogleSignInModule now reads hint directly from the incoming params. JSDoc for filterByAuthorizedAccounts is updated across types and the sign-in class to explicitly mark it as Android-only.

Changes

iOS hint support and platform-specific docs

Layer / File(s)Summary
SignInParams type: hint field and platform docs
packages/expo/src/google-one-tap/types.ts, packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
Adds optional hint?: string to SignInParams with iOS-only documentation and a no-op note for Android; updates filterByAuthorizedAccounts JSDoc to explicitly mark it Android-only (no-op on iOS).
Swift signIn: read hint from params
packages/expo/ios/ClerkGoogleSignInModule.swift
Removes the previous logic that derived hint from filterByAuthorizedAccounts and the current user's email; now reads hint directly as an optional String from params?["hint"].
Changeset
.changeset/bright-google-docs.md
Declares a patch release for @clerk/expo describing the new iOS hint option and the Android-only clarification for filterByAuthorizedAccounts.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • clerk/javascript#8901: Refactors the same ClerkGoogleSignInModule.swiftsignIn implementation using Expo ModulesCore, directly overlapping with the hint param handling in this PR.
  • clerk/javascript#8903: Modifies the iOS ClerkGoogleSignInModule.swiftsignIn flow around filterByAuthorizedAccounts, the same code path this PR changes.
  • clerk/javascript#8905: Overlaps on signIn behavior in ClerkGoogleSignInModule.swift around iOS filterByAuthorizedAccounts/hint derivation.

Suggested reviewers

  • wobsoriano

🐇 A hint for iOS, a hop of delight,
Android and iOS now split left and right.
No more deriving from email on hand,
Just read from the params — as the platform planned.
The rabbit approves this cross-platform feat! 🍎🤖

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(expo): add iOS Google sign-in hint' directly and accurately summarizes the main change: adding a new iOS-specific hint parameter for Google Sign-In in the Expo package.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mikepitre
mikepitreforce-pushed the mike/docs-google-signin-platform-default branch from 1f98539 to 9c6fe1cCompareJune 17, 2026 21:45
@mikepitremikepitre changed the title docs(expo): clarify Google One Tap platform defaultsfeat(expo): add iOS Google sign-in hintJun 17, 2026

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:9474fb3c67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

let hint: String? = filterByAuthorized
? GIDSignIn.sharedInstance.currentUser?.profile?.email
: nil
let hint = params?["hint"] as? String

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the iOS filter hint fallback

For iOS callers that already pass filterByAuthorizedAccounts: true, this patch release now drops the only behavior that flag had: the previous code used the current Google user's email as the hint. Those callers will silently stop getting the returning-account hint unless they also adopt the new hint option, which changes behavior for existing consumers of the public signIn params. Please keep the new explicit hint but fall back to the old filterByAuthorizedAccounts-based hint when no explicit hint is provided.

Useful? React with 👍 / 👎.

@mikepitremikepitreJun 17, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

See the backward compatability section of the PR body

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T21:56:00.727Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/expo

Current version: 3.4.4
Recommended bump: MINOR → 3.5.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: SignInParams
 export type SignInParams = {
nonce?: string;
filterByAuthorizedAccounts?: boolean;
+ hint?: string;
};

Static analyzer: Breaking change in type alias SignInParams: Type changed: {nonce?:string;filterByAuthorizedAccounts?:boolean;}{nonce?:string;filterByAuthorizedAccounts?:boolean;hint?:string;}

🤖 AI review (reclassified as non-breaking) (97%): A new optional property hint? is added to SignInParams, which is an input/parameter type; existing consumers who construct or pass this object are unaffected because the field is optional and they need not supply it.


Report generated by Break Check

Last ran on 9474fb3.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts`:
- Around line 88-89: The JSDoc for the hint parameter in
ClerkGoogleOneTapSignIn.ts is incomplete and lacks the helpful detail provided
in the corresponding type definition in types.ts. Enhance the JSDoc for the hint
parameter to include comprehensive documentation that explains what values it
accepts (user ID or email address), how it behaves (may prefill or prioritize an
account), and clarify that it does not restrict the account picker. Reference
the detailed documentation in types.ts (lines 54-60) as a guide to match the
level of detail and customer-facing clarity needed for the generated Clerk Docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: ca9aec07-e321-405e-925d-a115fcd0a609

📥 Commits

Reviewing files that changed from the base of the PR and between f4488f5 and 9474fb3.

📒 Files selected for processing (4)
  • .changeset/bright-google-docs.md
  • packages/expo/ios/ClerkGoogleSignInModule.swift
  • packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
  • packages/expo/src/google-one-tap/types.ts

Comment threadpackages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
@pkg-pr-new

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8906

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8906

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8906

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8906

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@8906

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8906

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8906

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8906

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8906

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8906

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8906

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8906

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8906

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8906

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8906

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8906

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8906

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8906

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8906

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8906

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8906

commit: 9474fb3

@wobsorianowobsoriano left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good

@wobsoriano
wobsoriano merged commit 15b059c into mainJun 18, 2026
119 of 121 checks passed
@wobsoriano
wobsoriano deleted the mike/docs-google-signin-platform-default branch June 18, 2026 19:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mikepitre@wobsoriano
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(expo): add iOS Google sign-in hint by mikepitre · Pull Request #8906 · clerk/javascript · GitHub
Skip to content

feat(expo): add iOS Google sign-in hint - #8906

Merged
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default
Jun 18, 2026
Merged

feat(expo): add iOS Google sign-in hint#8906
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default

Conversation

@mikepitre

@mikepitremikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an iOS-only hint option for Google Sign-In and documents filterByAuthorizedAccounts as Android-only.

Reasoning

Google does not document these as one shared cross-platform option. The Android Credential Manager API exposes setFilterByAuthorizedAccounts(boolean) on GetGoogleIdOption.Builder, where it controls whether the account picker is limited to accounts already authorized for the app. The iOS Google Sign-In API exposes hint on GIDSignIn.signIn(...), where it can prefill or prioritize a user ID or email address but does not strictly filter the account picker.

This keeps the Expo API usable from one shared call site: apps can pass both options, Android consumes filterByAuthorizedAccounts and ignores hint, and iOS consumes hint and ignores filterByAuthorizedAccounts.

Backward compatibility

This is additive for JavaScript callers: existing signIn calls continue to work, and Android keeps the existing filterByAuthorizedAccounts behavior and default. On iOS, filterByAuthorizedAccounts is now treated as an Android-only option. A previous implementation briefly mapped that option to an implicit restored-user email hint on iOS, but that did not match Google’s platform APIs because hint does not strictly filter the account picker. Use the new hint option when an iOS sign-in hint is desired.

@vercel

vercelBot commented Jun 17, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreview, CommentJun 17, 2026 9:51pm
swingsetReadyReadyPreview, CommentJun 17, 2026 9:51pm

Request Review

@changeset-bot

changeset-botBot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9474fb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
@clerk/expoPatch

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

@mikepitremikepitre changed the title Clarify Google One Tap platform defaults in Expo docsdocs(expo): clarify Google One Tap platform defaultsJun 17, 2026
@mikepitre

Copy link
Copy Markdown
ContributorAuthor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit:1f98539c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai

coderabbitaiBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an optional hint parameter to the SignInParams type for iOS Google Sign-In account prefilling. The Swift ClerkGoogleSignInModule now reads hint directly from the incoming params. JSDoc for filterByAuthorizedAccounts is updated across types and the sign-in class to explicitly mark it as Android-only.

Changes

iOS hint support and platform-specific docs

Layer / File(s)Summary
SignInParams type: hint field and platform docs
packages/expo/src/google-one-tap/types.ts, packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
Adds optional hint?: string to SignInParams with iOS-only documentation and a no-op note for Android; updates filterByAuthorizedAccounts JSDoc to explicitly mark it Android-only (no-op on iOS).
Swift signIn: read hint from params
packages/expo/ios/ClerkGoogleSignInModule.swift
Removes the previous logic that derived hint from filterByAuthorizedAccounts and the current user's email; now reads hint directly as an optional String from params?["hint"].
Changeset
.changeset/bright-google-docs.md
Declares a patch release for @clerk/expo describing the new iOS hint option and the Android-only clarification for filterByAuthorizedAccounts.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • clerk/javascript#8901: Refactors the same ClerkGoogleSignInModule.swiftsignIn implementation using Expo ModulesCore, directly overlapping with the hint param handling in this PR.
  • clerk/javascript#8903: Modifies the iOS ClerkGoogleSignInModule.swiftsignIn flow around filterByAuthorizedAccounts, the same code path this PR changes.
  • clerk/javascript#8905: Overlaps on signIn behavior in ClerkGoogleSignInModule.swift around iOS filterByAuthorizedAccounts/hint derivation.

Suggested reviewers

  • wobsoriano

🐇 A hint for iOS, a hop of delight,
Android and iOS now split left and right.
No more deriving from email on hand,
Just read from the params — as the platform planned.
The rabbit approves this cross-platform feat! 🍎🤖

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(expo): add iOS Google sign-in hint' directly and accurately summarizes the main change: adding a new iOS-specific hint parameter for Google Sign-In in the Expo package.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mikepitre
mikepitreforce-pushed the mike/docs-google-signin-platform-default branch from 1f98539 to 9c6fe1cCompareJune 17, 2026 21:45
@mikepitremikepitre changed the title docs(expo): clarify Google One Tap platform defaultsfeat(expo): add iOS Google sign-in hintJun 17, 2026

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:9474fb3c67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

let hint: String? = filterByAuthorized
? GIDSignIn.sharedInstance.currentUser?.profile?.email
: nil
let hint = params?["hint"] as? String

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the iOS filter hint fallback

For iOS callers that already pass filterByAuthorizedAccounts: true, this patch release now drops the only behavior that flag had: the previous code used the current Google user's email as the hint. Those callers will silently stop getting the returning-account hint unless they also adopt the new hint option, which changes behavior for existing consumers of the public signIn params. Please keep the new explicit hint but fall back to the old filterByAuthorizedAccounts-based hint when no explicit hint is provided.

Useful? React with 👍 / 👎.

@mikepitremikepitreJun 17, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

See the backward compatability section of the PR body

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T21:56:00.727Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/expo

Current version: 3.4.4
Recommended bump: MINOR → 3.5.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: SignInParams
 export type SignInParams = {
nonce?: string;
filterByAuthorizedAccounts?: boolean;
+ hint?: string;
};

Static analyzer: Breaking change in type alias SignInParams: Type changed: {nonce?:string;filterByAuthorizedAccounts?:boolean;}{nonce?:string;filterByAuthorizedAccounts?:boolean;hint?:string;}

🤖 AI review (reclassified as non-breaking) (97%): A new optional property hint? is added to SignInParams, which is an input/parameter type; existing consumers who construct or pass this object are unaffected because the field is optional and they need not supply it.


Report generated by Break Check

Last ran on 9474fb3.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts`:
- Around line 88-89: The JSDoc for the hint parameter in
ClerkGoogleOneTapSignIn.ts is incomplete and lacks the helpful detail provided
in the corresponding type definition in types.ts. Enhance the JSDoc for the hint
parameter to include comprehensive documentation that explains what values it
accepts (user ID or email address), how it behaves (may prefill or prioritize an
account), and clarify that it does not restrict the account picker. Reference
the detailed documentation in types.ts (lines 54-60) as a guide to match the
level of detail and customer-facing clarity needed for the generated Clerk Docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: ca9aec07-e321-405e-925d-a115fcd0a609

📥 Commits

Reviewing files that changed from the base of the PR and between f4488f5 and 9474fb3.

📒 Files selected for processing (4)
  • .changeset/bright-google-docs.md
  • packages/expo/ios/ClerkGoogleSignInModule.swift
  • packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
  • packages/expo/src/google-one-tap/types.ts

Comment threadpackages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
@pkg-pr-new

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8906

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8906

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8906

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8906

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@8906

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8906

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8906

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8906

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8906

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8906

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8906

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8906

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8906

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8906

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8906

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8906

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8906

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8906

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8906

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8906

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8906

commit: 9474fb3

@wobsorianowobsoriano left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good

@wobsoriano
wobsoriano merged commit 15b059c into mainJun 18, 2026
119 of 121 checks passed
@wobsoriano
wobsoriano deleted the mike/docs-google-signin-platform-default branch June 18, 2026 19:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mikepitre@wobsoriano
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(expo): add iOS Google sign-in hint by mikepitre · Pull Request #8906 · clerk/javascript · GitHub
Skip to content

feat(expo): add iOS Google sign-in hint - #8906

Merged
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default
Jun 18, 2026
Merged

feat(expo): add iOS Google sign-in hint#8906
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default

Conversation

@mikepitre

@mikepitremikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an iOS-only hint option for Google Sign-In and documents filterByAuthorizedAccounts as Android-only.

Reasoning

Google does not document these as one shared cross-platform option. The Android Credential Manager API exposes setFilterByAuthorizedAccounts(boolean) on GetGoogleIdOption.Builder, where it controls whether the account picker is limited to accounts already authorized for the app. The iOS Google Sign-In API exposes hint on GIDSignIn.signIn(...), where it can prefill or prioritize a user ID or email address but does not strictly filter the account picker.

This keeps the Expo API usable from one shared call site: apps can pass both options, Android consumes filterByAuthorizedAccounts and ignores hint, and iOS consumes hint and ignores filterByAuthorizedAccounts.

Backward compatibility

This is additive for JavaScript callers: existing signIn calls continue to work, and Android keeps the existing filterByAuthorizedAccounts behavior and default. On iOS, filterByAuthorizedAccounts is now treated as an Android-only option. A previous implementation briefly mapped that option to an implicit restored-user email hint on iOS, but that did not match Google’s platform APIs because hint does not strictly filter the account picker. Use the new hint option when an iOS sign-in hint is desired.

@vercel

vercelBot commented Jun 17, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreview, CommentJun 17, 2026 9:51pm
swingsetReadyReadyPreview, CommentJun 17, 2026 9:51pm

Request Review

@changeset-bot

changeset-botBot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9474fb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
@clerk/expoPatch

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

@mikepitremikepitre changed the title Clarify Google One Tap platform defaults in Expo docsdocs(expo): clarify Google One Tap platform defaultsJun 17, 2026
@mikepitre

Copy link
Copy Markdown
ContributorAuthor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit:1f98539c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai

coderabbitaiBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an optional hint parameter to the SignInParams type for iOS Google Sign-In account prefilling. The Swift ClerkGoogleSignInModule now reads hint directly from the incoming params. JSDoc for filterByAuthorizedAccounts is updated across types and the sign-in class to explicitly mark it as Android-only.

Changes

iOS hint support and platform-specific docs

Layer / File(s)Summary
SignInParams type: hint field and platform docs
packages/expo/src/google-one-tap/types.ts, packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
Adds optional hint?: string to SignInParams with iOS-only documentation and a no-op note for Android; updates filterByAuthorizedAccounts JSDoc to explicitly mark it Android-only (no-op on iOS).
Swift signIn: read hint from params
packages/expo/ios/ClerkGoogleSignInModule.swift
Removes the previous logic that derived hint from filterByAuthorizedAccounts and the current user's email; now reads hint directly as an optional String from params?["hint"].
Changeset
.changeset/bright-google-docs.md
Declares a patch release for @clerk/expo describing the new iOS hint option and the Android-only clarification for filterByAuthorizedAccounts.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • clerk/javascript#8901: Refactors the same ClerkGoogleSignInModule.swiftsignIn implementation using Expo ModulesCore, directly overlapping with the hint param handling in this PR.
  • clerk/javascript#8903: Modifies the iOS ClerkGoogleSignInModule.swiftsignIn flow around filterByAuthorizedAccounts, the same code path this PR changes.
  • clerk/javascript#8905: Overlaps on signIn behavior in ClerkGoogleSignInModule.swift around iOS filterByAuthorizedAccounts/hint derivation.

Suggested reviewers

  • wobsoriano

🐇 A hint for iOS, a hop of delight,
Android and iOS now split left and right.
No more deriving from email on hand,
Just read from the params — as the platform planned.
The rabbit approves this cross-platform feat! 🍎🤖

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(expo): add iOS Google sign-in hint' directly and accurately summarizes the main change: adding a new iOS-specific hint parameter for Google Sign-In in the Expo package.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mikepitre
mikepitreforce-pushed the mike/docs-google-signin-platform-default branch from 1f98539 to 9c6fe1cCompareJune 17, 2026 21:45
@mikepitremikepitre changed the title docs(expo): clarify Google One Tap platform defaultsfeat(expo): add iOS Google sign-in hintJun 17, 2026

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:9474fb3c67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

let hint: String? = filterByAuthorized
? GIDSignIn.sharedInstance.currentUser?.profile?.email
: nil
let hint = params?["hint"] as? String

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the iOS filter hint fallback

For iOS callers that already pass filterByAuthorizedAccounts: true, this patch release now drops the only behavior that flag had: the previous code used the current Google user's email as the hint. Those callers will silently stop getting the returning-account hint unless they also adopt the new hint option, which changes behavior for existing consumers of the public signIn params. Please keep the new explicit hint but fall back to the old filterByAuthorizedAccounts-based hint when no explicit hint is provided.

Useful? React with 👍 / 👎.

@mikepitremikepitreJun 17, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

See the backward compatability section of the PR body

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T21:56:00.727Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/expo

Current version: 3.4.4
Recommended bump: MINOR → 3.5.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: SignInParams
 export type SignInParams = {
nonce?: string;
filterByAuthorizedAccounts?: boolean;
+ hint?: string;
};

Static analyzer: Breaking change in type alias SignInParams: Type changed: {nonce?:string;filterByAuthorizedAccounts?:boolean;}{nonce?:string;filterByAuthorizedAccounts?:boolean;hint?:string;}

🤖 AI review (reclassified as non-breaking) (97%): A new optional property hint? is added to SignInParams, which is an input/parameter type; existing consumers who construct or pass this object are unaffected because the field is optional and they need not supply it.


Report generated by Break Check

Last ran on 9474fb3.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts`:
- Around line 88-89: The JSDoc for the hint parameter in
ClerkGoogleOneTapSignIn.ts is incomplete and lacks the helpful detail provided
in the corresponding type definition in types.ts. Enhance the JSDoc for the hint
parameter to include comprehensive documentation that explains what values it
accepts (user ID or email address), how it behaves (may prefill or prioritize an
account), and clarify that it does not restrict the account picker. Reference
the detailed documentation in types.ts (lines 54-60) as a guide to match the
level of detail and customer-facing clarity needed for the generated Clerk Docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: ca9aec07-e321-405e-925d-a115fcd0a609

📥 Commits

Reviewing files that changed from the base of the PR and between f4488f5 and 9474fb3.

📒 Files selected for processing (4)
  • .changeset/bright-google-docs.md
  • packages/expo/ios/ClerkGoogleSignInModule.swift
  • packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
  • packages/expo/src/google-one-tap/types.ts

Comment threadpackages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
@pkg-pr-new

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8906

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8906

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8906

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8906

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@8906

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8906

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8906

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8906

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8906

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8906

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8906

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8906

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8906

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8906

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8906

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8906

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8906

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8906

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8906

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8906

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8906

commit: 9474fb3

@wobsorianowobsoriano left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good

@wobsoriano
wobsoriano merged commit 15b059c into mainJun 18, 2026
119 of 121 checks passed
@wobsoriano
wobsoriano deleted the mike/docs-google-signin-platform-default branch June 18, 2026 19:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mikepitre@wobsoriano
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); feat(expo): add iOS Google sign-in hint by mikepitre · Pull Request #8906 · clerk/javascript · GitHub
Skip to content

feat(expo): add iOS Google sign-in hint - #8906

Merged
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default
Jun 18, 2026
Merged

feat(expo): add iOS Google sign-in hint#8906
wobsoriano merged 1 commit into
mainfrom
mike/docs-google-signin-platform-default

Conversation

@mikepitre

@mikepitremikepitre commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an iOS-only hint option for Google Sign-In and documents filterByAuthorizedAccounts as Android-only.

Reasoning

Google does not document these as one shared cross-platform option. The Android Credential Manager API exposes setFilterByAuthorizedAccounts(boolean) on GetGoogleIdOption.Builder, where it controls whether the account picker is limited to accounts already authorized for the app. The iOS Google Sign-In API exposes hint on GIDSignIn.signIn(...), where it can prefill or prioritize a user ID or email address but does not strictly filter the account picker.

This keeps the Expo API usable from one shared call site: apps can pass both options, Android consumes filterByAuthorizedAccounts and ignores hint, and iOS consumes hint and ignores filterByAuthorizedAccounts.

Backward compatibility

This is additive for JavaScript callers: existing signIn calls continue to work, and Android keeps the existing filterByAuthorizedAccounts behavior and default. On iOS, filterByAuthorizedAccounts is now treated as an Android-only option. A previous implementation briefly mapped that option to an implicit restored-user email hint on iOS, but that did not match Google’s platform APIs because hint does not strictly filter the account picker. Use the new hint option when an iOS sign-in hint is desired.

@vercel

vercelBot commented Jun 17, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
clerk-js-sandboxReadyReadyPreview, CommentJun 17, 2026 9:51pm
swingsetReadyReadyPreview, CommentJun 17, 2026 9:51pm

Request Review

@changeset-bot

changeset-botBot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9474fb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
@clerk/expoPatch

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

@mikepitremikepitre changed the title Clarify Google One Tap platform defaults in Expo docsdocs(expo): clarify Google One Tap platform defaultsJun 17, 2026
@mikepitre

Copy link
Copy Markdown
ContributorAuthor

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit:1f98539c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coderabbitai

coderabbitaiBot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds an optional hint parameter to the SignInParams type for iOS Google Sign-In account prefilling. The Swift ClerkGoogleSignInModule now reads hint directly from the incoming params. JSDoc for filterByAuthorizedAccounts is updated across types and the sign-in class to explicitly mark it as Android-only.

Changes

iOS hint support and platform-specific docs

Layer / File(s)Summary
SignInParams type: hint field and platform docs
packages/expo/src/google-one-tap/types.ts, packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
Adds optional hint?: string to SignInParams with iOS-only documentation and a no-op note for Android; updates filterByAuthorizedAccounts JSDoc to explicitly mark it Android-only (no-op on iOS).
Swift signIn: read hint from params
packages/expo/ios/ClerkGoogleSignInModule.swift
Removes the previous logic that derived hint from filterByAuthorizedAccounts and the current user's email; now reads hint directly as an optional String from params?["hint"].
Changeset
.changeset/bright-google-docs.md
Declares a patch release for @clerk/expo describing the new iOS hint option and the Android-only clarification for filterByAuthorizedAccounts.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • clerk/javascript#8901: Refactors the same ClerkGoogleSignInModule.swiftsignIn implementation using Expo ModulesCore, directly overlapping with the hint param handling in this PR.
  • clerk/javascript#8903: Modifies the iOS ClerkGoogleSignInModule.swiftsignIn flow around filterByAuthorizedAccounts, the same code path this PR changes.
  • clerk/javascript#8905: Overlaps on signIn behavior in ClerkGoogleSignInModule.swift around iOS filterByAuthorizedAccounts/hint derivation.

Suggested reviewers

  • wobsoriano

🐇 A hint for iOS, a hop of delight,
Android and iOS now split left and right.
No more deriving from email on hand,
Just read from the params — as the platform planned.
The rabbit approves this cross-platform feat! 🍎🤖

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'feat(expo): add iOS Google sign-in hint' directly and accurately summarizes the main change: adding a new iOS-specific hint parameter for Google Sign-In in the Expo package.
Docstring Coverage✅ PassedDocstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mikepitre
mikepitreforce-pushed the mike/docs-google-signin-platform-default branch from 1f98539 to 9c6fe1cCompareJune 17, 2026 21:45
@mikepitremikepitre changed the title docs(expo): clarify Google One Tap platform defaultsfeat(expo): add iOS Google sign-in hintJun 17, 2026

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:9474fb3c67

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

let hint: String? = filterByAuthorized
? GIDSignIn.sharedInstance.currentUser?.profile?.email
: nil
let hint = params?["hint"] as? String

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve the iOS filter hint fallback

For iOS callers that already pass filterByAuthorizedAccounts: true, this patch release now drops the only behavior that flag had: the previous code used the current Google user's email as the hint. Those callers will silently stop getting the returning-account hint unless they also adopt the new hint option, which changes behavior for existing consumers of the public signIn params. Please keep the new explicit hint but fall back to the old filterByAuthorizedAccounts-based hint when no explicit hint is provided.

Useful? React with 👍 / 👎.

@mikepitremikepitreJun 17, 2026

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

See the backward compatability section of the PR body

@github-actions

Copy link
Copy Markdown
Contributor

API Changes Report

Generated by Break Check on 2026-06-17T21:56:00.727Z

Summary

MetricCount
Packages analyzed19
Packages with changes1
🔴 Breaking changes0
🟡 Non-breaking changes1
🟢 Additions0

🤖 This report was reviewed by claude-sonnet-4-6.


@clerk/expo

Current version: 3.4.4
Recommended bump: MINOR → 3.5.0

Subpath ./types

🟡 Non-breaking Changes (1)

Modified: SignInParams
 export type SignInParams = {
nonce?: string;
filterByAuthorizedAccounts?: boolean;
+ hint?: string;
};

Static analyzer: Breaking change in type alias SignInParams: Type changed: {nonce?:string;filterByAuthorizedAccounts?:boolean;}{nonce?:string;filterByAuthorizedAccounts?:boolean;hint?:string;}

🤖 AI review (reclassified as non-breaking) (97%): A new optional property hint? is added to SignInParams, which is an input/parameter type; existing consumers who construct or pass this object are unaffected because the field is optional and they need not supply it.


Report generated by Break Check

Last ran on 9474fb3.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts`:
- Around line 88-89: The JSDoc for the hint parameter in
ClerkGoogleOneTapSignIn.ts is incomplete and lacks the helpful detail provided
in the corresponding type definition in types.ts. Enhance the JSDoc for the hint
parameter to include comprehensive documentation that explains what values it
accepts (user ID or email address), how it behaves (may prefill or prioritize an
account), and clarify that it does not restrict the account picker. Reference
the detailed documentation in types.ts (lines 54-60) as a guide to match the
level of detail and customer-facing clarity needed for the generated Clerk Docs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: ca9aec07-e321-405e-925d-a115fcd0a609

📥 Commits

Reviewing files that changed from the base of the PR and between f4488f5 and 9474fb3.

📒 Files selected for processing (4)
  • .changeset/bright-google-docs.md
  • packages/expo/ios/ClerkGoogleSignInModule.swift
  • packages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
  • packages/expo/src/google-one-tap/types.ts

Comment threadpackages/expo/src/google-one-tap/ClerkGoogleOneTapSignIn.ts
@pkg-pr-new

Copy link
Copy Markdown

Open in StackBlitz

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@8906

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@8906

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@8906

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@8906

@clerk/eslint-plugin

npm i https://pkg.pr.new/@clerk/eslint-plugin@8906

@clerk/expo

npm i https://pkg.pr.new/@clerk/expo@8906

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@8906

@clerk/express

npm i https://pkg.pr.new/@clerk/express@8906

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@8906

@clerk/hono

npm i https://pkg.pr.new/@clerk/hono@8906

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@8906

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@8906

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@8906

@clerk/react

npm i https://pkg.pr.new/@clerk/react@8906

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@8906

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@8906

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@8906

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@8906

@clerk/ui

npm i https://pkg.pr.new/@clerk/ui@8906

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@8906

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@8906

commit: 9474fb3

@wobsorianowobsoriano left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

looks good

@wobsoriano
wobsoriano merged commit 15b059c into mainJun 18, 2026
119 of 121 checks passed
@wobsoriano
wobsoriano deleted the mike/docs-google-signin-platform-default branch June 18, 2026 19:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mikepitre@wobsoriano