<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/src/gui.cpp, branch main</title>
<subtitle>[no description]</subtitle>
<id>https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/atom?h=main</id>
<link rel='self' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/'/>
<updated>2026-09-03T22:33:20+00:00</updated>
<entry>
<title>merge: upstream 1.2.20 into deploy/all-2026-08-24</title>
<updated>2026-09-03T22:33:20+00:00</updated>
<author>
<name>bitflash-maintainer</name>
<email>noreply@bitflash.invalid</email>
</author>
<published>2026-09-03T22:33:20+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=b810d86752ddb2674118f737582c924bb9eb74c1'/>
<id>urn:sha1:b810d86752ddb2674118f737582c924bb9eb74c1</id>
<content type='text'>
# Conflicts:
#	Makefile
</content>
</entry>
<entry>
<title>gui: check the two thread spawns the GUI target still leaves unguarded</title>
<updated>2026-09-02T17:42:24+00:00</updated>
<author>
<name>bitflash-maintainer</name>
<email>noreply@bitflash.invalid</email>
</author>
<published>2026-09-02T17:42:24+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=b8a976f4870ba5dfc7a6af1ea09c9277b71d686c'/>
<id>urn:sha1:b8a976f4870ba5dfc7a6af1ea09c9277b71d686c</id>
<content type='text'>
gui.cpp is not in NODE_OBJS, so bitflash-node never sees it -- but it is in
GUI_OBJS and `all: bitflash` is the default target, so this is what an
operator who runs the windowed build is running.

Two spawns there were still unchecked. Enabling pool mode from the options
dialog set gPoolServerRunning = true and then called _beginthread without
looking at the result, so a refused spawn left the operator with a pool
that reports itself running, no RPC server for miners to reach, and nothing
in the log. The flag latches, so the branch is never retried either. The
restore dialog called std::thread(RestoreThread).detach() bare, which on a
refused spawn is an uncaught std::system_error and takes the window down --
the same failure issue #18 was about, in the same tree, one target over.

The busy flag stays where it was, set before the spawn and rolled back in
the catch. It cannot move after the spawn: RestoreThread clears it itself
on the way out, and a restore that finishes quickly would have its `false`
overwritten by ours, leaving the dialog greyed out over a search that is
not running.

Verified by type-checking gui.cpp under the Makefile's exact flags against
a stub GLFW/GL header, since this host has neither. That is a syntax and
type check, not a link: gui.cpp reaches GLFW through 13 functions and three
GL calls, all declared with their real signatures, but the GUI target has
not been built here.
</content>
</entry>
<entry>
<title>gui: show the real version in About, add the website link</title>
<updated>2026-08-19T13:00:29+00:00</updated>
<author>
<name>bitflash</name>
<email>dev@bitflash.network</email>
</author>
<published>2026-08-19T13:00:29+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=2bf8941be913c113e90a62094e6b69848a87ed38'/>
<id>urn:sha1:2bf8941be913c113e90a62094e6b69848a87ed38</id>
<content type='text'>
The About dialog had "v1.1.0" hardcoded and no home for the release
version, so it drifted. Add a single BITFLASH_VERSION_STRING in
headers_core.h (bumped at release, unrelated to the protocol nVersion
fields) and show it in About -- now v1.2.20.

Fill the empty line under the version with a clickable
https://bitflash.network that opens in the browser (ShellExecute on
Windows, xdg-open elsewhere), and grow the dialog to fit it.
</content>
</entry>
<entry>
<title>gui: harden the restart relaunch (ultra edge cases)</title>
<updated>2026-08-19T12:48:07+00:00</updated>
<author>
<name>bitflash</name>
<email>dev@bitflash.network</email>
</author>
<published>2026-08-19T12:48:07+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=d4c49085a10c0f7c3f5a1dcc72184938dca38fea'/>
<id>urn:sha1:d4c49085a10c0f7c3f5a1dcc72184938dca38fea</id>
<content type='text'>
Follow-up to the Restart Now button. Addresses the edge cases the review
flagged, and drops the fragile batch layer entirely:

