Repository navigation
Releases
Caerus 0.8.2
Support Alpine Linux and its derivatives in the APK backend, in caerus-helper and in get-caerus.sh, which now checks for apk-tools 3.
Follow the whole reverse-dependency chain when previewing APK removals, refuse removal previews that apk would not carry out, and look up preview sizes in two queries instead of two per package.
Expand Discover to 743 verified apps with new categories, and handle catalog apps that ship no launcher.
Pin and test the release workflow, and add a Chimera and Alpine test script.
The Linux x86_64 release includes Caerus and caerus-helper, SHA256SUMS, and a GitHub artifact attestation.
Caerus 0.8.1
Fix stale package details after reload and block package actions during startup synchronization.
Improve force-remove warnings, startup tracing, narrow-layout column behavior, Discover refreshes, and legacy-prefix uninstall.
Update libc, pkg-config, bindgen, serde, checkout, and upload-artifact dependencies.
The Linux x86_64 release includes Caerus and caerus-helper, SHA256SUMS, and a GitHub artifact attestation.
Discover now has 254 applications in 19 sections.
Caerus 0.8.0
- New layout: sidebar, package table and inspector on desktop; bottom navigation and a details page in narrow windows.
- Updates and Discover views; Discover lists 174 applications in 13 sections.
- Changes are previewed and applied one step at a time. A failed preview blocks Apply, and failed changes reload state instead of offering a forced retry.
- One dialog to remove, purge or force remove a package.
- Searchable history with per-package results and logs.
- Optional Chimera Linux (APK) backend; get-caerus.sh now installs on Chimera too.
- Faster startup from cached package data.
Caerus 0.7.3
GTK now defaults to the Cairo renderer for lower memory use. Includes the merged helper-trust and CI fixes.
Caerus 0.7.2
- Dependency tooltips show the package description.
- Fixed a crash on "Remove Anyway" for a package with dependents.
- Fixed a crash in the ibus input method during transactions.
Caerus 0.7.1
Fixed
- AppStream metadata lists the 0.7 releases (0.7.0 shipped without its entry).
Caerus 0.7.0
Added
- Adding a repository signed with an unknown key now asks you to confirm
the key's fingerprint;caerus-helperimports exactly that key
(SYNC_TRUST <fingerprint>) and refuses any other. - Full-system-upgrade shows which held packages have newer versions and are
being held back.
Fixed
xbps-sysbuilds on hosts where libclang cannot findstddef.h
(falls back to the compiler's include directory).history.logis rotated tohistory.log.1past 256 KiB.CAERUS_HELPER_PATHand the helper next to the executable are only used
when owned by root or the current user and not group/world-writable.- Remaining
unwrap()calls on GTK downcasts in the package list and the
kernel-purge dialog now fall back gracefully instead of panicking. caerus-helperrejects repository URLs that are not http(s)/ftp/file
URLs or absolute paths..github/workflows/rust.yml(a stale duplicate ofci.ymltargeting the
removed0.5-devbranch) deleted; docs updated to say work happens on
main.- AppStream metadata now lists releases.
Changed
caerus-helper's command loop is table-driven instead of 15 copies of
the same empty-argument check.packaging/srcpkgs/caerustemplate updated to 0.7.0.
v0.6.0
Bug-fix and stability release: crash fixes, a CI/lint pass, and a bad merge that had silently reverted two shipped features got corrected.
Fixed
- Two GTK segfaults in the remove/dependency confirmation dialogs, caused by mutating a widget after it was destroyed inside the same callback.
- A crash when installing or removing certain packages.
- Bundled symbolic icons never actually resolving via the hicolor fallback path.
- Transaction preview falsely reporting an error on exact-version-pinned reverse dependencies.
- Sidebar icon-rail (minimal) mode could corrupt its own state and leave stale styling after switching sidebar modes.
caerus-helpernow locks repository-config writes and validatesALTERNATIVE/VKPURGEarguments, closing a race/injection edge case.- Several panics on unexpected GTK downcast failures hardened into graceful fallbacks instead of
unwrap(). - A squashed merge had reverted the CSS-extraction commit and silently dropped the "close dialogs automatically on success" setting; both are restored.
Changed
- CI now runs clippy, fmt, and both build feature sets (plain / adwaita) on every push, plus a dependency-audit workflow.
v0.5.0
Sidebar-first redesign, custom filters, repository toggles.
Added
- Custom filters: named sets of exclude patterns (
lib*,*-devel, plain text), shown as sidebar rows with a dedicated editor. - Repository toggles: enable/disable any configured repository from the Repositories window; remove any under
/etc/xbps.d. Vendor repos can be disabled (via an xbps.d override), not removed. - Stale repositories (package origins no longer configured) are marked in the sidebar; a View switch hides them.
- Bulk Remove/Purge asks once with a combined impact dialog.
Changed
- Sidebar redesigned into collapsible sections: FILTERS, REPOSITORIES, MAINTENANCE, TOOLS. Manage Repositories moved to TOOLS.
- App menu slimmed into popover pages (View / Settings / Shortcuts). The Settings dialog is gone; its options live in the menu.
- Detail pane refactored: header with state/tag chips, grouped key/value info, independent Provides / Requires / Exports / Conflicts / Replaces sections. Missing data is omitted, not dashed.
- Dialog subprocess calls no longer block the UI; queued command batches no longer interfere with each other.
- CI hardened: curated pedantic lints, cargo-audit job, build caching, and a much larger unit-test suite.
install.shgained--userand--uninstallmodes, replacingdev-install.sh.
Full changelog: https://github.com/mendescotta/Caerus/blob/main/CHANGELOG.md
v0.4.1
Fresh-perspective audit pass: five correctness fixes, a responsiveness
rework, and a UI/UX consistency sweep.
Fixed
- Held essential packages keep their removal guard. The pkgdb scan
returned early for on-hold packages before reading theessential
flag (and the recorded architecture), so a package that was both held
and essential could be marked for removal from the UI. - Held dependencies are no longer treated as missing. The
install-time dependency check only countedInstalled/Upgradable
as present, so an on-hold dependency was listed as "additional
package required" and marked for Install — and the resulting
xbps-install <pkg>would have upgraded it, silently bypassing the
hold (which only shields against-Su). - Version columns sort like xbps. "Installed"/"Available" sorted
lexicographically ("1.10" before "1.9"); they now use libxbps's own
xbps_cmpver. - Launching Caerus while it's already running presents the existing
window instead of opening a duplicate window (with its own second
worker thread and pkexec session) in the same process. - Full System Upgrade handles xbps updating itself. When
xbps
itself has a pending update,xbps-install -Suupdates only xbps and
exits expecting a re-run; the helper now performs that re-run
automatically instead of reporting a baffling failure. - The adwaita build no longer sets
gtk-application-prefer-dark-theme
(unsupported under libadwaita, warned at runtime); it follows the
system dark/light preference viaAdwStyleManagerinstead. - The repositories dialog now honors xbps.d(5) override semantics: a
file in/etc/xbps.dshadows the same-named file in
/usr/share/xbps.d, so repos disabled that way are no longer listed.
Changed
- The UI can no longer freeze on a busy backend. Every xbps worker
query (detail-pane info/deps/reverse-deps/files, both confirmation
dialogs' checks, and the Apply/Full-Upgrade dry-run previews) is now
asynchronous. Previously they blocked the main loop, and one landing
behind an in-flight reload froze the whole window until the rescan
finished. Stale replies are discarded when the selection has moved on. - The status bar shows visible-row counts ("N shown — …") whenever
anything narrows the list — sidebar preset or repository filter, not
just search text — so the numbers always describe what's on screen. - Remove Orphaned Packages asks first, listing the packages it
would remove (menu entry gained the "…" it deserved); Reconfigure All
Packages also confirms before force-rerunning every install script.
"Verify Package Database" lost its misleading ellipsis. Menu
convention now: "…" means a dialog opens before anything runs. - The detail pane's Repository row uses the same custom repository
display names as the sidebar (set via right-click → rename). - Transaction History records local wall-clock time instead of UTC
(old UTC entries still display as recorded). - The Delete key now acts on the whole selection: one row keeps the
usual reverse-dependency confirmation; a multi-row selection applies
a bulk Remove mark, matching the context menu's bulk action. - Apply-dialog polish: the progress bar's overlay text always shows a
known percentage (it previously vanished until the first per-package
status line), and the Details log is styled for scanning — errors in
red, per-package completions in green, phase banners bold, protocol
chatter dimmed. - The pre-Apply summary's heading counts everything the transaction
will actually touch (marked packages plus dependencies pulled in by
the dry-run), matching the list below it. - Dependencies/Reverse-Dependencies placeholders now distinguish "no
selection", "loading", and "none" instead of always claiming "Select
a package". - "Mark All Upgrades" applies its marks in a single pass instead of one
full-list scan per package. - On the plain-GTK4 build, transient status-bar messages self-dismiss
after a few seconds instead of persisting until the next reload.