Conversation
- Add shared SdkConstants (loopback host, debug port, didit host, tour path, default URLs) - Add shared QueryParamsBuilder replacing duplicated platform-specific builders - Android: deserialize config/request via kotlinx.serialization instead of org.json - Android: add belt-and-suspenders debug guard (isDebugMode && isDebuggable) - Android: remove redundant EXTRA_DEBUG_MODE and EXTRA_DEV_SERVER_URL intent extras - iOS: replace local buildQueryParams/encodeParam with shared QueryParamsBuilder - All default URLs now reference SdkConstants instead of hardcoded strings Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace hardcoded constants with SdkConstants.shared.* from KMP framework - Replace "/tunnel/tour/1" with SdkConstants.shared.BUNDLED_TOUR_PATH - Add SelfSdk as local package dependency in self-sdk-swift Package.swift Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughCentralizes SDK constants into SdkConstants (Kotlin/Swift), adds a centralized QueryParamsBuilder, shifts WebView debug detection to application debuggability, removes Intent debug/dev extras, makes crypto providers/internal and removes crypto from public APIs and test apps, and updates related platform integrations and tests. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 53a053ae-eae5-45d4-9153-84e8acc17201
📒 Files selected for processing (12)
packages/kmp-sdk/shared/src/androidMain/kotlin/xyz/self/sdk/api/SelfSdk.android.ktpackages/kmp-sdk/shared/src/androidMain/kotlin/xyz/self/sdk/webview/AndroidWebViewHost.ktpackages/kmp-sdk/shared/src/androidMain/kotlin/xyz/self/sdk/webview/SelfVerificationActivity.ktpackages/kmp-sdk/shared/src/androidUnitTest/kotlin/xyz/self/sdk/webview/AndroidWebViewHostSecurityTest.ktpackages/kmp-sdk/shared/src/commonMain/kotlin/xyz/self/sdk/api/QueryParamsBuilder.ktpackages/kmp-sdk/shared/src/commonMain/kotlin/xyz/self/sdk/api/SdkConstants.ktpackages/kmp-sdk/shared/src/commonMain/kotlin/xyz/self/sdk/api/SelfSdkConfig.ktpackages/kmp-sdk/shared/src/commonTest/kotlin/xyz/self/sdk/api/QueryParamsBuilderTest.ktpackages/kmp-sdk/shared/src/iosMain/kotlin/xyz/self/sdk/api/SelfSdk.ios.ktpackages/kmp-sdk/shared/src/iosMain/kotlin/xyz/self/sdk/webview/IosWebViewHost.ktpackages/self-sdk-swift/Package.swiftpackages/self-sdk-swift/Sources/SelfSdkSwift/Providers/WebViewProviderImpl.swift
💤 Files with no reviewable changes (1)
- packages/kmp-sdk/shared/src/androidMain/kotlin/xyz/self/sdk/api/SelfSdk.android.kt
CryptoProvider is never called at runtime (WebView uses Web Crypto API directly). Make the interface, its Android implementation, and the registry field internal so consumers no longer need to provide or register a crypto implementation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 2
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: e4734977-8cd6-4dd3-8b1d-ebdbf6152ef6
📒 Files selected for processing (10)
packages/kmp-sdk-test-app/composeApp/src/androidMain/kotlin/xyz/self/testapp/MainActivity.ktpackages/kmp-sdk-test-app/composeApp/src/commonMain/kotlin/xyz/self/testapp/screens/DomainSmokeScreen.ktpackages/kmp-sdk-test-app/iosApp/iosApp/iOSApp.swiftpackages/kmp-sdk/Package.swiftpackages/kmp-sdk/shared/src/androidMain/kotlin/xyz/self/sdk/providers/AndroidKeystoreCryptoProvider.ktpackages/kmp-sdk/shared/src/commonMain/kotlin/xyz/self/sdk/providers/CryptoProvider.ktpackages/kmp-sdk/shared/src/commonMain/kotlin/xyz/self/sdk/providers/SdkProviderRegistry.ktpackages/kmp-sdk/shared/src/iosMain/kotlin/xyz/self/sdk/api/SelfSdk.ios.ktpackages/self-sdk-swift/Sources/SelfSdkSwift/SelfSdkSwift.swiftscripts/check-license-headers.mjs
💤 Files with no reviewable changes (3)
- packages/kmp-sdk-test-app/composeApp/src/androidMain/kotlin/xyz/self/testapp/MainActivity.kt
- packages/self-sdk-swift/Sources/SelfSdkSwift/SelfSdkSwift.swift
- packages/kmp-sdk-test-app/iosApp/iosApp/iOSApp.swift
✅ Files skipped from review due to trivial changes (3)
- packages/kmp-sdk/Package.swift
- packages/kmp-sdk/shared/src/commonMain/kotlin/xyz/self/sdk/providers/CryptoProvider.kt
- packages/kmp-sdk/shared/src/androidMain/kotlin/xyz/self/sdk/providers/AndroidKeystoreCryptoProvider.kt
Summary
object in KMP commonMain, eliminating duplicated magic strings across Android and iOS
(which used org.json manual parsing) with a shared QueryParamsBuilder in commonMain that operates on typed
SelfSdkConfig/VerificationRequest objects
initVerificationFlow() and fail early with INVALID_BOOTSTRAP if either is malformed, instead of deferring
failure to query-param building
setWebContentsDebuggingEnabled) now require both config.debug == true AND ApplicationInfo.FLAG_DEBUGGABLE —
a release APK with debug=true in config will no longer enable debug behavior
SdkProviderRegistry.crypto internal. The WebView uses Web Crypto API directly, so consumers no longer need
to register a crypto provider. isConfigured() now only checks secureStorage
— all config is now read from the serialized EXTRA_CONFIG payload
(temporarily via self-sdk-swift until KMP framework export is wired)
Test plan
list omission, null field omission, URL encoding of special characters
(not localhost), and both-true loads localhost
query params
Native Consolidation Checklist
cd app && yarn jest:run/yarn workspace @selfxyz/rn-sdk-test-app test)Summary by CodeRabbit