Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
Packaged Herdr allows self-update and leaves pacman, binary, and server versions inconsistent
Reported by ByronSerrano · filed Aug 20, 2026 · open at source
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- AreaOutside the audited area· Decided by agents · verified
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
System details
- Omarchy:
4.0.0-1 - Herdr package:
0.8.0.r13-1 - Herdr binary after self-update:
0.8.2 - Installation source: Omarchy package repository
- Hardware: not relevant; this concerns package ownership and update behavior
What's wrong?
Omarchy installs Herdr as a pacman-managed package, but the packaged binary
still allows users to run:
sudo herdr updateThe command replaces /usr/bin/herdr with the upstream version without
updating pacman's package database.
After updating, the system reported:
$ pacman -Q herdr
herdr 0.8.0.r13-1
$ pacman -Qo /usr/bin/herdr
/usr/bin/herdr is owned by herdr 0.8.0.r13-1
$ herdr --version
herdr 0.8.2The replacement binary also ended up owned by nobody:nobody:
/usr/bin/herdr | owner=nobody:nobody | mode=755The persistent Herdr server remained on version 0.8.0 because its protocol was
compatible with the 0.8.2 client. This produced confusing behavior where the
client reported 0.8.2, but fixes from 0.8.2 were not active until the server
was stopped and restarted:
herdr server stop
herdrIn my case, every Omarchy prefix+shift+... binding appeared broken while the
0.8.2 client was attached to the old 0.8.0 server. The bindings worked again
after restarting the server and confirming that both sides were on 0.8.2.
Steps to reproduce
- Install or update Herdr through Omarchy.
- Confirm the package version with
pacman -Q herdr. - Run
sudo herdr update. - Compare
pacman -Q herdrwithherdr --version. - If a Herdr server was already running, check
herdr status. - Observe that pacman, the installed binary, and the running server can report
different versions.
Expected behavior
The Omarchy package should disable Herdr's internal self-updater, or Herdr
should detect that /usr/bin/herdr is owned by pacman and refuse the update
with guidance to use omarchy update.
At minimum, the update should not silently replace a pacman-owned binary and
leave the package database and running server on older versions.
View raw text
### System details - Omarchy: `4.0.0-1` - Herdr package: `0.8.0.r13-1` - Herdr binary after self-update: `0.8.2` - Installation source: Omarchy package repository - Hardware: not relevant; this concerns package ownership and update behavior ### What's wrong? Omarchy installs Herdr as a pacman-managed package, but the packaged binary still allows users to run: ```bash sudo herdr update ``` The command replaces `/usr/bin/herdr` with the upstream version without updating pacman's package database. After updating, the system reported: ```text $ pacman -Q herdr herdr 0.8.0.r13-1 $ pacman -Qo /usr/bin/herdr /usr/bin/herdr is owned by herdr 0.8.0.r13-1 $ herdr --version herdr 0.8.2 ``` The replacement binary also ended up owned by `nobody:nobody`: ```text /usr/bin/herdr | owner=nobody:nobody | mode=755 ``` The persistent Herdr server remained on version 0.8.0 because its protocol was compatible with the 0.8.2 client. This produced confusing behavior where the client reported 0.8.2, but fixes from 0.8.2 were not active until the server was stopped and restarted: ```bash herdr server stop herdr ``` In my case, every Omarchy `prefix+shift+...` binding appeared broken while the 0.8.2 client was attached to the old 0.8.0 server. The bindings worked again after restarting the server and confirming that both sides were on 0.8.2. ### Steps to reproduce 1. Install or update Herdr through Omarchy. 2. Confirm the package version with `pacman -Q herdr`. 3. Run `sudo herdr update`. 4. Compare `pacman -Q herdr` with `herdr --version`. 5. If a Herdr server was already running, check `herdr status`. 6. Observe that pacman, the installed binary, and the running server can report different versions. ### Expected behavior The Omarchy package should disable Herdr's internal self-updater, or Herdr should detect that `/usr/bin/herdr` is owned by pacman and refuse the update with guidance to use `omarchy update`. At minimum, the update should not silently replace a pacman-owned binary and leave the package database and running server on older versions.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
- Out of scopeDecided by agents · verified · 2026-10-09 08:14 UTC