You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"What's new" changelog viewer: Update rows with pending updates now show a "What's new" button (APT, DNF, Pacman, Zypper, Flatpak, Homebrew, fwupd) that fetches the package changelog / release notes and shows them in a scrollable dialog.
Estimated download size: The status line now reads e.g. "12 updates available (~450 MB)", and a banner warns when the pending updates need more space than is free on the root filesystem.
Preferences dialog + plugin manager: A new Preferences entry in the menu lists every discovered backend plugin with an enable switch; disabled plugins are not loaded on the next launch.
Full error details: When a backend update fails, the row shows a short summary plus a button that opens a dialog with the complete retained command output instead of just an exit code.
Bug Fixes
Fewer authentication prompts during distro upgrade: A distribution upgrade now asks for the administrator password once, not once per step — Fedora upgrades previously prompted up to four times.
Fedora upgrade prerequisite check: An already up-to-date Fedora system is no longer wrongly reported as "N packages need updating first" (the dnf check-update metadata header was being counted as pending packages), which had blocked the upgrade.
Unsupported distributions: Distros with no implemented upgrade path (Debian, Mint, Pop!_OS, elementary, Zorin, RHEL, CentOS) are no longer offered a "Start Upgrade" button that leads to a "not implemented" dead end.
Flake-based NixOS: A standard flake NixOS system no longer requires a VexOS-specific /etc/nixos/vexos-variant file — the configuration name is auto-detected from the flake (single config, or a hostname match).
APT "N updated" count: The per-row count after a selective APT update is now accurate even when the summary line is localised or reports "0 upgraded" after configuring newer versions.
Improvements
Localisation is now active: The application binds its gettext text domain at startup and the remaining hard-coded UI strings are translatable — previously the translation infrastructure was present but did nothing.
Distro-upgrade output: Every upgrade step now streams through the same one-prompt privileged session used for regular updates.
Internal
Replaced the unmaintained serde_yml plugin-descriptor parser with yaml_serde, the YAML Organization's maintained continuation of serde_yaml.
Read-only backend operations (list_available, estimate_size) now run through the same CommandExecutor abstraction as updates, making them testable and consistent.
Shared the BackendFinished UI handling between the "Update All" and retry loops, removing a large block of drifting duplicated code.
Removed the unused pre-update snapshot subsystem and the last of the blanket dead-code suppressions.