Skip to content

fix(add-money): carry native SEPA currency fix to dev - #3240

Merged
abalinda merged 1 commit into
devfrom
codex/sepa-confirmation-dev
Sep 17, 2026
Merged

abalinda merged 1 commit into
devfrom
codex/sepa-confirmation-dev

Conversation

@abalinda

Copy link
Copy Markdown
Contributor

Summary

Carry the exact fix and regression tests from #3238 into dev so the next native production release includes them. Native SEPA confirmation must keep the EUR amount entered by the user.

Cherry-picked 4a34bbb3805567f002fb478fac0a07e87d1d7204 without conflict or edits. All added and removed lines match byte-for-byte; stable patch ID is 3efa4c31fd2a518d4f466daa9e898dd7ca71df7e for both commits. The test file is byte-identical. Existing differences between main and dev remain intact.

Task

SEPA deposit shows $ at the confirmation screen

Validation and risk

Local dev checks: 632 suites / 7,787 passing tests / 7 skipped; typecheck and repository-wide Prettier pass; ESLint 0 errors, 67 existing warnings. No production imports or types changed; build not required. Original PR: 579 suites / 7,086 passing tests, typecheck and formatting green, exact-head Chip review clear.

UI-only country resolution; no backend request or amount changes. The tests cover native EUR display, copy/share, quote currency, web precedence, US fallback and request fulfillment. No new architecture or docs/legal changes.

Screenshots: ⚠️ NONE — same visible fix as #3238; native confirmation has no existing screenshot fixture and this machine has no iOS simulator. Native device verification remains outstanding.

Merging to dev does not itself publish to native production. The fix becomes available when the production App Release OTA workflow ships a reviewed release containing this commit.

@vercel

vercel Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
peanut-wallet Ready Ready Preview Sep 17, 2026 2:19pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 5f3a664d-2da7-4ee4-bd8b-f8df5235b14a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@abalinda

Copy link
Copy Markdown
Contributor Author

/chip review

@github-actions

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 8059.5 → 8059.69 (+0.19)
Findings: 0 net (+6 new, -6 resolved)

🆕 New findings (6)

  • critical complexity — src/components/AddMoney/components/AddMoneyBankDetails.tsx — CC 89, MI 53.88, SLOC 241
  • high method-complexity — src/components/AddMoney/components/AddMoneyBankDetails.tsx:54 — AddMoneyBankDetails CC 38 SLOC 112
  • medium react-long-component — src/components/AddMoney/components/AddMoneyBankDetails.tsx:54 — AddMoneyBankDetails is 436 lines — split it
  • medium high-mdd — src/components/AddMoney/components/AddMoneyBankDetails.tsx:54 — AddMoneyBankDetails: MDD 156.5 (uses across many lines from declarations)
  • medium high-mdd — src/components/AddMoney/components/AddMoneyBankDetails.tsx:187 — generateBankDetails: MDD 30.9 (uses across many lines from declarations)
  • medium method-complexity — src/components/AddMoney/components/AddMoneyBankDetails.tsx:187 — CC 22 SLOC 62

✅ Resolved (6)

  • src/components/AddMoney/components/AddMoneyBankDetails.tsx — CC 87, MI 54, SLOC 239
  • src/components/AddMoney/components/AddMoneyBankDetails.tsx:54 — AddMoneyBankDetails CC 36 SLOC 110
  • src/components/AddMoney/components/AddMoneyBankDetails.tsx:54 — AddMoneyBankDetails is 434 lines — split it
  • src/components/AddMoney/components/AddMoneyBankDetails.tsx:54 — AddMoneyBankDetails: MDD 156.0 (uses across many lines from declarations)
  • src/components/AddMoney/components/AddMoneyBankDetails.tsx:185 — generateBankDetails: MDD 30.9 (uses across many lines from declarations)
  • src/components/AddMoney/components/AddMoneyBankDetails.tsx:185 — CC 22 SLOC 62

@abalinda
abalinda marked this pull request as ready for review September 17, 2026 14:16
Copilot AI lite review requested due to automatic review settings September 17, 2026 14:16

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • ✅ unit: 7794 ran, 0 failed, 0 skipped, 2.3m

📊 Coverage (unit)

