- Add explicit hidden imports/collect rules for coincurve, bip_utils and src modules
- Introduce Docker smoke tests for hd_generate and p2pkh to fail fast on missing runtime deps
- Refactor cli.py to lazy-load command modules and avoid global startup crashes from optional deps
- Use pseudo-TTY script wrapper for Wine smoke tests to prevent Invalid handle failures
- Run Wine as non-root with dedicated WINEPREFIX and tolerate winetricks vcrun2019 failures
- Switch to Python embeddable + offline wheelhouse install for reproducible Windows packaging
- Update PyInstaller flags to bundle coincurve cffi backend and bip_utils data files (HD wallet runtime fix)
- Build both NSIS installer and portable executable; update build output messaging
winetricks vcrun2019 invokes syswow64/regedit.exe (32-bit PE) which
requires wine32; without it Wine returns c0000135 (STATUS_DLL_NOT_FOUND).
i386 architecture is already added so wine32 installs cleanly
winetricks was removed from Debian bookworm apt repositories;
download it directly from the official GitHub source instead.
Replace winetricks apt package with cabextract (its runtime dep)
Python 3.11 requires VCRUNTIME140.dll (VC++ 2019 runtime) which is
not present in the default Wine prefix; without it python.exe fails
with STATUS_DLL_NOT_FOUND (exit code 53).
- contrib/windows/Dockerfile: cross-compile using Wine + xvfb;
installs Python 3.11 for Windows, builds cli.exe with PyInstaller,
packages Electron app as NSIS installer
- contrib/windows/build.sh: convenience script to run the Docker build
- frontend/electron/main.cjs: resolve cli.exe on win32, cli on other platforms
- frontend/package.json: add win/nsis target; change extraResources to
bundle resources/ dir so each platform picks its own binary
- contrib/linux/Dockerfile: add libpython3.11 + PyInstaller to build
standalone cli binary; fix venv isolation via .dockerignore
- frontend/electron/main.cjs: use bundled cli binary in prod via
process.resourcesPath, fallback to venv/python3 in dev
- frontend/package.json: add extraResources for cli binary,
set output dir to release/
- frontend/vite.config.js: set base './' for file:// protocol in prod
- .dockerignore: exclude venv/, node_modules/, dist/, .git/
- .gitignore: ignore release/ output directories