Skip to content

2.3.2

Choose a tag to compare

@VictoryTek VictoryTek released this 30 Aug 02:12
· 13 commits to main since this release

What's Changed

New Features

  • "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.