feat(send): improve Lightning send failure recovery - #652
Conversation
896e0dd to
e9c58c5
Compare
Greptile SummaryThe PR moves Lightning failures into a dedicated retry flow, resets routing caches before retrying, and adds localized failure messages.
Confidence Score: 4/5The PR is not yet safe to merge because a failed Lightning stop can leave the wallet permanently stuck in the stopping lifecycle state. The recovery path calls Files Needing Attention: Bitkit/Views/Wallets/Send/SendFailure.swift; Bitkit/ViewModels/WalletViewModel.swift
|
| Filename | Overview |
|---|---|
| Bitkit/Views/Wallets/Send/SendFailure.swift | Implements cache-reset and node-restart recovery, but a stop failure can leave the lifecycle stuck in .stopping. |
| Bitkit/ViewModels/WalletViewModel.swift | Adds routing-cache reset and freshness polling while retaining a lifecycle state that the retry restart cannot recover. |
| Bitkit/Views/Wallets/Send/SendSheet.swift | Adds retry-route metadata and restores the corresponding confirmation flow. |
| Bitkit/Extensions/PaymentFailureReason+UserMessage.swift | Centralizes generic and send-specific localized payment-failure mappings. |
Reviews (2): Last reviewed commit: "feat(send): improve Lightning send failu..." | Re-trigger Greptile
0605e65 to
0949bb0
Compare
0949bb0 to
68877e8
Compare
68877e8 to
2261ea2
Compare
|
Failing e2e seems unrelated, ready for review. |
| "wallet__send_payment_route_not_found" = "Bitkit couldn't find a Lightning route for this payment. Tap Retry to update payment routing and check for a new path."; | ||
| "wallet__send_payment_retries_exhausted" = "Bitkit tried several Lightning routes, but the payment could not be completed. Tap Retry to update payment routing and try a new path."; |
There was a problem hiding this comment.
IDK if this message would improve the user experience 🤔
Summary
PaymentFailureReasonuser-message mapping intoPaymentFailureReason+UserMessage.swiftwith generic and send-specific contexts.Closes #483
Simulator.Screen.Recording.-.iPhone.17.-.2026-08-04.at.19.07.07.mov