feat(updater): in-app dragonxd updater + browse-all-releases

Add a full-node daemon updater (util/DaemonUpdater + daemon_download_dialog)
reachable from Settings -> NODE & SECURITY: downloads/verifies (SHA-256 +
enforced ed25519 signature) and atomically installs the latest dragonxd from
the project Gitea, with a "Restart daemon now" step. Add a shared "Browse all
releases..." picker (release_list_view) to both the miner and daemon updaters
so users can pin older/pre-release builds. Pure no-I/O cores
(daemon_updater_core / xmrig_updater_core) are unit-tested; sign-daemon-release.sh
signs release archives offline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-27 21:27:13 -05:00
parent 2e8e214689
commit 4473e7e00a
19 changed files with 1848 additions and 108 deletions

View File

@@ -1166,6 +1166,45 @@ void I18n::loadBuiltinEnglish()
strings_["xmrig_installed_ok"] = "Miner installed";
strings_["xmrig_update_failed"] = "Update failed";
strings_["xmrig_unknown_error"] = "Unknown error.";
strings_["xmrig_browse_releases"] = "Browse all releases…";
strings_["xmrig_loading_releases"] = "Loading releases…";
// --- Shared release picker ("Browse all releases") ---
strings_["upd_select_version"] = "Select a version to install";
strings_["upd_install"] = "Install";
strings_["upd_reinstall"] = "Reinstall";
strings_["upd_prerelease"] = "pre-release";
strings_["upd_installed_badge"] = "installed";
strings_["upd_no_build_platform"] = "No build for this platform";
strings_["upd_back"] = "Back";
// --- Daemon (full node) updater — Settings → daemon binary panel ---
strings_["daemon_update_check"] = "Check for updates…";
strings_["tt_daemon_update_check"] = "Download and verify the latest dragonxd full node from the project Gitea, then restart to apply";
strings_["daemon_update_title"] = "Update Node";
strings_["daemon_update_checking"] = "Checking for the latest node…";
strings_["daemon_update_unavailable_title"]= "Node updates unavailable";
strings_["daemon_update_unavailable_body"] = "No node build is available for this platform.";
strings_["daemon_update_available"] = "A new node version is available";
strings_["daemon_update_up_to_date"] = "The node is up to date";
strings_["daemon_update_latest"] = "Latest:";
strings_["daemon_update_installed"] = "Installed:";
strings_["daemon_update_version"] = "Version:";
strings_["daemon_update_verify_note"] = "The download is verified against the release's published SHA-256 and a pinned ed25519 signature before install.";
strings_["daemon_update_download_install"] = "Download & install";
strings_["daemon_update_reinstall"] = "Reinstall";
strings_["daemon_update_downloading"] = "Downloading…";
strings_["daemon_update_verifying"] = "Verifying…";
strings_["daemon_update_installing"] = "Installing…";
strings_["daemon_update_installed_ok"] = "Node installed";
strings_["daemon_update_restart_note"] = "Restart the daemon to start running the new version.";
strings_["daemon_update_restart_now"] = "Restart daemon now";
strings_["daemon_update_later"] = "Later";
strings_["daemon_update_failed"] = "Update failed";
strings_["daemon_update_unknown_error"] = "Unknown error.";
strings_["daemon_update_browse"] = "Browse all releases…";
strings_["daemon_update_loading"] = "Loading releases…";
strings_["daemon_update_downgrade_note"] = "Older versions may be incompatible with your current chain data. Installing a different version takes effect after a daemon restart.";
// --- Lite Network tab (server browser) ---
strings_["lite_console_title"] = "Console";