Release: develop -> main#3886
Merged
Merged
Conversation
…#3855) * fix(user): case-insensitive mail lookup to prevent duplicate accounts After the MSSQL->PostgreSQL cutover (#3620), the duplicate-detection lookup `getUsersByMail` used an exact, case-sensitive `mail = ?` comparison. Accounts created before the input lowercase-normalization (#2695) hold mixed-case mails, so the lookup no longer matched them and a second account could be created for the same address (e.g. `Samuel.kullmann@...` vs `samuel.kullmann@...`). - getUsersByMail now compares LOWER(mail) = :mail (input lowercased) - migration lowercases legacy user_data.mail and recommendation.recommendedMail - migration adds a non-unique functional index on LOWER(mail) - specs cover the case-insensitive lookup and the conflict path The UNIQUE variant of the index is intentionally deferred to a separate, gated migration once the existing duplicate accounts are merged. * fix(auth): retry mail dedup lookup on concurrent create (duplicate key) Once the unique LOWER(mail) index lands, two simultaneous mail logins for the same new address could both pass the empty lookup and the second createUserData would raise a unique violation, surfacing as an unhandled 500. Mirror the duplicate-key handling already used in signIn() by re-resolving via the mail lookup instead of failing. * fix(user): normalize mail to lowercase on internal write paths Defense-in-depth: the @Transform(toLowerCaseTrim) only fires at the HTTP DTO boundary, so internal callers of createUserData/updateUserDataInternal/ doUpdateUserMail could persist mixed-case mail and bypass the case-insensitive dedup (and later hit the unique LOWER(mail) index as a hard error). Lowercase the mail at these write points to keep stored data consistent with the lookup.
…9) (#3862) * fix(lightning): block path traversal in LNURL forwarding endpoints (BUG-1209) Validate link IDs in LightningClient to reject path traversal via double-encoded slashes. Add admin endpoint to rotate webhook secrets. * fix(lightning): add validation guards to getLnurlpLink and updateLnurlpLink * fix(lightning): restore CA-validated https agent for LNbits requests (#3869) The Agent reuse refactoring dropped the CA-validated httpsAgent from httpLnBitsConfig, so LNbits requests are verified against system CAs only. In production LNbits serves the self-signed LND certificate, which makes every LNbits call fail TLS verification. Reuse one shared CA-validated agent for both LND and LNbits requests. --------- Co-authored-by: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com>
* fix(payment): align quoted bank fee with actual deposit bank * fix(payment): restrict vIBAN eligibility to CHF and drop eligibility prediction from quote bank resolution
…ansfers (#3885) * fix(log): match finance-log transfers by full reference for manual transfers The finance log pairs bank transfers (senders) with exchange deposits/withdrawals (receivers) by a shared reference to account for in-transit funds. getTxReference extracted only trailing digits, which broke for manually labelled transfers: a date-style reference such as "21.05.2026" has no usable trailing id and collapsed to the year, while a letter-suffixed reference resolved to nothing at all. As a result manual transfers were either left permanently unmatched (inflating pending balances) or collided across unrelated transfers on the shared year. Automated payout references start with a letter and carry the payout id as a trailing >= 4 digit run (sender "DFX Payout NNNNN", receiver "DEPOSIT-NNNNN"/"E2E-NNNNN"); these keep matching by payout id. Manual references start with a digit (date-style) and now pair on the normalized full reference, which is identical on both sides. * style(log): fix prettier formatting in log-job spec * test(log): remove duplicate DEPOSIT receiver test (already covered)
…06-15 as invalid (#3889)
davidleomay
approved these changes
Jun 15, 2026
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