Repository navigation
gui: Require wallet identity before restore - #118
BenWestgate wants to merge 3 commits into
Conversation
A checksum-valid recovered seed may not be the operator’s wallet. Ask for the independent record fingerprint before listing wallets, then carry it through existing and newly created destinations so a mismatch stops before unlock, create, or import. Keep the explicit no-record visual fallback, but do not allow its revealed fingerprint back into the recorded route in the same attempt. Raise the separately enforced GUI review cap to the authorized 2,250 lines for this gate. Keep the combined Python 3.10-3.15 package compatible with the GUI code and passphrase encoding check. Exercise the focused boundary and display walkthrough with synthetic data. Refs #26 and #28.
BenWestgate
left a comment
There was a problem hiding this comment.
AI-generated review (Codex), posted at the maintainer's request.
Not ACKing d5b671a yet: the restore gate looks correctly threaded through GUI and library, but this raises the GUI review budget to 2,250 without explicit authorization.
BenWestgate
left a comment
There was a problem hiding this comment.
AI-generated current-head follow-up review (Codex), posted at the maintainer's request.
ACK d5b671a5c24b for the focused GUI restore-identity delta.
The earlier NACK treated the GUI <2250 review budget as unauthorized. The central release tracker #38 now explicitly records the maintainer-approved separate GUI cap of <2250 and the current GUI measures 2,177 logical lines, so that review blocker is stale.
The restore gate itself was already reviewed as correctly threaded: recorded identity is checked before wallet selection/unlock/import, the no-record route discloses the recovered identity only after that explicit choice, and restore rechecks identity immediately before a new Core destination is created. The exact combined staging tip reports normal/optimized suites, focused mismatch-before-wallet/unlock tests, real-Core fixture coverage, Ruff/mypy, and the Xvfb identity-path checks.
This ACK is for the focused #118 delta. Final integration still requires replaying it onto the settled #65 → #66 → #77 → #78 → #119 GUI stack and completing the documented Tails/manual visual qualification. Human review/authorship policy still applies.
|
@codex review |
|
Codex Review: Didn't find any major issues. Breezy! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
BenWestgate
left a comment
There was a problem hiding this comment.
Codex current-head review at d5b671a: one existing P2 remains. Fresh backup still advances after “I wrote it down” without requiring the wallet-record fingerprint to be re-entered and verified, unlike the share read-back flow.
Require a fresh wallet fingerprint to be re-entered before wallet selection so the wallet record gets the same write-and-read-back check as recovery cards. Refs #118.
BenWestgate
left a comment
There was a problem hiding this comment.
AI-assisted current-head review, posted at the maintainer's request.
ACK f871e59. Fresh creation now blocks wallet selection until the recorded fingerprint is re-entered, parses, and matches; the new boundary test covers that gate. Exact-head package CI passes. Final Tails/manual GUI qualification remains pending.
BenWestgate
left a comment
There was a problem hiding this comment.
AI-assisted current-head review: ACK f871e59. Recorded restores verify the typed wallet-record fingerprint before wallet listing and carry that expected value through unlock/create/import, with another verification immediately before mutation. The explicit no-record route is clearly separated, discloses the recovered identity, requires Restore anyway, and cannot return to the recorded-fingerprint route in the same attempt. Fresh creation only re-enters its newly generated fingerprint as a record-writing check, correctly passing no pre-existing identity commitment. Exact-head Python-package CI is green and there are no unresolved review threads. Final supported-Tails rendering and manual GUI-to-Core qualification remain integration checks, not code-review blockers.
What and why
A checksum-valid recovered seed may still be the wrong wallet. The GUI formerly reached wallet selection and import before presenting a fingerprint. This change asks for the fingerprint from the separate wallet record before listing wallets, carries it through every restore destination, and rechecks it before unlock, wallet creation, and library import. The explicit no-record route shows the recovered fingerprint and identifier assessment, then requires Restore anyway. Once disclosed, this attempt cannot return to the recorded-fingerprint route.
This is accident safety against wrong or mixed cards, not resistance to malicious replacement of a threshold of shares. The seed-keyed encrypted descriptor backup in #55 is the separate human-planned tampering defense.
Fresh creation still records its new fingerprint without claiming a pre-existing wallet identity. The separately enforced GUI budget rises from under 2,050 to the authorized under 2,250 lines; the current GUI is 2,177 logical lines. Small Python 3.10 compatibility adjustments are necessary because the integrated library supports 3.10 through 3.15.
Review scope and integration
This is one focused commit relative to a disposable staging base that merges the existing #78 GUI tip with the #33 library tip. No existing PR branch was rewritten. Review this diff for the GUI restore gate; do not merge the staging base directly to reviewability-v1. Historical #28 contains an obsolete copy of the library; this PR is the clean GUI replay. After upstream branches settle, a human can carry this GUI commit onto the final integration tip. Refs #26 and #28.
Verification
AI assistance produced this draft. It remains draft for human review, authorship, and signed integration under the repository AI policy.