Prototype: Houdini private-send reorg (Proposal A)#6054
Conversation
c4a2ca2 to
bf8eef7
Compare
Adds a review-only, fully navigable prototype of the redesigned Houdini private send flow, reachable from a wallet's Send button. The scene reorganizes the send-to-address experience with two linked amounts (You send / Recipient gets) computed from a hard-coded rate, a recipient-asset picker over a hard-coded chain list, a Private send toggle, an inline quote row, a network fee row, and a conditional destination-tag row. Cross-asset or private sends complete on SwapSuccessScene; same-asset sends show the transaction success modal. Nothing talks to Houdini; all values are hard-coded. The card grouping uses Proposal A (From -> To grouping).
Walks the prototype from the wallet Send button through the reorganized scene, recipient-asset picker, cross-asset XMR destination tag, Private send toggle, and both success paths (Transaction Success modal and SwapSuccessScene), capturing review screenshots along the way.
bf8eef7 to
ecd9a88
Compare
Address Proposal A review feedback: the Houdini provider tile no longer renders on a plain same-asset, non-private send. It appears only when the send is private or converts between assets, with the title 'Houdini Private Exchange' (private) or 'Houdini Exchange' (cross-asset). A plain BTC send now shows the standard add-recipient-address UI and hides the estimated recipient amount.
Apply review feedback on the redesigned send flow: - Drop the conversion-rate tile. Show a conversion percent on the estimated side instead (swap-scene style), saving a tile. - Rename 'Private send' to 'Incognito send' throughout. The incognito toggle tile now expands with explanatory messaging while enabled. - A plain same-asset, non-incognito send is treated as an ordinary on-chain send: standard add-recipient-address UI, no exchange rows. Routing through Houdini (incognito or cross-asset) shows the estimated amount, conversion percent, and a locked recipient address. - Update the maestro walk to cover all branches (plain, incognito, swap) and both success paths.
Bugbot: on the cross-asset / incognito completion path the slider reset was called synchronously before navigating, which left the control active and let a second slide fire another navigation. Drop the early reset so SafeSlider locks after completion, and add a submission guard so the handler runs once.
Apply the next round of design-review feedback: - The send scene reveals the amount and network-fee rows only after a recipient address or asset is selected. Add an a1/a2 variant for the initial state: a1 shows the Recipient receives row up front, a2 hides it until a selection. - Add a Houdini swap prototype reachable from a wallet's Trade -> Swap action: an amount-entry scene with the incognito toggle in an expanding card, then a mock quote scene that shows 'Powered by Houdini' with no tappable chevron. - Add maestro walks for both flows.
📸 Design review v4 — send reveal-on-selection + A1/A2 variants + Houdini swap flowagent proof 1216019116944855 v4 01 a1 plain initial agent proof 1216019116944855 v4 02 a2 plain initial agent proof 1216019116944855 v4 03 a1 after address agent proof 1216019116944855 v4 04 a1 incognito agent proof 1216019116944855 v4 05 asset picker agent proof 1216019116944855 v4 06 cross asset xmr agent proof 1216019116944855 v4 07 swap entry agent proof 1216019116944855 v4 08 swap incognito card agent proof 1216019116944855 v4 09 swap quote powered by Captured by the agent's in-app test run (build-and-test). |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit e3eacff. Configure here.
| incognito | ||
| }) | ||
| reset() | ||
| }) |
There was a problem hiding this comment.
Quote slider allows double navigation
Medium Severity
handleGetQuote calls the SafeSlider reset callback synchronously right after navigation.navigate to the quote scene. SafeSlider only locks when reset is not invoked during completion, so a second slide can push another quote screen before the first transition finishes.
Triggered by project rule: Bugbot Review Rules
Reviewed by Cursor Bugbot for commit e3eacff. Configure here.











CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
none
Requirements
If you have made any visual changes to the GUI. Make sure you have:
Description
Prototype of the redesigned Houdini send and swap flows, Proposal A. Review-only and fully navigable; nothing talks to Houdini and every value is hard-coded so a reviewer can walk every branch.
Asana: https://app.asana.com/0/1215088146871429/1216019112895453
Send scene (
HoudiniSendScene, reached from a wallet's Send button)You sendamount andNetwork Feerows appear only after a recipient address or asset is selected.Recipient receivesrow before any selection; A2 hides it until a selection is made (the only difference between them).Recipient receivesasset picker over a hard-coded chain list (BTC, ETH, XMR, SOL).Destination Tagrow.Incognito sendtoggle; when enabled the toggle tile expands in place with messaging.Swap scene (
HoudiniSwapScene->HoudiniSwapQuoteScene, reached from a wallet's Trade -> Swap action)You send/You receive(with conversion percent), and the incognito toggle in an expanding card before the quote.You send/You receive, rate, network fee, andPowered by Houdiniwith no tappable chevron, then a confirm slider to the swap success scene.The send scene is parameterized by
layout: 'a' | 'b'andvariant: 'a1' | 'a2'; this branch routeslayout: 'a'.Testing
Driven end to end on the iOS simulator via maestro (
maestro/14-houdini/houdini-send-a.yaml,houdini-swap-a.yaml). The current screenshots are in the latest review comment; older proposal screenshots were removed.