Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-1621GitHub issuePublicDecided· Out of scope

Packaged Herdr allows self-update and leaves pacman, binary, and server versions inconsistent

Reported by ByronSerrano · filed Aug 20, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 days ago.

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

Packaged Herdr allows self-update and leaves pacman, binary, and server versions inconsistentrevision 1 · captured 2026-09-28 21:29 UTC via poll

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 update

The 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.2

The replacement binary also ended up owned by nobody:nobody:

/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:

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.

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