Merged
Conversation
* chore: rename master branch references to main Update all workflow files to use 'main' instead of 'master': - api-prd.yaml: trigger on main branch - api-pr.yaml: run PR checks for main branch - codeql.yml: scan main branch - auto-release-pr.yaml: create release PRs to main * docs: fix CitreaScan branch reference (master -> main)
…2904) In completeSignInByMail(), the wallet relation was not loaded when fetching userData, causing the autoTradeApproval check in checkPendingRecommendation() to always fail. Changes: - Add wallet to relations in getUserData() call - Pass account.wallet to checkPendingRecommendation() This aligns mail-login with wallet-login behavior where the wallet is properly passed to checkPendingRecommendation().
Author
|
- Skip mail sending in local environment and log mail details instead - Log mail login URL in local environment for easy testing - Add SERVICES_URL to .env.local.example for complete login URLs
* fix: initialize KYC progress on mail login to set kycLevel 10 Mail login users had kycLevel 0 even though their email was verified via OTP. This happened because the KYC flow was never triggered after mail login, leaving CONTACT_DATA step uncompleted. Changes: - Add initializeProgress() method to KycService that triggers updateProgress() for a given user - Call initializeProgress() in completeSignInByMail() after successful authentication Now when a user completes mail login: 1. initializeProgress() triggers updateProgress() 2. CONTACT_DATA step is auto-completed (user.mail exists) 3. PERSONAL_DATA becomes next step → kycLevel set to 10 This makes mail login behavior consistent with wallet login where adding an email triggers the same KYC flow. * fix: improve initializeProgress with retry logic and error handling - Set shouldContinue=false to only set kycLevel without initiating next KYC steps (PERSONAL_DATA) - Add Util.retry() with duplicate key check for race conditions (e.g., user double-clicks OTP link) - Make KYC initialization non-blocking in completeSignInByMail() so login succeeds even if KYC init fails * fix: correct initializeProgress to use autoStep=false The previous fix with shouldContinue=false was incorrect - it prevented any KYC progress from happening because CONTACT_DATA doesn't return a nextLevel value. The correct solution is shouldContinue=true, autoStep=false: - shouldContinue=true: allows CONTACT_DATA to be initiated and auto-completed - autoStep=false: prevents PERSONAL_DATA from being initiated (depth > 0) Flow: 1. depth=0: (autoStep || depth===0) = true → CONTACT_DATA initiated/completed 2. depth=1: (autoStep || depth===0) = false → Level 10 set, no further steps * fix: skip initializeProgress for users with CONTACT_DATA completed Prevents unintentionally initiating PERSONAL_DATA step for returning users who already have CONTACT_DATA completed. The level should already be set for these users. * chore: add migration script to fix kycLevel for edge case users 4 active users have CONTACT_DATA completed but kycLevel = 0. This SQL script updates their level to 10. Affected user IDs: 257036, 229330, 1158, 1058 * fix: make migration script safer - Comment out UPDATE statement (must be uncommented manually) - Add transaction wrapper (BEGIN/COMMIT/ROLLBACK) - Use JOIN-based UPDATE syntax for SQL Server - Add clear step-by-step instructions - Add row count verification check * fix: Start KYC process on mail add * fix: script executed --------- Co-authored-by: David May <david.leo.may@gmail.com>
davidleomay
approved these changes
Jan 12, 2026
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automatic Release PR
This PR was automatically created after changes were pushed to develop.
Commits: 1 new commit(s)
Checklist