Commit Graph

3360 Commits

Author SHA1 Message Date
Justin Hernandez
dee6eba5ff SELF-2650: Add WebView Ethereum bridge PoC with common bridge, Android/iOS implementations, and UI (#1989)
* Add WebView ethereum bridge PoC to kmp minipay sample

* fix pipelines

* pr feedback

* fix
2026-04-17 22:04:05 -07:00
Justin Hernandez
b51ea3019d fix mobile app stability: KYC/MRZ/proving wait-forever paths (#1987)
* save wip

* fix linting

* remove verification timeout. tkaes longer than 30

* address possible stability issues

* address pr feedback

* improve tests

* pr feedback
2026-04-17 15:38:01 -07:00
turnoffthiscomputer
043b0558fa Fix recovery phrase screen wonkiness (SELF-2649) (#1983)
* Fix recovery phrase screen wonkiness (SELF-2649)

- Swap paste XStack to Pressable with hitSlop to fix multiple-tap issue
- Add error state + user-facing messages for all failure modes
- Dismiss keyboard on Continue press
- Clear error on new input

* Format RecoverWithPhraseScreen with Prettier

* Clear error state at start of restoreAccount

---------

Co-authored-by: Agent PM <agent-pm@self.xyz>
2026-04-17 13:36:07 -07:00
Seshanth.S
e2daa97151 Enable logs (#1985)
* enable logs

* improve NFC observability logging and add session-scoped log grouping

* Enhance logging by adding session ID to lokiTransport for improved traceability
2026-04-17 12:14:55 -07:00
turnoffthiscomputer
3e4faef24a feat(ci): add Android PR preview builds via Internal App Sharing (#1984)
Adds a `pr_number` input to `mobile-deploy.yml`. When set, the Android
pipeline uploads the AAB to Play Store Internal App Sharing (unique
download URL per upload) instead of promoting to the internal track, and
posts a Slack message to `SLACK_WEBHOOK_QA_BUILDS` with the install link
and PR metadata. The version-bump PR job is skipped and iOS is always
skipped in this mode.

Enables an agent flow: open PR to `dev` → `gh workflow run` → reviewer
taps Slack link to QA on device → merge.

- `upload_to_play_store.py`: new `--mode=ias` branch using
  `internalappsharingartifacts.uploadbundle`; exports `download_url` to
  `$GITHUB_OUTPUT`.
- `mobile-deploy.yml`: new `workflow_dispatch` input `pr_number`;
  concurrency keyed per-PR so parallel previews don't queue; branch
  between IAS and track upload; Slack notify step on success.
2026-04-17 15:55:31 +02:00
turnoffthiscomputer
1042d27f54 fix: patch Podfile for WalletConnect Pay removal and Haptic feedback … (#1982)
* fix: patch Podfile for WalletConnect Pay removal and Haptic feedback framework addition

Removed the YttriumWrapper dependency from the react-native-compat podspec as it is not used in the Self app, preventing build failures. Additionally, patched the react-native-haptic-feedback podspec to include the AudioToolbox framework, ensuring proper functionality of haptic feedback features.

* Update app/ios/Podfile

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update app/ios/Podfile

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-17 15:35:30 +02:00
Seshanth.S
3e5523abdd SELF-2643: use expo-camera for qrcode scanning (#1981)
* use expo-camera for qrcode scanning

* remove unused react import

* greptile review comments

* coderabbit comments

* lint

* update podfile.lock

---------

Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
2026-04-16 23:40:19 -07:00
Nesopie
a825d8fc32 fix: add revealed data view for KYC ID cards (#1980)
The "View ID Data" button was broken for didit KYC documents because
KycIdCard ignored the hidden prop. This adds a revealed view showing
name, DOB, nationality, document number, gender, and dates.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 11:17:11 +05:30
Seshanth.S
63d6a96356 Add tap-through demo mode for tunnel verification flow (#1977)
* Fix navigation in disclose result related screens

* coderabbit comments

* add demo flow

* Enable conditional rendering for KYC pending screen and update mock provider result handling in development mode

* Update packages/webview-app/src/utils/mockOnboardingFlow.ts

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix hook

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
2026-04-14 19:38:06 -07:00
Leszek Stachowski
20c3fa5140 chore: create Self dictionary (#1974) 2026-04-14 15:29:53 -07:00
Justin Hernandez
5c6419cc2e chore: clean up from 2.9.17 (#1978)
* minor pionts fixes

* pr feedback

* bump build numbers
2026-04-14 15:28:40 -07:00
Justin Hernandez
e0070e16f3 Restore points screens, navigation, and earn-points flow (#1975)
* Restore points screens

* Restore support form flow

* Restore proof status safeguards

* Remove self apps links from points

* formatting

* pr bug fix feedback

* fix
2026-04-14 13:13:44 -07:00
Justin Hernandez
806756e77f add native hardware handlers spike spec (SELF-2614) (#1965)
* save spike spec

* update spec
2026-04-14 11:17:26 -07:00
github-actions[bot]
7b42c6e30e chore: bump mobile app version to 2.9.17 (#1973)
Update build numbers, platform build files, and deployment timestamps after successful deployment.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-13 21:51:43 -07:00
github-actions[bot]
e16c069224 chore: bump mobile app version to 2.9.17 (#1970)
Update build numbers, platform build files, and deployment timestamps after successful deployment.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-13 20:22:07 -07:00
Justin Hernandez
233a9e9ae7 fix team signing name (#1971) 2026-04-13 20:21:54 -07:00
github-actions[bot]
d84da9d0f1 chore: bump mobile app version to 2.9.17 (#1955)
Update build numbers, platform build files, and deployment timestamps after successful deployment.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-13 17:11:26 -07:00
Justin Hernandez
7058ee96b3 chore: match build numbers (#1967)
* fix theme color

* mathc build numbers
2026-04-13 15:38:45 -07:00
Justin Hernandez
3330cacce6 fix theme color (#1966) 2026-04-13 15:01:21 -07:00
Seshanth.S
d861bed826 Fix navigation in disclose result related screens (#1964)
* Fix navigation in disclose result related screens

* coderabbit comments
2026-04-14 00:46:09 +05:30
Justin Hernandez
f348c3e6bf hide google client id (#1961) 2026-04-10 12:47:14 -07:00
Nesopie
6c3fd45dff Fix/kyc formatter (#1959)
* fix: output formatter for aadhaar and kyc

* test: add KYC disclose test with non empty forbidden countries

---------

Co-authored-by: seshanthS <seshanth@protonmail.com>
2026-04-10 19:36:12 +05:30
Seshanth.S
6dc79ea8c0 webviewsdk: standardize config params (#1946)
* Standardize config param handling across Android & iOS

- 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>

* Import KMP SdkConstants in Swift WebViewProviderImpl

- 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>

* Internalize CryptoProvider — remove from public SDK interface

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>

* fix ci

* fix: temporarily use constants from self-sdk-swift

* lint

* fix: improve license header handling in check-license-headers script

* lint

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 15:22:56 +05:30
Justin Hernandez
b9c5b4a266 fix google play (#1953) 2026-04-09 17:46:55 -07:00
Justin Hernandez
81bd30e919 clean up resolutions warnings (#1949) 2026-04-09 17:18:11 -07:00
Justin Hernandez
fb9da6e66b chore: bump mobile app version to 2.9.17 (#1951)
* save skill

* bump version
2026-04-09 15:18:24 -07:00
Justin Hernandez
4bae15d164 SELF-2540: Fix account recovery flow after phone restore (#1942)
* bug fix

* fix pipelines

* fix race condition

* fixes

* try again

* fix maestro

* update copy and abstract

* fixes...i hope

* fix ios pipeline?

* pipeline fix

* fix pipeline

* fix e2e test

* fix pipelines?

* formatting
2026-04-09 12:32:03 -07:00
Justin Hernandez
c3a805c6c8 Rename KYC_TEE_URL and fix nav header regressions (#1948)
* rename kyc tee env var

* fix header text and close button

* format
2026-04-09 04:01:40 -07:00
Justin Hernandez
b13ec9a052 Remove Points and Self Apps screens, update navigation and copy (#1945)
* commit

* remove stale

* create hook to open support form in webview; pr feedback

* tests

* ignore mcp

* test

* fix pipelines
2026-04-09 02:48:32 -07:00
Justin Hernandez
3e714facf5 Rename KYC references to be platform agnostic (#1947)
* first pass

* clean up

* format

* pr feedback and format
2026-04-08 16:56:32 -07:00
Justin Hernandez
77df53b990 Add Firebase Analytics and upgrade app dependencies (#1944)
* updates

* upgrade packages

* fixes
2026-04-08 10:43:50 -07:00
Justin Hernandez
690d576d54 Upgrade Wave 2 mobile app dependencies (React Navigation, Tamagui, WalletConnect, Lottie, XState) (#1941)
* Upgrade wave 2 mobile app dependencies

* fix pipelines
2026-04-08 09:42:12 -07:00
Justin Hernandez
9887286476 Bump dependencies across app and root workspaces (#1939)
* Upgrade wave 1 mobile app dependencies

* Pin react-native-webview to 13.16.0 (#1940)

* revert svg upgrade
2026-04-08 08:04:28 -07:00
Seshanth.S
0f3cef7f56 Update SDK distribution spec to add kmp publishing plan (#1929)
* Update SDK distribution specifications and add remote publishing plan

* fix(spec): align SD-06 plan with SD-04 conventions

- Rename gpr.key to gpr.token for consistency with SD-04
- Move publish workflow from out-of-scope into scope
- Add workflow section (Section 4) matching publish-android-sdk.yml pattern
- Fix access model description (public repo, auth still required)
- Add workflow to files-to-modify and definition-of-done

---------

Co-authored-by: Javier Cortejoso <javier.cortejoso@gmail.com>
2026-04-08 12:01:17 +05:30
Justin Hernandez
06a513918f Fix reproducible Ruby gem installs and upgrade dependencies (#1937)
* fixes?

* fix order

* fix nokogiri build error

* upgrade pkgs and lock

* update podfile lock

* fix resolutions

* speed up installs

* increase install speed

* pr feedback

* fix

* only build for relevant webview paths

* attempt to fix oom issue

* actually fix

* pr feedback

* updaet package
2026-04-07 23:27:51 -07:00
Seshanth.S
5ead228589 Fix WebView layout, Android insets, and iOS dev server support (#1935)
* fix version

* Fix: webview displays over camera and statusbar

* Fix: Update ProviderLaunchScreen layout

* fixes

* more fixes

* add ios webview dev url capabilities

* fix ios building

* pr feedback

---------

Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
2026-04-07 23:26:05 -07:00
Seshanth.S
147b593e7f Fix: Navigating to account recovery (#1934)
* Fix: remove manual dsc to register chaining

* Add delay before navigating to disclose
2026-04-07 22:40:03 +05:30
Justin Hernandez
f29130587b Harden WebView bridge and asset serving across native shells (#1924)
* security fix

* more security fixes

* fixes

* pr feedback

* Restore remote URL loading in native-shell-ios and native-shell-android

Remove bundled-asset-only loading and SHA-256 integrity checks from both
native shell packages. WebViews now load directly from the remote URL
(default: https://self-app-alpha.vercel.app) over HTTPS, matching the
pattern already implemented in kmp-sdk and self-sdk-swift.

Also fixes ObjC selector mismatch in self-sdk-swift WebViewProviderImpl
for configureRemoteLoading.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Restore remote URL loading in kmp-sdk and self-sdk-swift

Remove bundled-asset-only loading from kmp-sdk AndroidWebViewHost and
self-sdk-swift WebViewProviderImpl. Both now load directly from the
remote URL (default: https://self-app-alpha.vercel.app) over HTTPS.

Adds remoteWebAppBaseUrl to SelfSdkConfig and pipes it through
IosWebViewHost via the new configureRemoteLoading protocol method.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* coderabbit comments

* lint

* coderabbit comments

---------

Co-authored-by: seshanthS <seshanth@protonmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 22:39:27 +05:30
Justin Hernandez
40f283b2db feat(webview): add recovery phrase screen to post-registration onboarding (#1917)
* add mnemonic screen

* add run ios command

* update recovery link, hide social, fix showing words

* bump packae

* pr feedback

* feedback
2026-04-07 00:21:00 -07:00
Justin Hernandez
8cb8913e09 Fix tunnel flow back-navigation leaking out of flow (#1916)
* add new screens

* fixes

* cover additional gap

* add webview dev url env var

* better menu

* updates
2026-04-06 23:21:44 -07:00
Nesopie
822e1eea4d Feat/OFAC auto updater upgrades (#1855)
* test: ofac updating tests

* feat: add registry deployment info

* chore: add gitignore for generated files

* feat: add kyc documents to upgrade scripts

* docs: update upgrade script readme for kyc

* feat: IdentityRegistryKyc v1.1.0 deployed on Celo-sepolia

Add TEE-attested OFAC root updates via updateOfacRootsWithProof

  - Implementation: 0x530eEA7E5b286108926B05510491560c4bAE018e
  - Adds updateOfacRootsWithProof() for ZK-verified OFAC root updates
  - New errors: InvalidRootsHash, InvalidRootsCount
  - New event: OfacRootsUpdatedWithProof

* feat: add OFAC rolling root window to all 4 registries

Add previousRoot storage variables to all identity registries so that
  checkOfacRoots accepts both the current and previous root for each OFAC tree. This prevents verification failures for users mid-proof when roots are updated on-chain between proof generation and on-chain verification.

  - Passport: 3 prev roots (passportNo, nameAndDob, nameAndYob)
  - KYC, ID Card, Aadhaar: 2 prev roots each (nameAndDob, nameAndYob)
  - KYC updateOfacRootsWithProof also rotates previous roots
  - Added getPrev* getter functions on all registries
  - Storage appended at end of each storage contract (UUPS-safe)
  - 17 new tests covering all registries (window=1 acceptance/rejection)

* feat: deploy IdentityRegistryKyc v1.2.0 to Celo Sepolia

Add rolling OFAC root window: store previous roots alongside current, accept either in checkOfacRoots for graceful mid-verification transitions.

  New impl: 0x6E2889Bc9baa6F53bDdf4843675155811F0AAAEd
  Proxy: 0x90e907E4AaB6e9bcFB94997Af4A097e8CAadBdf3
  Pending Safe multisig execution for proxy upgrade.

* feat: add TEE-attested OFAC root updates to Aadhaar, IdCard, and Passport registries

Extend updateOfacRootsWithProof() to the remaining 3 identity registries, matching the pattern already deployed on the KYC registry (v1.1.0).

- Add GCP JWT verifier, PCR0Manager, TEE address, and root CA pubkey hash storage to each registry
- Add initializeOfacProof() reinitializer for upgrade path
- Add onlyTEE modifier and updateOfacRootsWithProof() with Groth16 proof verification, TEE attestation validation, timestamp checks, and global roots hash commitment verification
- Rolling window behavior preserved: previous roots saved before overwrite
- Admin functions for updating TEE infrastructure (SECURITY_ROLE gated)
- Bumps all 3 registries to v1.3.0

* refactor: simplify updateOfacRootsWithProof to use per-registry roots hash as nonce

* fix: address CodeRabbit review comments on OFAC proof upgrade

- Add onlyProxy + onlyRole(DEFAULT_ADMIN_ROLE) guard to initializeOfacProof()
  on Passport, Aadhaar, and IdCard registries to prevent front-running during
  the window between upgradeToAndCall and the separate initializer call
- Fix checkOfacRoots() across all 4 registries to use atomic snapshot comparison
  instead of per-root matching — prevents accepting Frankenstein pairs like
  (new DOB root, old YOB root) that were never attested together
- Add IdentityRegistryKycImplV1 to PoseidonT3 linking branch in prepare.ts so
  upgrade:prepare works correctly for KYC
- Add prev* slot assertions and mixed-pair rejection test to ofacUpgradePath.test.ts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: add view getters, fix initializeOfacProof guard, add upgrade scripts

- Add getGcpJwtVerifier() and getPcr0Manager() getters to KYC and Aadhaar
- Fix initializeOfacProof guard: SECURITY_ROLE instead of DEFAULT_ADMIN_ROLE
  (DEFAULT_ADMIN_ROLE is never granted in governance setup)
- Add Ignition upgrade scripts for KYC and Aadhaar registries
- Comment out registry deploy in deployKycRegistry (verifier-only redeploy)
- Update deployed_addresses.json with sepolia upgrade artifacts
- Bump KYC to v1.2.1, Aadhaar to v1.3.1

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: addresses and error selectors

* style: format registry contracts and upgrade scripts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: formatting

* fix: error selectors

* fix: error selectors

* fix: error selectors

---------

Co-authored-by: Evi Nova <tranquil_flow@protonmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 16:50:03 +05:30
Justin Hernandez
b7ff7c4c8e Fix gitleaks config and refactor npm-publish version checks (#1926)
* fix pipelines

* fixes

* fixes

* pr feedback
2026-04-05 20:37:28 -07:00
Justin Hernandez
f490533cb5 Fix gesture handler patch for v2.22.1 and add patches to e2e trigger (#1921)
* test patch

* test install failure

* test

* smarter fix

* pr feedback; yarn format fixes

* fix gaps

* fix
2026-04-05 11:10:34 -07:00
Evi Nova
641dfe52b1 fix: remove contractErrors files accidentally merged into dev (#1923)
These files were part of PR #1911 (custom Solidity error decoding) which
is not yet merged. They were accidentally included in the #1905 squash
merge. The missing error-selector-map.json dependency breaks workspace
CI (build, lint, type-check) across all branches.
2026-04-04 14:06:17 +10:00
Justin Hernandez
9b8e081435 Add remote webview integrity checks (#1907)
* Add remote webview integrity checks

* fixes

* feedback

* update tests; fix pipelines

* fix ci

* feat(webview): add subresource integrity (SRI) to build output

The SHA-256 remote integrity check only covers the entry HTML document.
Sub-resources (JS, CSS) loaded by that HTML were fetched without
integrity verification, allowing a compromised CDN to swap bundles.

Add a custom Vite plugin that injects SRI sha384 hashes into all
script and link tags in the built index.html. The browser natively
enforces these hashes, blocking any tampered sub-resources.

Includes tests verifying integrity attributes are present and that
hashes match the actual file contents on disk.

---------

Co-authored-by: Tranquil-Flow <tranquil_flow@protonmail.com>
2026-04-04 13:55:31 +10:00
Justin Hernandez
5268ccb767 Fix recovery rollback handling (#1905)
* Fix recovery rollback handling

* Restore registration state on rollback

* Restore selected document on rollback

* fix(webview): clear both keys on partial rollback to prevent mnemonic/secret mismatch

When restoreSnapshotBestEffort partially fails (e.g. mnemonic rollback fails but secret rollback succeeds), the stored mnemonic and private key can end up mismatched — deriving from the stored mnemonic produces a different key than what's stored. This is silent data corruption that could lock users out of recovery.

Fix: when any rollback write fails, clear both keys so ensureSecret can regenerate a consistent pair from scratch. A missing pair is recoverable; a mismatched pair is not.

Adds a test in restoreSecretFromMnemonic that proves the mismatch scenario and verifies both keys are cleared.

* feat(new-common): add humanizeContractError utility with tests

* fix: prettier formatting in secretManager test

---------

Co-authored-by: Tranquil-Flow <tranquil_flow@protonmail.com>
2026-04-04 10:27:21 +10:00
Justin Hernandez
e7a607caef Harden native lifecycle result handling (#1906)
* Harden native lifecycle result handling

* Harden native shell lifecycle handling

* fixes
2026-04-04 10:27:14 +10:00
Seshanth.S
37b8f0ca71 Scope KMP SDK to 3-domain parity (KR-01, KR-02, KR-03) (#1915)
* KR-01: Scope KMP Android to 3-domain parity with provider delegation

Move SecureStorageProvider, CryptoProvider, and CryptoBridgeHandler to
commonMain so both platforms share the same contract. Add default Android
providers (EncryptedSharedPreferencesProvider, AndroidKeystoreCryptoProvider)
that consumers can replace via SdkProviderRegistry.

- Rewrite Android SecureStorageBridgeHandler to delegate to provider and
  fix get() response shape to return { value: string | null }
- Register only 3 handlers (secureStorage, crypto, lifecycle) in Activity
- Add WebChromeClient with permission and file upload handling
- Add query param support to WebView URL loading
- Add bridge protocol version validation to MessageRouter
- Remove NFC/camera/biometric dependencies from build.gradle.kts
- Remove out-of-scope permissions from AndroidManifest.xml
- Create IosProviderRegistry for iOS-specific provider fields

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* KR-02: Scope KMP iOS to 3-domain parity with query param support

Move SecureStorageBridgeHandler to commonMain (fixes iOS get() response
shape to return { value: string | null } matching the bridge adapter).
Both Android and iOS now share the same handler via commonMain.

- Register only 3 handlers on iOS (secureStorage, crypto, lifecycle)
- Add queryParams parameter to WebViewProvider interface
- Update IosWebViewHost to forward query params from VerificationRequest
- Update WebViewProviderImpl.swift to append query params to URL
- Relax isConfigured check to only require secureStorage + crypto + webView
- Remove unused handler imports from SelfSdk.ios.kt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* KR-03: Simplify test app to 3-domain smoke harness

Gut the MRZ/NFC-first flow from the test app and replace with a focused
3-domain smoke test screen that validates secureStorage (set/get/remove
round-trip), crypto (generateKey/getPublicKey/sign/deleteKey), and
lifecycle (validated via SDK launch flow).

- Add DomainSmokeScreen with pass/fail output per domain
- Remove MRZ/NFC navigation routes and expect/actual screen declarations
- Remove NFC/CAMERA permissions from Android manifest
- Remove camera dependency from build.gradle.kts
- Scope iOS test app to register only required providers (secureStorage,
  crypto, webView)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix issues - test app

* coderabbit comments

* fix ci

* klint

* coderabbit review comments

* Enhance permission handling in AndroidWebViewHost

* fix registry

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
2026-04-03 11:45:07 -07:00
Justin Hernandez
16ba8f1937 quiet gitleaks (#1920) 2026-04-03 11:20:10 -07:00
Justin Hernandez
d23cc2b47f update (#1918) 2026-04-02 16:26:25 -07:00