Repository navigation
clerk-android-api 1.3.0, clerk-android-ui 1.3.0 and clerk-android-telemetry 1.1.2.
Security
- The SDK refuses the eight compromised eMudhra intermediate certificates (CVE-2026-111943, #1163). The Frontend API client and the default telemetry client fail the TLS handshake when the server's chain holds one of them, before any request is sent. This follows OkHttp's mitigation. It matters on devices without Google Play Services, which Google's automatic update doesn't reach.
proxyUrlmust be an https URL (#1135).Clerk.initializenow throwsIllegalArgumentExceptionwhenproxyUrluseshttp, has no scheme or host, or contains credentials, a query or a fragment. The API client also refuses cleartext connections.
Behaviour changes
- An app that sets
proxyUrlto anhttp://URL crashes atClerk.initialize(#1135). Use an https proxy, including in development. NativeMagicLinkManagergains an abstractstartEmailLinkSignIn(email, emailAddressId)(#1159). The SDK only uses its own implementation. A third-party implementation of the interface would need to add the method.
Deprecations
- The
Clerk.publishableKeysetter (#1142). It never reconfigured the SDK. UseClerk.switchConfiguration(context, publishableKey). The getter is unchanged.
New
Session.hasMaximumLifetimetells sessions with no maximum lifetime (expireAt == 0) apart from ones with a deadline (#960).Clerk.auth.startEmailLinkSignIn(email, emailAddressId)sends the link to a specific email address (#1159).
Fixes
- Sign-in:
- Sessions:
- Biometrics:
- Organizations:
- UI:
- Dependencies:
Telemetry 1.1.2
- The default client refuses the compromised eMudhra intermediates (#1163).
- Event throttling no longer swallows coroutine cancellation (#1157).
All changes
What's Changed
- fix(ui): inset the organization domains and members empty states by @mikepitre in #1107
- docs(verify): show a before and after of every screen a change touches by @mikepitre in #1110
- ci: restore the Gradle home on pull requests through setup-gradle alone by @mikepitre in #1111
- docs(verify): map the organization profile and fix drift in the Android verify skill by @mikepitre in #1112
- fix(verify): pair each missing before screenshot with its own test, and make a remote before run by @mikepitre in #1113
- fix(verify): pair a before failure screenshot by full spec path by @mikepitre in #1114
- fix(ui): show the role name on a pending invitation by @mikepitre in #1117
- fix(verify): wait out the iOS frame lag after host.fill types by @mikepitre in #1115
- feat(verify): post only the marked part of an evidence video, paced for a reviewer by @mikepitre in #1118
- fix(ui): reload OrganizationSwitcher's account list after it creates an organization by @mikepitre in #1116
- test(ui): record the invitations tab golden with the role name by @mikepitre in #1121
- test(ui): fail every Coil load in snapshot tests so avatars render the same every run by @mikepitre in #1123
- ci: compare Paparazzi snapshots in the PR unit-test job by @mikepitre in #1122
- test(verify): seed organizations from specs to reach the verified-domains empty state and the Requests tab by @mikepitre in #1124
- ci: post to Slack when a failed check blocks a release by @mikepitre in #1125
- feat(verify): draw each tap in the posted evidence video by @mikepitre in #1126
- test(verify): run the Android lanes with animations on by @mikepitre in #1127
- fix(ui): show setup-MFA backup codes before the next session task by @claude[bot] in #1083
- fix(verify): keep tap pulses ahead of the change in remote and edge cases, and add host.back by @mikepitre in #1128
- test(verify): accept a recorder start answer a few milliseconds short of its wait by @mikepitre in #1144
- test(verify): type short, readable names and passwords in the e2e specs by @mikepitre in #1143
- test(verify): tighten the recorder start lower bound to 95 ms by @mikepitre in #1145
- ci: split the :source:ui unit tests into two parallel jobs by @mikepitre in #1146
- ci: run every workflow on GitHub's free runners by @mikepitre in #1148
- fix(verify): upload e2e evidence when the runs directory holds a run tag claim by @mikepitre in #1147
- ci: fail a PR that changes English text without its translations by @mikepitre in #1150
- docs(agents): put PR evidence in the description, in before and after tables by @mikepitre in #1152
- fix(verify): bound run timeouts and keep doctor checks when a probe fails by @mikepitre in #1153
- test(e2e): clean up the timeout test's child in finally by @mikepitre in #1156
- build(detekt): flag suspend code that swallows cancellation by @mikepitre in #1157
- fix(ui): send the sign-in email link to the address the user picked by @swolfand in #1159
- ci: release clerk-android-api to Maven Central on dispatched releases by @swolfand in #1129
- chore(deps): keep androidx.test out of app classpaths and tidy the version catalog by @swolfand in #1131
- fix(api): return biometric Keystore failures as ClerkResult instead of throwing by @swolfand in #1130
- test(api): refuse shared-session snapshot to differently signed siblings and pin the keystore fallback by @swolfand in #1141
- fix(ui): keep organization screens' state across rotation by @swolfand in #1139
- fix(api): switch to another session without an organization when organization selection is forced by @swolfand in #1134
- fix(api): require an https proxyUrl and refuse cleartext connections by @swolfand in #1135
- fix(ui): forget local biometric credentials when the prebuilt profile deletes an account by @swolfand in #1132
- feat(api): expose whether sessions have a maximum lifetime by @swolfand in #960
- fix(api): start token refresh when a session becomes active after initialization by @swolfand in #1136
- fix(api): deprecate the Clerk.publishableKey setter and stop reading Clerk.client through runCatching by @swolfand in #1142
- ci: assemble telemetry, the workbench and the quickstart and custom-flows samples on pull requests by @swolfand in #1138
- fix(ui): fade a disabled ClerkButton once, in its own colours, and theme the Add domain row by @swolfand in #1137
- fix(ui): keep the sign-in code field out of Verifying when there is no sign-in by @swolfand in #1161
- chore(deps): update gradle to v9.8.2 by @renovate[bot] in #1154
- fix(deps): update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.12.0 by @renovate[bot] in #1155
- fix(deps): update asm to v9.11.1 by @renovate[bot] in #1151
- fix(ui): keep long text field values on one line by @MatrixAlain in #1120
- fix(api): refuse servers that present the compromised eMudhra intermediates by @swolfand in #1163
- chore(release): bump clerk-android to 1.3.0 and telemetry to 1.1.2 by @swolfand in #1164
New Contributors
- @MatrixAlain made their first contribution in #1120
Full Changelog: v1.2.1...v1.3.0