feat(kyc): provide-email sheet for the no-email verification dead-end#2342
Conversation
Companion to peanut-api-ts#1119. Users whose email was never captured used to dead-end on 'message support' (their only fix was a ticket); the BE now emits a provide-email NextAction for those rails, and this renders it: an email form (ActionModal, BridgeTosStep shell) wired into the two places the block surfaces — the home activation CTA and the bank add/withdraw gate. Saving posts update-user (first-time email set is allowed while KYC-locked) and the BE flips the rails to PENDING and resubmits automatically.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 40 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
Comment |
Code-analysis diffPainscore total: 5857.65 → 5867.21 (+9.56) 🆕 New findings (21)
…and 1 more. ✅ Resolved (17)
📈 Painscore deltas (top movers)
|
🧪 UI test report — ✅ all greenSuites
📊 Coverage (unit)
⏱ 10 slowest test cases
|
…tract, shadowing, copy getKycModalVariant maps provide-email to 'blocked' so unwired gate consumers keep the contact-support floor instead of a bogus re-verify CTA; the gate and ActivationCTAs both detect via the provide-email action kind (one contract, no reason-code divergence) and prefer an email-blocked rail over an earlier terminal one; the home CTA copy now says 'Add your email / Add email' instead of promising support and opening a form; the sheet resets on reopen and guards a not-yet-loaded userId.
|
@coderabbitai review |
✅ Action performedReview finished.
|
Summary
Companion to peanutprotocol/peanut-api-ts#1119. Users whose email was never captured dead-end on 'message support' — the only recovery for all 61 affected users (none have a Sumsub email either; verified against prod). The BE emits a
provide-emailNextAction for email-blocked rails; this PR renders it:provide-emailadded toNextActionKind+ capability gate (GateStatevariant, checked beforerestart-identityin the blocked branch).ProvideEmailStep(ActionModal + email field, BridgeTosStep shell): validates, POSTsupdate-user(first-time email set is allowed while KYC-locked), refetches capabilities. BE flips rails → PENDING and resubmits automatically.ActivationCTAs(detectsreason.code === 'email_required', opens the sheet instead of the support drawer) and the bank add/withdraw gate (AddWithdrawCountriesList, mirrors accept-tos).Risks / breaking changes
QA