Skip to content

Hide Stealth reason on a plain send - #6270

Merged
j0ntz merged 1 commit into
developfrom
jon/stealth-reason-plain-send
Oct 20, 2026
Merged

j0ntz merged 1 commit into
developfrom
jon/stealth-reason-plain-send

Conversation

@j0ntz

@j0ntz j0ntz commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Description

Asana task

On a plain send with Stealth off, the send scene showed a Stealth reason line under the toggle even though no swap was involved. A CELO or RBTC send read "Stealth routing is not available when sending CELO to itself", and a small ETH send read the private-route minimum.

The line rendered whenever Stealth was off. With no recipient asset picked, the destination defaults to the source asset. The scene then treated a plain send as a same-asset Stealth route and explained why that route was unavailable.

Changes:

  • The reason line under the toggle now renders only when a different recipient asset is picked (a swap is already involved), or after a failed Stealth quote turned the toggle back off.
  • Tapping the toggle on a plain send still toasts the reason. For an asset the Stealth provider does not serve at all (CELO, Fantom), the toast now reads "Stealth routing is not available for CELO." instead of the "to itself" wording.
  • The below-minimum line follows the same rule.

Tests: three new cases in SendScene2.recipientNetwork.ui.test.tsx cover an unserved asset's plain send, the minimum line before and after picking a recipient asset, and the line kept after a failed Stealth quote. The harness gains a fake swap plugin that refuses every quote.

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

none

Requirements

If you have made any visual changes to the GUI. Make sure you have:

  • Tested on iOS device
  • Tested on Android device
  • Tested on small-screen device (iPod Touch)
  • Tested on large-screen device (tablet)

Note

Low Risk
Send-scene UI and copy only; toggle behavior on tap is unchanged aside from clearer unsupported-asset toasts.

Overview
Fixes misleading Stealth Send copy on plain sends (same asset, no recipient swap picked). The blocked-reason line under the toggle no longer appears just because Stealth is off; it only shows when a cross-asset recipient is already chosen or after a failed Stealth quote turns the toggle off. Tapping the toggle on a plain send still toasts the reason.

When Stealth cannot serve an asset at all, blocked messaging uses a new stealth_asset_unsupported_1s string instead of the “send to itself” wording. Tests cover plain-send notes, minimum-amount visibility before/after picking a recipient asset, and persistence after quote failure (with a fake Houdini plugin that refuses quotes).

Reviewed by Cursor Bugbot for commit 35a95f1. Bugbot is set up for automated code reviews on this repo. Configure here.

Test evidence

7ab5d7e
Hide Stealth reason on a plain send
2026-10-16
🪓 forced every private Stealth quote to refuse (temporary edit in the quote fetch, reverted)

1. celo plain send no note

2. celo toggle toast

3. eth 5usd plain send no note

4. eth to btc swap shows minimum

5. 🪓 failed quote line

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-16T23:03:06.507124Z 7ab5d7e PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

The reason line under the Stealth Send toggle rendered whenever Stealth
was off, with no check for a swap. With no recipient asset picked the
destination defaults to the source, so a plain CELO or RBTC send read
"not available when sending CELO to itself", and a small ETH send
read the private-route minimum.

Show the line only when a different recipient asset is picked, or after
a failed Stealth quote turned the toggle back off. Tapping the toggle
still toasts the reason, and an asset the provider does not serve at
all now reads "Stealth routing is not available for CELO."
@j0ntz
j0ntz force-pushed the jon/stealth-reason-plain-send branch from 7ab5d7e to 35a95f1 Compare October 20, 2026 17:48
@j0ntz
j0ntz enabled auto-merge October 20, 2026 17:49
@j0ntz
j0ntz merged commit 249ac6a into develop Oct 20, 2026
7 checks passed
@j0ntz
j0ntz deleted the jon/stealth-reason-plain-send branch October 20, 2026 18:15
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