- Windows no longer writes a .bat and shells through cmd (which re-parsed
  the arguments and could leave a stray file on failure). It builds the
  command line once, quoted correctly (only backslashes before a quote are
  doubled, so ordinary paths are not mangled), and CreateProcess launches
  the new instance directly.
- The delay moved into the new instance: a -restartwait flag makes it wait
  ~2.5s before it opens the network port and the block index, so the old
  process is gone first. No shell delay hack. Verified: -restartwait adds
  the wait (0.16s -&gt; 2.67s).
- Linux re-execs /proc/self/exe (absolute) and only falls back to argv[0],
  which may be relative or a bare PATH name that execv cannot resolve.
- This instance now exits only if the relaunch actually started; on failure
  it keeps running and tells the user to restart manually, so a failed
  relaunch never leaves them with no node.

GUI/process wiring only; wallet code unchanged, suites still green.
</content>
</entry>
<entry>
<title>gui/wallet: name backups by backend, and stop saying "wallet.dat" for phrase gaps</title>
<updated>2026-08-19T12:30:40+00:00</updated>
<author>
<name>bitflash</name>
<email>dev@bitflash.network</email>
</author>
<published>2026-08-19T12:30:40+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=cf155d40ddd260975240e72b5e72cd3decc30291'/>
<id>urn:sha1:cf155d40ddd260975240e72b5e72cd3decc30291</id>
<content type='text'>
Two things that read wrong once the wallet is on SQLite:

- The Wallet Safety backup dialog defaulted the file name to .dat, but
  BackupWallet copies wallet.sqlite under the SQLite backend -- so the
  suggested name put SQLite contents in a wallet-backup-*.dat file. The
  default now matches the live backend (.sqlite on SQLite, .dat on BDB).

- The recovery audit called coins on non-phrase keys "wallet.dat-only" and
  told the user to "keep wallet.dat backups". Under SQLite those coins live
  in wallet.sqlite, not wallet.dat. Reworded to the backend-neutral truth:
  "not phrase-backed" balance, and "keep a file backup of this wallet" --
  accurate on either backend. Same wording in the CLI -recoveryaudit and
  the GUI Wallet Safety panel.

Display/naming only; audit numbers and BackupWallet are unchanged. All 13
wallet suites still pass.
</content>
</entry>
<entry>
<title>gui: add a "Restart Now" button to the conversion wizard</title>
<updated>2026-08-19T12:23:01+00:00</updated>
<author>
<name>bitflash</name>
<email>dev@bitflash.network</email>
</author>
<published>2026-08-19T12:23:01+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=8a47568dcfec8869bc08c555f0070be2d7ddddce'/>
<id>urn:sha1:8a47568dcfec8869bc08c555f0070be2d7ddddce</id>
<content type='text'>
After converting to SQLite the wizard said "restart to apply" but offered
no way to do it, so a user could close the dialog and keep mining on the
old Berkeley DB wallet without realizing the switch had not taken effect --
and coins mined in the meantime land only in wallet.dat, not the SQLite
wallet they think they are now on.

The post-conversion screen now offers "Restart Now", which relaunches
Bitflash with the same command line and datadir (a short delay lets this
instance release the network port and block-index files first) and asks
this one to exit, so mining resumes on the SQLite wallet. "Later" keeps
the old behaviour. A dimmed line warns that mining before the restart
still credits the old wallet.

