Repository navigation
fix(monero): three Send money bugs — a stray Mark received, a used address, the wallet button - #341
Merged
Merged
Conversation
…dress, the wallet button Found on the Monero send flow (2026-10-23): - Mark received before anything arrived closed the send unpaid. The payer's link went away, and their card said the payee's wallet had confirmed it. Now Mark received takes a second press, its warning in place of the share's status, and Cancel undoes the first. On Monero it is offered only once the payer has said they paid: the payee's own wallet confirms on its own, so before a report there is nothing to mark. A share closed by the payee's word now reads "<payee> marked it received" on the payer's card, not "<payee>'s wallet confirmed your payment". The module still takes the payee's word (a request paid in cash, probe_xmr_no_spend_stepper). - A second send to someone reused their last shared Monero address, which already backs a payment, and the module refused it (shared-address-used) with no way forward. The form now applies the module's rule: a used address doesn't count, the form says so, and it offers "Ask <name> for a new Monero address". - Pay with Monero Wallet raised monero.accounts.manage, which Monero Wallet answers by opening its Settings tab. Monero Wallet 0.1.1 takes no address or amount from another app, so nothing can prefill its Send yet. The button is now "Copy address, open Monero Wallet": it copies the address and brings the wallet up on its own view through the shell's basecamp.apps.launch (declared in uses). The steps say the wallet can't be filled in from here. A prefilled Send needs an upstream intent: exo-914. Also: FakeBackend.qml regenerated (stale on main since #339's FileShare slots). Tested-Behavior: gallery fixture card-mark-received (a recorded split-self-test snapshot of the payee with an agreed, unpaid split): the first press arms with the warning and Cancel, Cancel disarms, the second press calls confirmPart — 5 checks, 0 QML warnings; the full gallery 152 ok, one failure (settings-btc-payer) that fails identically on main (exo-a908); ui-lint 0 new; MUSTER_UI=dev ui-parity 12/12. The Monero-only parts (the gate on a report, the used-address form, the wallet launch) were not rendered: no recorded Monero room exists, and the runner bundles no Monero wallet Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Session-Id: 836705fe-fda9-501b-8ac2-1ce50b5af64a
Fergulati
pushed a commit
to Fergulati/muster
that referenced
this pull request
Oct 24, 2026
…llet can (exo-914) The card's button asks Monero Wallet to fill its Send tab with the agreed address and amount, through monero.wallet.send (logos-co/logos-monero-wallet-ui#11). The person checks both there and sends; Muster sends nothing and approves nothing (ADR-018). A wallet without that intent (Monero Wallet 0.1.1, the released one) answers unavailable. Muster then falls back to corpetty#341's path: the wallet is brought up on its own view (basecamp.apps.launch), and the card's steps say what to type. The address is copied either way. A refusal from the wallet itself (a view-only wallet, a send already on screen) is shown as its own reason. The card's steps say which happened: "Monero Wallet's Send is filled in with <payee>'s address and N XMR" or the copy-and- paste steps. ui/metadata.json declares monero.wallet.send in uses. The wallet's side was driven in Basecamp 0.3.2 with the corpetty#11 build: the intent filled Send with the address and amount, and waited for a wallet to open when none was. Muster raising it from a Monero card has not been driven: no recorded Monero room exists, and the runner bundles no Monero wallet. The release check covers it. Tested-Behavior: ui-lint 0 new; gallery card-mark-received, card-status-split-agreed and flow-approve ok with 0 QML warnings; the wallet half in Basecamp 0.3.2 (logos-monero-wallet-ui#11): a monero.wallet.send request filled Send with the address and 0.0005, and refilled it with 0.0001; a 13-place amount refused Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Session-Id: 836705fe-fda9-501b-8ac2-1ce50b5af64a
Fergulati
added a commit
to Fergulati/muster
that referenced
this pull request
Oct 24, 2026
Main moved three PRs past this branch's base 67701f8 (corpetty#341, corpetty#342, corpetty#343: Send money fixes, Pay with Monero Wallet filling its Send tab, the pebbles for 0.3.3), which left PR 340 conflicting. The one conflict was ui/tests/gallery/FakeBackend.qml, which both sides had regenerated with FileShare's props and slots; it is generated from ui/src/muster_ui.rep, which main does not touch, so it is regenerated here (python3 ui/tools/gen-fake-backend.py) and comes out byte-identical to this branch's. Main.qml, Room.qml, RoomThread.qml, RoomComposer.qml, MusterCard.qml and CardProposal.qml merged on their own. TDD-Exempt: a merge of main; the regenerated fake backend is checked by gen-fake-backend.py --check, and the merged QML by the gallery fixtures run after it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Three bugs found in the Monero Send money flow.
1. Mark received before anything arrived closed the send unpaid.
2. A second send reused the payee's last shared Monero address and was refused (
shared-address-used), with no way forward.3. Pay with Monero Wallet opened the wallet's Settings tab.
monero.accounts.manage, which Monero Wallet answers by opening Settings.basecamp.apps.launch.Also:
FakeBackend.qmlregenerated; it was stale on main since #339.Tested
card-mark-received, built from a recorded snapshot of the payee with an agreed, unpaid split:confirmPart.settings-btc-payer, fails identically on main (exo-a908).ui-lint: 0 new findings.MUSTER_UI=dev ui-parity: 12/12.Not seen rendered: the Monero-only parts (the gate on the payer's report, the used-address form, the wallet launch). No recorded Monero room exists, and the runner bundles no Monero wallet.
🤖 Generated with Claude Code