metric %
statements 79.3%
branches 66.9%
functions 73.8%
lines 80.5%
⏱ 10 slowest test cases
time test
🐢 9.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Network failure keeps loading while retries remain, then shows the generic error
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_MERCHANT_VOLUME_NEAR_CAP fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_MERCHANT_RECENT_REFUND fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › User KYC not approved fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_SOURCE_OVER_MONTHLY_CAP fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › a refused idempotency key tells the user to scan again, not to contact support
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_USER_NOT_PROVISIONED fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › routes the KYC rejection on its wire code, and does not retry it
3.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Going offline blames the connection, and reconnecting clears it for the recovered scan
3.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Scan that recovers on the retry lands on the payment screen, not an error
📍 Inline annotations are in the **Unit test report** check above. Coverage artifact: `coverage-unit`. Generated by `.github/workflows/tests.yml`.

@chip-peanut-bot chip-peanut-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chip review — no blocking findings — this is not an approval

No findings. The native query-country fallback restores the deposit currency while preserving web-path precedence and request-fulfillment isolation.

Checked clean

  • Verified the detached worktree head, trusted author, dev base ref/SHA, and merge base against the supplied values.
  • Reviewed native country query resolution, web path precedence, request-fulfillment isolation, currency formatting, copy/share output, and quote account-type selection.
  • Confirmed the head patch is byte-identical by stable patch ID to the source fix referenced by the PR.
  • Exact-head CI unit, typecheck, format, eslint, screen-tests, native-export, and aggregate ci-success checks passed; visual capture jobs were still running when checked.
  • The focused test could not run locally because the detached worktree has no node_modules; the same exact-head unit check passed in CI.

Security review: did not run — this change has no security, privacy or money surface, so it was not asked. This review is one reviewer short.

Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: 7532f71c3e41 · Context: repo · Took 5m

@abalinda
abalinda merged commit 8b6636a into dev Sep 17, 2026
33 checks passed
@chip-peanut-bot

Copy link
Copy Markdown
Contributor

This pull request was already closed when the review finished, so these findings are follow-up work rather than a gate.

Chip review — no blocking findings — this is not an approval

No findings. The native query-country fallback restores the deposit currency while preserving web-path precedence and request-fulfillment isolation.

Findings

  • MINOR · src/components/AddMoney/components/AddMoneyBankDetails.tsx:472 · [claude-opus] SEPA ETA copy now shown to native users understates deposit speed vs product truth
    This change flips onrampCurrency from 'usd' to 'eur' on native SEPA routes, which also flips the ETA line at src/components/AddMoney/components/AddMoneyBankDetails.tsx:466-472 from t('bankDetails.etaAch') to t('bankDetails.etaSepa'). That string (src/i18n/app/messages/en.json:1802) reads "Usually arrives within 1 business day." Product truth says SEPA is "90% under 20 minutes, up to 1 business day" (/home/chip/mono/product/networks.md:175,264, quick-ref.md:46, currencies.md:68 "SEPA typically under 20 minutes"). The code is the wrong side: it presents the ceiling as the typical case. The comment directly above it at line 462-464 even claims the copy "leads with the typical case" — it does not. To be clear, the string itself is pre-existing and already wrong on web; this PR only newly routes native SEPA depositors into it, and the direction is an improvement over the ACH copy they saw before, so this is not a regression introduced here. Fix: change etaSepa (and the es-419/pt-BR/es-AR equivalents) to something like "Usually arrives within 20 minutes, up to 1 business day." Out of scope for this PR if you prefer to keep it a clean cherry-pick.

Inline anchors unavailable for 1 finding(s); the findings remain in this summary.

Checked clean

  • Verified the trusted author, dev base ref/SHA, exact head object, merge base, and two-file diff against the supplied values.
  • Reviewed native country query resolution, web path precedence, request-fulfillment isolation, currency formatting, copy/share output, and quote account-type selection.
  • Confirmed the head patch is byte-identical by stable patch ID to the source fix referenced by the PR.
  • Exact-head CI unit, typecheck, format, eslint, screen-tests, native-export, and aggregate ci-success checks passed.
  • The supplied detached worktree had already been cleaned up; the exact head/base objects and surrounding code were revalidated read-only from the review pipeline repository.

Security review: did not run — this change has no security, privacy or money surface, so it was not asked. This review is one reviewer short.

Third opinion by claude-opus: 1 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: 7532f71c3e41 · Context: repo · Took 7m

This branch was successfully deployed

1 active deployment
Preview — 7532f71c Deployed Sep 17, 2026 by vercel[bot]
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.

2 participants