wallet.dat is still never touched. The conversion action itself is
unchanged (wallet-convert self-test still green); this is GUI wiring only.
</content>
</entry>
<entry>
<title>gui: offer to convert a Berkeley DB wallet to SQLite on first run</title>
<updated>2026-08-18T19:26:34+00:00</updated>
<author>
<name>bitflash</name>
<email>dev@bitflash.network</email>
</author>
<published>2026-08-18T19:26:34+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=477d57b9a01102b6f79ad9b10b2dcfd280faa1cb'/>
<id>urn:sha1:477d57b9a01102b6f79ad9b10b2dcfd280faa1cb</id>
<content type='text'>
A first-run dialog for an existing wallet.dat with no backend choice yet:
"Convert to SQLite" exports the wallet and records the sqlite marker so
the next start opens it; "Keep Berkeley DB" records that choice so the
offer does not return; "Decide later" leaves no marker and asks again.
wallet.dat is never touched, and the change takes effect on restart --
matching the restart-to-apply model.

The conversion itself is DoConvertWalletToSQLite(), a headless-testable
function the button calls: it reuses the export path (extracted as
ExportActiveWalletToSQLite, shared with -walletsqliteexport, which keeps
its own specific messages), refuses if already on SQLite or if a
wallet.sqlite exists, and writes the marker only after a verified export.

New wallet-convert self-test proves the action end to end: build a
Berkeley DB wallet, convert, and confirm wallet.sqlite + the marker are
written, wallet.dat is left untouched, a second convert refuses, and a
flagless restart opens the converted SQLite wallet with its phrase intact.
All wallet suites pass. The modal itself is thin UI over this tested
action.
</content>
</entry>
<entry>
<title>wallet: SLIP-0044 4346950 is official, drop 'provisional' naming</title>
<updated>2026-08-11T12:57:29+00:00</updated>
<author>
<name>Bitflash</name>
<email>admin@bitflash.network</email>
</author>
<published>2026-08-11T12:57:29+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=dfbf7a91caa4a85da7ce10fa296cfa6d2ead5d0c'/>
<id>urn:sha1:dfbf7a91caa4a85da7ce10fa296cfa6d2ead5d0c</id>
<content type='text'>
The coin type 4346950 (0x425446 = BTF) was merged into the SLIP-0044
registry on 2026-08-07. Rename HD_BIP44_COIN_TYPE_BITFLASH_PROVISIONAL to
HD_BIP44_COIN_TYPE_BITFLASH and update comments, logs and UI strings.
Value is unchanged, so derivation paths and addresses are identical.
</content>
</entry>
<entry>
<title>Activate BIP44 wallet derivation (#124)</title>
<updated>2026-08-03T18:11:55+00:00</updated>
<author>
<name>mtg0001</name>
<email>106211915+mtg0001@users.noreply.github.com</email>
</author>
<published>2026-08-03T18:11:55+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=aba252206bf39ac81e6627354062c28fae05b0aa'/>
<id>urn:sha1:aba252206bf39ac81e6627354062c28fae05b0aa</id>
<content type='text'>
* Add BIP32 path derivation foundation

* Add HD wallet schema metadata

* Add provisional BIP44 coin type metadata

* Activate BIP44 wallet derivation

* wallet: scan BIP44 restore depth per branch

* wallet: widen default BIP44 restore lookahead

---------

Co-authored-by: Gilcimar Duarte &lt;ti@gpm.infra&gt;</content>
</entry>
<entry>
<title>Add wallet recovery balance audit (#117)</title>
<updated>2026-08-03T13:43:42+00:00</updated>
<author>
<name>mtg0001</name>
<email>106211915+mtg0001@users.noreply.github.com</email>
</author>
<published>2026-08-03T13:43:42+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1q9geyrch3feyczz242sxjaa05yczv50dlpug082sjln2kl0wrnxst0nrfa/bitflash/commit/?id=57441faffb02f4f2eea37d31b29728de25f18bef'/>
<id>urn:sha1:57441faffb02f4f2eea37d31b29728de25f18bef</id>
<content type='text'>
Co-authored-by: Gilcimar Duarte &lt;ti@gpm.infra&gt;</content>
</entry>
</feed>
