fix: contact request or pay sheet and pay delay - #1349
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Regtest APKDownload bitkit-dev-debug universal APK (expires in 30 days). |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This comment has been minimized.
This comment has been minimized.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, all four fixed, one commit each:
|
pwltr
left a comment
There was a problem hiding this comment.
Three behavioral issues remain around incomplete eligibility checks and Contact Detail lifecycle cleanup. I also noted one cross-platform identifier documentation mismatch.
|
Two independent reviews, nothing blocking a merge. worth doing, does not block
nits
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Fixes for @pwltr's review and @coreyphillips's second review, one commit per concern:
Evidence
contact-pay-leave-and-return.mp4 |
|
@coreyphillips all five items from your second review are addressed; details, tests and an emulator recording are in #1349 (comment).
|
iOS port: synonymdev/bitkit-ios#809
This PR:
Description
Out of Scope
Design
Preview
Warm app, contact linked on
bitkit/wallet: open the contact, tap Pay, then Pay on the sheet.Before: the sheet closes and nothing happens for about 7 s before the amount screen opens.
before.mp4
After: Pay shows a spinner on the sheet and the amount screen opens in about 1.5 s.
after.mp4
QA Notes
Journeys
contact-request-or-pay.xml— Pay on a linked contact offers Request or Pay, Pay shows progress and opens the amount screen within 3 s, Request opens the Payment Request amount screenManual Tests
N/A
Automated Checks
ContactDetailViewModelTest.kt— Pay shows the sheet for an eligible contact, refreshes eligibility when the contact is not yet known, falls back to paying when the contact cannot receive requests, skips the check for an unsaved contact, paying from the sheet opens the payment, a later Pay tap rechecks eligibility after an earlier check found none, the sheet closes when the contact stops being eligible but stays open while a payment is preparing, dismissing the sheet while paying cancels the payment or the amount-screen scan, a stalled eligibility check is cancelled before paying, a recent check is reused and a stale one repeated, and Pay stays loading until the amount screen opens; an incomplete or failed check is not reused, a checked target that leaves the eligible list is checked again, and leaving the screen cancels a pending payment or amount-screen scanPaykitPaymentRequestRepoTest.kt— the single-contact refresh adds a newly eligible contact, removes one that is no longer linked or stopped accepting requests, keeps a known target while the capability lookup fails, runs while a full refresh is still scanning, is not overwritten by an older full refresh and does not overwrite a newer one, leaves a full refresh's results for other contacts intact, a failed single-contact lookup neither overwrites an older full refresh nor reports itself complete, and a failed full refresh still drops contacts that are no longer saved but keeps a newer single-contact resultAppViewModelSendFlowTest.kt— a cancelled contact scan clears its payment contextPrivatePaykitRepoTest.kt— a saved-contact payment opens while the endpoint publish is still stalled, and repeated payments run one publish per contact at a time