wallet: land the file-name picker fix and the wallet manager on main (from t_67879b98) #153
Loading…
Reference in a new issue
No description provided.
Delete branch "onionwire/t_67879b98-wallet-actually-open-the-wallet-file-and"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Carries the wallet-picker fix and the wallet-manager work to
main— they are ont_67879b98but not onmain, which is why they are in no release.Why this PR exists
t_67879b98was already merged intomain(#149, merge01d3294). #150 and #151 were then merged into that branch (merges3ddd370,c1fda000,685ce89), so both PRs read "merged" whilemainnever received a byte of them.v0.19.0is tagged onmain(01d3294, statuses green), so the released APK does not contain the picker fix:create_wallet onionwire-1 -> (code -21, "Cannot create wallet. Already exists.")on a wallet whose file is on disk but absent from the catalogue is still a dead end with no UI escape on the shipped build.Payload
src/node.rs,src/wallet_child.rs,tests/wallet.rs— the file-name picker consults the wallet directory, not only the SQLCipher catalogue (wallet_name_taken,wallet_dir()), plus the restart-test harness fix so a child's port is read from the child that dials it (#151, absorbed #152).android/app/src/main/java/com/siriusdevops/onionwire/**— wallet manager: ask for the passphrase, stop printing RPC errors, filterlast_errorwhere the SDK record becomes the model (#150).Verification
mainbranch runs no workflow here, and #150/#151's merge commits were never built as a tree. This PR is the first build of it (ciis path-filtered onsrc/**,tests/**;android-cionandroid/**).ci / testsuccess on6edcd65e, run 589).mainonly. If this merges,mainmoves ahead of thev0.19.0tag, so the wallet fixes reach a release only when a new one is cut (release.ymldispatch,dry_runfirst, thenandroid-release.ymlwith the sametag=).The wallet-child tests learn a spawned stand-in's port by polling its argv log, and `fake_bin`/`fake_child_bin` truncated the log and then appended one line per argument -- so a poller could read a prefix. A truncated port is a *valid* u16 ("427" out of "42765"), so `wait_for_child_rpc_port` happily returned a port nothing was listening on and the restart's `open_wallet` died with `Connection refused` after its 10s budget; the same prefix read is what `loopback_and_clearnet_remotes_carry_no_proxy...` printed with its `--daemon-address` value missing. Both tests failed on the first CI run of this branch (ci / test) and are green in isolation, which is the signature of this race rather than of a code defect. The argv now lands in the log with a single `mv`, so a reader sees either no log or the complete one. Measured with a tight read loop (argv-race-probe.sh): the append version was caught mid-write 1/300 reads, the mv version 0/300.