Commit Graph

63 Commits

Author SHA1 Message Date
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
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
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
737f39d955 udpate specs (#1909) 2026-04-01 17:53:51 -07:00
Seshanth.S
c5e3b03e42 Stitch tunnel flow screens with proving machine and recovery (#1896)
* stitch tunnelflow screens

* save wip formatting

* add failure flow

* stub account recovery

* add tests

* add spec wv-17

* prep for review

* serialize

* fixes

* fix bug

* fix dev building

* fix: close Didit modal on completion, show KycPendingScreen while waiting (#1900)

- Close Didit SDK modal immediately when onComplete fires
- Show Euclid KycPendingScreen with animation while Socket.IO waits for TEE attestation
- Replaces generic spinner for the 'In Review' waiting state

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

* navigate to disclose step on restore

* skip disclose confirmation screen

* Update Recovery flow

* Navigate to account recovery if TEE rejects it as already registered

* Navigate to disclose directly if the selected document is registered

* SELF-2348: Load webapp from url

* update sdk-test-app

* fix result from sdk

* fixes?

* fix build issue

* fix install pipeline

* carry pr feedback. fix formatting

---------

Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
Co-authored-by: Nesopie <87437291+Nesopie@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 14:14:52 -07:00
Seshanth.S
1d0c6fe187 add kmp specs (#1902) 2026-04-01 13:44:44 -07:00
Seshanth.S
02e7608050 SELF-2484: Delegate keychain to consumer (#1894)
* SELF-2484: Delegate keychain to consumer

* lint

* update coderabbit comments
2026-03-31 18:29:33 +05:30
Seshanth.S
868532d12d Add NSL-04: Delegate keychain management to SDK consumers (#1893) 2026-03-31 16:10:54 +05:30
Justin Hernandez
3aa6cb682b Add Vercel deployment config for webview-app (#1880)
* add vercel config

* update config

* fix

* make monorepo private for vercel

* set node version

* fix install

* test

* fix vercel webapp deploys

* fix build command

* better skip

* prettier

* format

* fix deploy
2026-03-30 10:31:43 -07:00
Evi Nova
af1baec3f5 Clean up WV-16 settings screens (#1883)
* Clean up WV-16 settings screens

Fix mock document generation in DevModeScreen — generate button now calls mockDocumentStore.addDocument() with the selected country and document type instead of navigating home without storing anything.

Fix duplicate description on Manage Documents menu item — was incorrectly showing "Recovery phrase, passport data" (copy-paste from Security item), now shows "Your registered passports and IDs".

Add haptic feedback to all settings menu item press handlers.

Add Settings root and Tunnel routes to the DevRouteMenu.

Add navigation and interaction tests for all four settings screens.

* Update WV-16 status in webview SPEC.md

Mark WV-16 as Done and document what was delivered vs deferred. Settings
persistence (notification toggles, backup-enabled state) is explicitly
deferred pending a storage design decision — it does not block UI completeness.
2026-03-30 20:11:52 +10:00
Seshanth.S
a1e07d2a60 add sdk distribution specs (#1881) 2026-03-30 12:48:23 +05:30
Justin Hernandez
107dbe83ed Add webview registration core: tour, outcome screens, and mocked provider handoff (#1872)
* save current registration state

* save wip

* update insets

* wip

* updates

* commit

* update flows

* updates

* fix animation
2026-03-26 04:25:56 -07:00
Justin Hernandez
ff66899eca add ESLint, Prettier, and typecheck to webview-app and webview-bridge (#1870)
* add webview formatting

* updates

* fixes
2026-03-25 21:25:29 -07:00
Justin Hernandez
cbb16a2445 add SDK native shells, webview screens, Didit migration, and specs (#1869)
* wip

* update spec

* formatting

* update specs

* update specs

* finalize
2026-03-25 17:33:21 -07:00
Justin Hernandez
e1e2a63653 Add webview app specs (#1866)
* save wip specs

* update

* updates

* address feedback
2026-03-25 02:06:00 -07:00
Seshanth.S
167da8c87f SELF-2336 Export proving machine for webview (#1864)
* Extract Reusable App Adapter Factories for SelfClient Assembly

* update coderabbit comments

* lint
2026-03-25 12:02:25 +05:30
Justin Hernandez
692aaf33dc update spec workflow to use repo-canonical two-layer model (#1865)
* update skills

* fixes and formatting
2026-03-24 13:42:19 -07:00
Seshanth.S
89476718eb Extract Reusable App Adapter Factories for SelfClient Assembly (#1862) 2026-03-24 23:24:14 +05:30
Seshanth.S
3eae9dc777 docs: add WV-07 and WV-08 specs for proving machine in webview-app (#1861)
WV-07 covers SelfClient assembly: exporting useProvingStore from the
browser entry point, mapping bridge adapters to SDK interfaces, creating
a keychain-backed DocumentsAdapter via the existing secureStorage bridge,
and wiring a real SelfClient in the webview-app provider.

WV-08 covers the tunnel proving flow: replacing the mock 3-second timer
with real provingMachine integration (register → disclose), storing
Sumsub KYC results as KycData documents in native keychain, and driving
UI from proving state transitions.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 17:51:38 +05:30
Justin Hernandez
bd2e3c6738 add Euclid 3.0 settings screens, tunnel flow, and audit pipeline skills (#1858)
* feat(webview-app): add Euclid 3.0 settings sub-screens

Add SecurityScreen, NotificationPreferencesScreen, and DevModeScreen
wrappers that import Euclid 3.0 components and wire them with React
Router navigation and bridge adapters. Update SettingsScreen menu items
to navigate to real routes instead of /coming-soon.

Requires @selfxyz/euclid-web to be published with the new screen exports
(SecurityScreen, NotificationPreferencesScreen, DevModeScreen) before
type-check will pass. See docs/superpowers/plans/ for full context.

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

* docs: add settings integration plan and handover

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

* chore: use euclid 1.2.0

* PoC tunnel flow

* updates

* update skills

---------

Co-authored-by: Tranquil-Flow <tranquil_flow@protonmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Leszek Stachowski <leszek.stachowski@self.xyz>
2026-03-23 23:55:31 -07:00
Seshanth.S
17232e7698 docs: add BP-02 deferred backlog item for runtime bundle integrity (#1857)
When CDN bundle loading lands, runtime checksum verification (SHA-256
manifest, fail-closed on mismatch) becomes a security boundary. This
adds the backlog item and context so it's picked up at the right time.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 02:52:12 +05:30
Seshanth.S
60de8d6c1e Feat/webview sdk (#1856)
* feat: add iOS native shell package (NSL-02)

Plain Swift implementation of the WebView host with bridge handlers
for secure storage (Keychain), crypto (EC P-256), and lifecycle.

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

* feat: add Android native shell package (NSL-01)

Plain Kotlin implementation of the WebView host with bridge handlers
for secure storage (EncryptedSharedPreferences), crypto (Android Keystore
EC P-256), and lifecycle.

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

* feat: integrate Sumsub Web SDK into ProviderLaunchScreen (WV-05)

Rewrites ProviderLaunchScreen to launch Sumsub Web SDK, adds KYC
provider types, result normalization, and a ProviderResultScreen
for displaying verification outcomes.

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

* docs: update spec status for NSL-01, NSL-02, WV-05 to in-progress

All three items are code-complete but need integration testing
before marking done.

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

* docs: add build-pipeline workstream specs, update NSL-03 and BP-01 status

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

* feat: add WebView bundle build pipeline (BP-01)

Build script copies webview-app dist into both native shell asset
directories. Gradle preBuild validation fails fast when bundle is
missing. Root package.json gets build:sdk-* scripts.

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

* feat: add SDK test apps for Android and iOS (NSL-03)

Minimal test apps to exercise native shells end-to-end:
- Android: Jetpack Compose app using SelfSdk.launch() via composite build
- iOS: SwiftUI app using SelfSdk.createViewController() via local SPM dep

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

* update lockfile

* fix: address CodeRabbit PR review findings for native shells

- Fix iOS double callback: add hasEmittedResult flag to LifecycleHandler
  so dismiss() won't fire onCancelled after onResult already emitted
- Fix Android error result codes: use RESULT_FIRST_USER for failed
  verifications instead of always RESULT_OK; add dedicated handler in
  SelfSdk.handleResult
- Fix iOS production query params: append params to file URL via
  URLComponents so WebView receives teeUrl/verificationId/userId
- Fix build:sdk-ios false-green: chain swift build after bundle script
- Add expectedRequestCode param to handleResult for flexibility
- Upgrade security-crypto 1.1.0-alpha06 → 1.1.0 stable
- Improve callback type safety: onSuccess takes raw JSON string,
  onFailure takes SelfSdkException instead of generic Exception
- Add requireBiometric intent comments to both SecureStorageHandlers

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

* fix: address remaining CodeRabbit PR review findings (round 2)

- iOS BridgeResponse: add requestId/success fields, rename result→data to match JS bridge contract
- iOS test app: fix callback deallocation with Coordinator pattern
- ProviderLaunchScreen: fail closed on missing verificationId, fix retry via retryCount state
- ProviderResultScreen: guard unknown status with fallback to error config
- build-webview-bundle.sh: validate index.html before deleting targets
- Package.swift: fix SPM resource path with target path/sources

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 02:26:40 +05:30
Justin Hernandez
a56edbab75 Audit and update specs rd5 (#1850)
* first commit sc-02

* prep for pr

* fix

* specs pass 1

* update specs
2026-03-12 16:22:31 -07:00
Justin Hernandez
95d893fa45 Expose generateKey() and getPublicKey() in CryptoAdapter surface (#1849)
* first commit sc-02

* prep for pr

* fix

* fix

* check result
2026-03-12 16:11:45 -07:00
Justin Hernandez
f47b46d465 Add browser host callback contract for WebView verification flow (#1846)
* push code for wv-02 and 03

* save wip

* fixes

* pr feedback fix pipelines

* save spec

* address feedback

* pr feedbacak

* fixes

* format

* fix pipelines

* fix

* fix

* fixes
2026-03-12 07:50:18 -07:00
Justin Hernandez
4934a8c2be Align WebView flow with provider-backed KYC (#1845)
* push code for wv-02 and 03

* pr feddback
2026-03-11 18:43:15 -07:00
Justin Hernandez
25e8ddda37 wv-01 work (#1844) 2026-03-11 14:09:16 -07:00
Justin Hernandez
929ef3832e kmp: Update specs to reflect paused work (#1842)
* sc-01 first commmit

* fix pipelines

* update specs

* update specs to reflect paused work

* fix build

* add missing

* pipeline fixes

* last round of feedback

* update specs
2026-03-11 13:09:02 -07:00
Justin Hernandez
73d2075ad4 Deduplicate bridge-layer fallback adapters onto engine-owned browser implementations (SC-01) (#1841)
* sc-01 first commmit

* fix pipelines

* fix build

* add missing

* pipeline fixes

* last round of feedback
2026-03-11 12:50:27 -07:00
Justin Hernandez
b53626c16b Fix lifecycle bridge result routing semantics (#1840)
* update specs

* update specs

* harden nfc apdu

* ns-05 work

* pr feedback

* updates

* fixes
2026-03-10 21:58:58 -07:00
Justin Hernandez
774fe295ca Complete RN-03 NFC hardening and stabilize RN SDK tests (#1797)
* udates

* add regression test

* feedback; remove assets

* fix pipeline

* pr feedback

* fixes

* fix pipeline

* finalize rn03 work

* fix ci

* better foramt
2026-03-10 21:40:50 -07:00
Justin Hernandez
2ab33c727a Reject raw APDU commands in KMP NFC bridge (#1839)
* update specs

* update specs

* harden nfc apdu
2026-03-10 20:31:34 -07:00
Justin Hernandez
6dcaa63de3 Audit KMP artifact readiness for MiniPay integration (#1838)
* update specs

* update specs

* pr feedback
2026-03-10 20:10:43 -07:00
Justin Hernandez
1041babc7b Stabilize iOS simulator startup and crash mitigation flow (#1836)
* save sepc

* save wip

* save pr 2wip

* save wip rd 3

* finalize ios crash fix

* pr feedback and format
2026-03-10 20:09:03 -07:00
Justin Hernandez
4f08bbfce7 update specs (#1837) 2026-03-10 17:41:26 -07:00
Justin Hernandez
d7c1556ddc Align KMP verification result contract with canonical SDK types (#1831)
* Align KMP verification result contract

* formatting

* pr feedback

* feedback
2026-03-10 09:02:12 -07:00
Justin Hernandez
6b89976758 formatting (#1829) 2026-03-09 22:10:28 -07:00
Justin Hernandez
b8b893311b rework specs rd 3 (#1827)
* rework specs

* udpate specs

* format
2026-03-09 21:01:17 -07:00
Justin Hernandez
52113786c0 update integration tests (#1826) 2026-03-06 18:26:22 -08:00
Justin Hernandez
88e28733b1 Phase 1 Native Consolidation: Extract MRZ OCR/Mapping Helpers and Thin Scanner Views (#1823)
* mrz consolidation

* consolidate mrz swift code

* update specs

* save changes

* fixes

* format

* update spec

* pr feedback

* add tests

* save prep work

* consolidate MRZ handling logic

* fixes

* format

* format

* remove giga

* pr feedback

* update spec

* update

* revert change

* pr feedback

* updates
2026-03-06 17:54:46 -08:00
Justin Hernandez
3ee9822752 Phase 0 Native Consolidation: Baseline Contracts, Bridge Tests (#1822)
* mrz consolidation

* consolidate mrz swift code

* update specs

* save changes

* fixes

* format

* update spec

* pr feedback

* add tests

* remove

* fix pipeline
2026-03-06 14:51:51 -08:00
Justin Hernandez
23ab5d8b17 Consolidate iOS build, config, and integration paths (#1821)
* mrz consolidation

* consolidate mrz swift code

* update specs

* save changes

* fixes

* format

* pr feedback
2026-03-06 13:38:55 -08:00
Justin Hernandez
be9f2d8f8b Consolidate RN test app Android MRZ scanner onto shared SDK handler (#1817)
* first pass at consolidation work

* fix gap

* update spec

* fix pipeline

* pr feedback
2026-03-06 10:10:55 -08:00
Justin Hernandez
cde591b998 feat(rn-sdk-test-app): native MRZ camera with progressive detection UX (#1816)
* save wip

* save working code

* finalize code

* pr feedback

* fix
2026-03-05 22:48:41 -08:00
Justin Hernandez
62a11cdca3 chore: rename kmp sdk test app folder (#1815)
* chore: rename kmp sdk test app folder

* update ignore

* fix path
2026-03-05 18:37:46 -08:00
Justin Hernandez
d4c52af7e3 kmp ci coverage (#1814)
* save kmp coverage work

* clean up

* move to archive

* fix ci

* update workflows

* fix build error

* fix

* ci fix
2026-03-05 18:35:35 -08:00
Justin Hernandez
536eb69538 Justin/update specs rd3 (#1813)
* update archive

* finslize specs
2026-03-05 16:25:49 -08:00
Justin Hernandez
a367e7eecb Update specs to be agentic (#1811)
* save chunk 1e work

* chunk 2f

* pr feedback

* fix pr feedback

* cr feedback

* remove dupe var

* feedback from cr

* add kmp:start dx helper

* save web consolidtion work for later

* add specs

* update

* pr fixes

* update reorg plan

* add coverage gaps spec

* pr feedback

* save current wip iteration

* finalize spec work
2026-03-05 16:20:46 -08:00
Justin Hernandez
44ded24886 Wire WebView camera adapter and harden Android SDK launch flow (#1805)
* save chunk 1e work

* chunk 2f

* pr feedback

* fix pr feedback

* cr feedback

* remove dupe var

* feedback from cr

* add kmp:start dx helper

* save web consolidtion work for later

* add specs

* update

* pr fixes

* update reorg plan
2026-03-05 12:14:02 -08:00
Justin Hernandez
d5001eef8d Add RN SDK test app harness and update spec validation scope (#1798)
* fill gps

* pr feedback

* add easy demo install script, sort package.json files

* get app running

* fix ios running

* rename app

* fix pipeline issues

* pr feedback

* fix pipelines

* fix

* update
2026-03-02 19:52:23 -08:00