Skip to content

Release to Staging v2.9.16 - 2026-03-30#1889

Merged
transphorm merged 10 commits intostagingfrom
release/staging-2026-03-30
Mar 30, 2026
Merged

Release to Staging v2.9.16 - 2026-03-30#1889
transphorm merged 10 commits intostagingfrom
release/staging-2026-03-30

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

🚀 Weekly Release to Staging

Release Date: March 30, 2026
Release Branch: release/staging-2026-03-30

This automated PR promotes a snapshot of dev to staging for testing.

What's Included

All commits merged to dev up to the branch creation time.

Note: This PR uses a dedicated release branch, so new commits to dev will NOT automatically appear here.

Review Checklist

  • All CI checks pass
  • Code review completed
  • QA team notified
  • Ready to merge to staging environment

Next Steps

After merging, the staging environment will be updated. A production release PR will be created on Sunday.


This PR was automatically created by the Release Calendar workflow on March 30, 2026

transphorm and others added 10 commits March 27, 2026 21:07
* Add registration prompt screens (SELF-2452)

Add 4 registration prompt screen wrappers: SocialSignOnMethodPickerScreen, SocialSignOnPickerScreen, ConflictDetectedScreen, and PushNotificationPromptScreen. Register routes at /onboarding/backup, /onboarding/signin, /onboarding/conflict, and /onboarding/notifications. Add Lottie animation assets and Vite middleware plugin for static file serving. Navigation targets use /coming-soon placeholders pending WV-09 registration core merge.

* updates

---------

Co-authored-by: Tranquil-Flow <tranquil_flow@protonmail.com>
* Add proof overlays, history, and post-proof screens (SELF-2421)

Add 10 proof-related screen wrappers: ProofRequestReceiptScreen, ProofHistoryScreen, SimpleDialogueScreen, DialogueWithCtaScreen, ProofGenerationDialogueScreen, ProofGenerationSuccessScreen, ProofSuccessBackupScreen, NovaSplashScreen, KycPendingScreen, and KycVerificationSuccessScreen. Include Lottie animation JSON files and dialogue background image in public/ for proper rendering. Add Vite middleware plugin to serve static JSON/HTML files without SPA fallback rewriting.

* save wip dev menu

* save dialogue screen updates

* finalize screens

* add test

* improvments

* update

---------

Co-authored-by: Tranquil-Flow <tranquil_flow@protonmail.com>
* feat(webview-app): add IDDataScreen and ManageDocumentsScreen (SELF-2422)

Screen migration for WV-14. Adds 2 euclid screen wrappers with mock data for the UI mocking pass.

- IDDataScreen at /id-data with ExposedIDCard, identification details, document data
- ManageDocumentsScreen at /manage-documents with document list and manage dialogue
- Wire Settings > Manage Documents to /manage-documents instead of /coming-soon
- Add preview.html for phone-frame screen verification during development

* update

* rename

---------

Co-authored-by: Tranquil-Flow <tranquil_flow@protonmail.com>
* Add recovery and backup screens (SELF-2423)

Add 5 recovery/backup screen wrappers around euclid components: BackupMethodPickerScreen, RecoveryPhraseScreen, LaunchRecoveryScreen, SecretPhraseInputScreen, and RecoverySuccessScreen. Wire SecurityScreen actions to the new routes instead of /coming-soon. Register all routes in App.tsx.

* Add background image to LaunchRecoveryScreen and animation assets (SELF-2423)

Add dialogue-background.jpg and Lottie animation JSON files to public/ for proper screen rendering. Pass backgroundImage prop to LaunchRecoveryScreen for visual consistency with other dialogue screens.

* add test

* link up

* fixes

* revert fix. we need to fix in euclid

* update euclic

* dev menu dx, add password

* fix launch recovery screen

* fix recovery success screen

* fix recovery phrase tests

* updates

* fixes

* fixes

---------

Co-authored-by: Tranquil-Flow <tranquil_flow@protonmail.com>
* 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.
* feat: replace Sumsub with Didit JS SDK in webview-app

- Add @didit-protocol/sdk-web, remove @sumsub/websdk
- Create diditProvider.ts with session creation + SDK launch
- Update ProviderLaunchScreen to use Didit embedded mode
- Delete sumsubProvider.ts and sumsub-websdk.d.ts

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

