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.
herdr package reports bare version `0.8.0`, making `herdr --remote` unusable against any upstream build
Reported by igor-gorohovsky · filed Aug 18, 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
What happens
The herdr package in the [omarchy] repo (0.8.0.r13-1) cannot attach to any non-Omarchy host with herdr --remote <host>, because --remote requires the remote binary to report the exact same version string as the client, and the packaged build's version string collides with a different upstream build.
The packaged binary reports:
$ herdr --version
herdr 0.8.0
$ herdr status client
version: 0.8.0
protocol: 20Upstream's published v0.8.0 — what brew install herdr, the install script, and --remote's own auto-installer (herdr.dev/latest.json) all provide — is protocol 19. Upstream's protocol-20 builds are preview builds, and they report 0.8.0-preview.<build-id>.
So from an Omarchy machine, every path fails:
- remote has upstream stable 0.8.0 →
error: release manifest has herdr 0.8.0 protocol 19, but this client needs protocol 20 - remote has upstream preview (protocol 20) →
error: installed remote herdr at "$HOME/.local/bin/herdr", but it did not report version 0.8.0 HERDR_REMOTE_BINARY=<preview binary>→ same version error; the flag doesn't bypass the version check
No published binary reports 0.8.0 and speaks protocol 20 for any platform other than Omarchy's own x86_64 package, so --remote can only work Omarchy-to-Omarchy.
Why
The package builds from the omarchy branch of omacom-io/herdr (upstream master @6c6ddcd plus 14 commits) without setting the HERDR_BUILD_CHANNEL / HERDR_BUILD_ID / HERDR_BUILD_COMMIT variables that build.rs reads. The binary therefore claims to be plain upstream 0.8.0 while shipping upstream's protocol-20 wire format, which upstream only publishes under preview version strings.
Building a matching binary on the peer isn't a workaround
On macOS 26.5 (aarch64) the vendored libghostty-vt pins requireZig("0.15.2") — an exact-version gate — and Zig 0.15.2 cannot link against the macOS 26 SDK at all; even a hello-world with -lc fails:
error: undefined symbol: __availability_version_check
error: undefined symbol: _abort
error: undefined symbol: _bzeroZig 0.16.0 links that SDK fine, but is rejected by the version gate and by build.zig std API changes (readFileAlloc signature).
Suggestion
Stamp the packaged build (e.g. HERDR_BUILD_CHANNEL=omarchy plus HERDR_BUILD_ID/HERDR_BUILD_COMMIT from the packaged commit) so the version string is distinguishable from upstream's. Users would then get an honest mismatch instead of a contradictory one, and upstream's protocol-20 preview builds could be paired deliberately. Publishing matching binaries for other platforms, or documenting that --remote needs an identically-built peer, would also resolve it.
Workaround for anyone hitting this
Use a matched pair of upstream preview binaries for remote attach only, keeping the packaged build for local sessions — e.g. a small dispatcher earlier in PATH that routes --remote invocations to ~/.local/share/herdr/preview/herdr (the upstream preview asset, protocol 20) and everything else to /usr/bin/herdr, with the same preview build installed on the remote host.
Environment
- Omarchy on Arch Linux,
herdr 0.8.0.r13-1from[omarchy](pkgs.omarchy.org/stable) - Remote host: macOS 26.5, aarch64, herdr installed via Homebrew and via the upstream installer
View raw text
## What happens
The `herdr` package in the `[omarchy]` repo (`0.8.0.r13-1`) cannot attach to any non-Omarchy host with `herdr --remote <host>`, because `--remote` requires the remote binary to report the **exact same version string** as the client, and the packaged build's version string collides with a different upstream build.
The packaged binary reports:
```
$ herdr --version
herdr 0.8.0
$ herdr status client
version: 0.8.0
protocol: 20
```
Upstream's published `v0.8.0` — what `brew install herdr`, the install script, and `--remote`'s own auto-installer (`herdr.dev/latest.json`) all provide — is **protocol 19**. Upstream's protocol-20 builds are preview builds, and they report `0.8.0-preview.<build-id>`.
So from an Omarchy machine, every path fails:
- remote has upstream stable 0.8.0 → `error: release manifest has herdr 0.8.0 protocol 19, but this client needs protocol 20`
- remote has upstream preview (protocol 20) → `error: installed remote herdr at "$HOME/.local/bin/herdr", but it did not report version 0.8.0`
- `HERDR_REMOTE_BINARY=<preview binary>` → same version error; the flag doesn't bypass the version check
No published binary reports `0.8.0` *and* speaks protocol 20 for any platform other than Omarchy's own x86_64 package, so `--remote` can only work Omarchy-to-Omarchy.
## Why
The package builds from the `omarchy` branch of `omacom-io/herdr` (upstream master @`6c6ddcd` plus 14 commits) without setting the `HERDR_BUILD_CHANNEL` / `HERDR_BUILD_ID` / `HERDR_BUILD_COMMIT` variables that `build.rs` reads. The binary therefore claims to be plain upstream `0.8.0` while shipping upstream's protocol-20 wire format, which upstream only publishes under preview version strings.
## Building a matching binary on the peer isn't a workaround
On macOS 26.5 (aarch64) the vendored `libghostty-vt` pins `requireZig("0.15.2")` — an exact-version gate — and Zig 0.15.2 cannot link against the macOS 26 SDK at all; even a hello-world with `-lc` fails:
```
error: undefined symbol: __availability_version_check
error: undefined symbol: _abort
error: undefined symbol: _bzero
```
Zig 0.16.0 links that SDK fine, but is rejected by the version gate and by `build.zig` std API changes (`readFileAlloc` signature).
## Suggestion
Stamp the packaged build (e.g. `HERDR_BUILD_CHANNEL=omarchy` plus `HERDR_BUILD_ID`/`HERDR_BUILD_COMMIT` from the packaged commit) so the version string is distinguishable from upstream's. Users would then get an honest mismatch instead of a contradictory one, and upstream's protocol-20 preview builds could be paired deliberately. Publishing matching binaries for other platforms, or documenting that `--remote` needs an identically-built peer, would also resolve it.
## Workaround for anyone hitting this
Use a matched pair of upstream preview binaries for remote attach only, keeping the packaged build for local sessions — e.g. a small dispatcher earlier in `PATH` that routes `--remote` invocations to `~/.local/share/herdr/preview/herdr` (the upstream `preview` asset, protocol 20) and everything else to `/usr/bin/herdr`, with the same preview build installed on the remote host.
## Environment
- Omarchy on Arch Linux, `herdr 0.8.0.r13-1` from `[omarchy]` (`pkgs.omarchy.org/stable`)
- Remote host: macOS 26.5, aarch64, herdr installed via Homebrew and via the upstream installer
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 04:41 UTC