gui: Refresh empty wallets automatically - #66
BenWestgate wants to merge 3 commits into
Conversation
BenWestgate
left a comment
There was a problem hiding this comment.
AI-generated review, posted at the maintainer's request.
Not ACKing 9b4066e: if the selected wallet disappears on refresh, target falls through to len(current) and silently activates Create a new wallet. Continue can then change the destination without an explicit user choice.
|
Review note: the polling change does remove the standalone #65 |
9b4066e to
e552e60
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e552e60f31
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
Poll Bitcoin Core once per second while the wallet chooser is visible, matching the CLI's waiting behavior. Preserve the selected wallet by exact name and serialize polling with other background work so refreshes cannot overlap imports or correction. The GTK walkthrough covers automatic appearance, selection preservation, removal of the manual refresh button, and stopping after navigation. Full normal and optimized suites, Ruff, strict mypy, and the walkthrough pass.
e552e60 to
c26de06
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c26de065d1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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.
AI-generated release-gate review, posted at the maintainer's request.
ACK dfffb00.
- The disappearing-selection regression is fixed: refresh preserves a wallet by exact name when present; if it disappears, no replacement/Create row is selected and Continue stays disabled until explicit reselection.
- Transient read-only poll failures leave the chooser intact and retry.
work.poll()now uses daemon workers so a stuck read-onlybitcoin-clipoll cannot hold process shutdown;work.run()remains non-daemon for mutation/relocking cleanup.- All six Python-package matrix jobs on the exact head completed successfully, including optimized tests/constants on Ubuntu 3.13.
No remaining code blocker from this review. #71–#74 are separately tracked Tails presentation/copy follow-ups and do not invalidate this #66 behavior ACK.
|
Integration follow-up: #77 now carries the four Tails field-test items #71–#74 as one focused one-file PR on top of this head. Review order for the clean GUI stack is #65 → #66 → #77. #77 has a code ACK; its final outstanding qualification is the manual Tails guest-resolution fit check for #74. The reviewed restore-authentication GUI delta from #28 is still replayed only after #57 is integrated into the settled library/CLI base. |
|
Agent release-gate re-review at exact head |
Follow-up to #65.
Refresh the eligible Bitcoin Core wallet list once per second while the wallet chooser is visible, matching the CLI's waiting behavior. The selected wallet is preserved by exact name, and polling shares the existing serialized worker boundary so it cannot overlap an import or correction job.
The manual “Check again” action is removed; a wallet created in Bitcoin Core appears automatically. Polling pauses while the chooser is hidden and stops after it leaves the navigation stack. Transient refresh failures are retried without abandoning recovery. If a selected wallet disappears, no destination remains selected and Continue is disabled until the operator explicitly chooses again.
Read-only wallet polls use daemon workers so a slow/unresponsive
bitcoin-clipoll cannot keep the process alive after the last GUI window closes. Mutating jobs still use non-daemon workers so their cleanup/relockingfinallyblocks remain guaranteed. The shared serialization gate is unchanged.Validation on current head
dfffb00:python -O, Ruff, strict mypy, GTK/Xvfb walkthrough;c26de06: walkthrough covers transient poll failure, disappeared selection, explicit reselection and polling shutdown;ac56aab+dfffb00:tests/test_gui_boundaries.pypasses 41/41 and statically pinsrun()as non-daemon versuspoll()as daemon;Review-size policy: this PR raises the separately enforced GUI cap from
<2000to<2050logical lines. The maintainer explicitly approved the GUI limit for v1 in the Codex task on 2026-09-30; the library<5200limit is a separate authorization.All inline review threads are resolved. AI assistance on the final shutdown-policy follow-up is disclosed by commit history.