stack/getpaid 2 57 backup redesign - #225
Draft
BullishNode wants to merge 3 commits into
Draft
Conversation
Brings SatoshiPortal#2453 (13 commits) into the Get Paid stack. The screen is a merge, not a copy: the fork already wraps a second cubit and renders the inline "Bull backup" metadata card, so the upstream skeleton is rebuilt around both. The reminder engine is new to the fork. It answers one question — if this phone vanished right now, could you get your money back? — and each posture gets exactly one verb: - vault only, no physical: every 90 days, "add a physical backup" - physical done (± vault): every 365 days since the last test - a one-time popup the first time the device-key balance is observed at or above 10,000,000 sats - zero backup makes NO decision here; that state stays owned by the existing every-launch backup warning overlay Each cadence is anchored on the clock of the thing being urged, so a fresh vault write cannot silence a stale physical backup. Dismissing snoozes the popup for a full cycle and never touches last_tested, so the screen keeps telling the truth while the popup is quiet. There is deliberately no PIN or vault-freshness reminder and no both-verified "review" nag: neither has an action behind it. The screen becomes status rows -> posture hero -> Start Backup button -> menu rows, each section built by its own function so the fork's metadata insertions land without disturbing the others. Start Backup is a button rather than a settings row, and it is suppressed only in the zero-backup state where the hero already offers it. Recoverbull: the vault permission gate is gone (nothing else in the fork consumed FetchPermission/AllowPermission), a custom key server URL now warns before it is saved, and user-facing "Recoverbull" vocabulary is retired in favour of "encrypted vault" — while keeping the recoverbull.com domain strings and the four server-product strings. Localization follows the fork rule: retired wording is deleted from every locale and re-added EN-only so stale translations cannot resurface; unchanged wording keeps its translations. 9 keys deleted, 4 reworded, 21 added.
Replaces the inline "Bull backup" card with the two designed insertion
points, so the Backup Settings screen stays one glanceable list of what could
bring the wallet back and every metadata action moves behind a menu row.
The status row says whether automatic backup is on, then adds at most one
muted line. What that line says is the point:
- a write the server REJECTED reads "Attention needed", never "pending".
A rejected write is not a write that is still coming, and the live build
used to claim it was, forever.
- a write that is merely queued is left alone: dirty with no attempt since
the last success has not failed, so it keeps showing when the last write
actually landed.
- a backup from a newer app version and blocked recovery are the other two
"Attention needed" cases: both need the user before progress resumes.
- nothing is claimed before the first read resolves — an unread backup is
neither on nor off.
The predicates live on WalletBackupSettingsState so the honest/dishonest
boundary is unit-testable rather than buried in a widget, and the last
backed-up time is derived only from an observed success.
The menu row opens a new Metadata backup options screen holding what the
inline card held — the toggle, Back up now, Delete backup and its
confirmation, the status line, and the recovery retry. The controls widget is
kept as that screen's body rather than rewritten: the logic MOVED, it did not
change. Pushed as its own subroute, so it resolves its own cubit instead of
borrowing the parent screen's. It is also the landing surface for the unified
backup contract work, so it stays self-contained.
5 EN-only arb keys added.
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.
Stack created with GitHub Stacks CLI • Give Feedback 💬