* feat: add Socket.IO attestation flow to webview KYC

After Didit JS SDK completes, connect Socket.IO to the TEE,
subscribe by sessionId, and wait for signed KYC data (attestation).
Emit ack_success for session cleanup. Attach attestation to the
provider result before navigating to the result screen.

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

* chore: update TEE URL to kyc.self.xyz, update SDK test app README for Didit

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

* fix: only route KYC (Other IDs) to Didit provider, others to Coming Soon

Passport, ID card, and Aadhaar require NFC/MRZ scanning which isn't
available in the WebView. Only "Other IDs" goes through the Didit
JS SDK flow.

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

* fix: Didit SDK full-width rendering and KYC routing

- Wire onNotListedPress to launch Didit for "View other supported IDs"
- Remove verificationId gate from ProviderLaunchScreen
- Switch to modal mode with CSS overrides for full-screen on mobile
- Force .shadow-card to 100% width/height in WebView context

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

* feat: add camera permissions and file upload to Android WebView

Add WebChromeClient to AndroidWebViewHost:
- onPermissionRequest: auto-grants camera for Didit SDK
- onShowFileChooser: opens system file picker for document upload
- SelfVerificationActivity handles file chooser result callback

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

* chore: gitignore Gradle build artifacts for native-shell-android

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

* feat: add runtime camera permission and CAMERA manifest declaration

- Add CAMERA permission to sdk-test-app AndroidManifest.xml
- Request runtime camera permission in onPermissionRequest before granting
- Handle permission result in SelfVerificationActivity
- Store pending PermissionRequest for async grant/deny after user response

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

* fix ios camera

* fix: address CodeRabbit review findings

- Replace ngrok URL with kyc.self.xyz in Android and iOS test apps
- Fix file chooser hang when context is not an Activity
- Move NSCameraUsageDescription to project.yml (survives xcodegen regen)
- Delete manual Info.plist that would be overwritten

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

* fix: replace ngrok URL with kyc.self.xyz in diditProvider and diditAttestation

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

* fix: explicitly disable Didit SDK debug logging

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

* fix: webview lint

* fix: validate origin and handle audio permission in WebView permission grants

- Deny permission requests from untrusted origins
- Deny instead of grant when context is not an Activity
- Handle RECORD_AUDIO alongside CAMERA for liveness checks
- Add RECORD_AUDIO to AndroidManifest.xml

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: seshanthS <seshanth@protonmail.com>
…ds (#1884)

Replace unused teeUrl with environment ("prod"/"staging") for endpoint selection. The webview never consumed teeUrl — the proving machine resolves TEE URLs internally from the circuit DNS mapping API based on environment.

Add version (default 1) for config protocol versioning. Add optional verification config fields: scope, disclosures, appName, appEndpoint, resultType — needed for the tunnel flow to render the proof request UI correctly. The webview already parsed these from URL params; the native shells just weren't sending them.

Update webview to parse environment and version from URL params with defensive defaults. Update both test apps to use the new config shape.
* fix: use raw bytes for KYC register circuit inputs instead of deserialize+reserialize

The deserialize→reserialize path strips the namespace prefix from
id_type, producing different bytes than what the TEE signed. This
causes EdDSA signature verification to fail in the circuit.

Use raw base64-decoded bytes directly, matching the TEE's signed data.

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

* fix: use raw bytes for KYC register circuit inputs in common and new-common

The deserialize→reserialize path strips the namespace prefix from
id_type (\x05didit), producing different bytes than what the TEE
signed. This causes EdDSA signature verification to fail in the
register_kyc circuit.

Use raw base64-decoded bytes directly in both common/ and new-common/.

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* 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
@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 30, 2026

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

Project Deployment Actions Updated (UTC)
self-webview-app Ready Ready Preview, Comment Mar 30, 2026 6:16pm

Request Review

@transphorm
Copy link
Copy Markdown
Member

merging to test vercel deploy

@transphorm transphorm merged commit da415b8 into staging Mar 30, 2026
17 checks passed
@transphorm transphorm deleted the release/staging-2026-03-30 branch March 30, 2026 18:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants