The 1.3.0 lite-capability work gated isUsingEmbeddedDaemon() on the compile flag DRAGONX_ENABLE_EMBEDDED_DAEMON (in 1.2.0 it was hardcoded true, so the daemon always launched). The lite branch in CMakeLists set that flag OFF with `CACHE BOOL ... FORCE`, which POISONS the build dir's cache: a later full-node reconfigure of the same dir keeps the forced-OFF value (the full-node branch never re-asserts it), so embeddedDaemonAvailable=false and the wallet extracts dragonxd but never starts it — exactly the reported "unpacks dragonxd.exe but does not start the daemon, manual start works." Note the two gates are independent: the binary is EMBEDDED/extracted via build.sh (HAS_EMBEDDED_DAEMON), while LAUNCHING is gated by DRAGONX_ENABLE_EMBEDDED_DAEMON — so they diverged (extract yes, launch no). The forced cache write was also pointless: makeWalletCapabilities() already forces the embedded-daemon capability off for any lite build via `fullNodeBuild && embeddedDaemonCompiled`, so lite never launches a daemon regardless of the flag. Fix: - CMakeLists: remove the FORCE cache poisoning (the root cause). - build.sh: set DRAGONX_ENABLE_EMBEDDED_DAEMON explicitly per variant (ON for full-node, OFF for lite), mirroring the existing DRAGONX_BUILD_LITE handling, so an already-poisoned build dir is HEALED on the next build rather than silently keeping the stale OFF. Verified: a poisoned Windows cache (=0) flips to =1 on reconfigure; full-node builds define =1, lite =0; tests + hygiene green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 KiB
43 KiB