Skip to content

Conversation

@github-actions
Copy link

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

* 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().
@github-actions
Copy link
Author

github-actions bot commented Jan 12, 2026

⚠️ Security: 0 critical, 65 high vulnerabilities

bernd2022 and others added 2 commits January 12, 2026 12:17
- 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>
@TaprootFreak TaprootFreak merged commit 60738b0 into main Jan 12, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants