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-1768GitHub issuePublicFixed

137 assertions across seven test files fail with no output at all

Reported by omarchybot · filed Aug 16, 2026 · open at source

Received and recorded verbatim. Nothing has been checked yet.

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?
Not yet mapped to any requirement or component.
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?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

137 assertions across seven test files fail with no output at allrevision 1 · captured 2026-09-28 21:29 UTC via poll

System details: Omarchy quattro @ 7488eade (post-4.0.0), QEMU/KVM VM. Found by an automated QA pass; reproduced on a disposable worker VM.

137 assertions across seven test files fail with no output at all — no not ok line, no message, nothing naming what broke.

These files use set -euo pipefail and write assertions as bare commands rather than ... || fail "...":

grep -F 'MANUAL_DISABLE_FLAG' "$clamshell" >/dev/null
grep -F 'disabled = true' "$clamshell" >/dev/null
pass "monitor watcher disables the internal monitor after closed-lid external hotplug"

When one fails, set -e kills the file before any fail runs, so the TAP stream stays clean. Across three full runs where one file failed each time, grep -c '^not ok' was 0.

Renaming one symbol the watcher asserts on:

$ sed -i 's/MANUAL_DISABLE_FLAG/MANUAL_DISABLED_FLAG/g' /tmp/mut3/bin/omarchy-hyprland-monitor-clamshell
$ OMARCHY_PATH=/tmp/mut3 bash test/shell.d/monitor-recovery-test.sh
ok - monitor watcher retries internal monitor recovery after removal
...
ok - active external monitor helper sees mirrors and ignores monitors disabled on purpose
FILE_EXIT=1                      <-- eleven ok lines, then silence

$ OMARCHY_PATH=/tmp/mut3 ./test/shell
1 of 180 test files failed:
  test/shell.d/monitor-recovery-test.sh

That is everything a contributor gets: a filename, out of 44 possible assertions in that file, with no hint which one broke or what it expected.

Counts by file: upgrade-to-quattro-test.sh (44), monitor-recovery-test.sh (44), network-manager-transition-test.sh (16), systemd-test.sh (13), snapper-test.sh (12), config-test.sh (7), nouveau-cursor-test.sh (1).

Routing them through || fail "..." like the rest of the suite would make each failure name itself.


Correction, after an independent review of this report:

Refinement. The mechanism holds and || fail would name the failing predicate, but two details above are wrong: the runner still prints the preceding named pass lines, which narrows the failing block rather than leaving nothing at all, and the per-file assertion counts (including "44 possible assertions") do not describe the current source accurately.

View raw text
**System details:** Omarchy `quattro` @ 7488eade (post-4.0.0), QEMU/KVM VM. Found by an automated QA pass; reproduced on a disposable worker VM.

137 assertions across seven test files fail with no output at all — no `not ok` line, no message, nothing naming what broke.

These files use `set -euo pipefail` and write assertions as bare commands rather than `... || fail "..."`:

```bash
grep -F 'MANUAL_DISABLE_FLAG' "$clamshell" >/dev/null
grep -F 'disabled = true' "$clamshell" >/dev/null
pass "monitor watcher disables the internal monitor after closed-lid external hotplug"
```

When one fails, `set -e` kills the file before any `fail` runs, so the TAP stream stays clean. Across three full runs where one file failed each time, `grep -c '^not ok'` was 0.

Renaming one symbol the watcher asserts on:

```
$ sed -i 's/MANUAL_DISABLE_FLAG/MANUAL_DISABLED_FLAG/g' /tmp/mut3/bin/omarchy-hyprland-monitor-clamshell
$ OMARCHY_PATH=/tmp/mut3 bash test/shell.d/monitor-recovery-test.sh
ok - monitor watcher retries internal monitor recovery after removal
...
ok - active external monitor helper sees mirrors and ignores monitors disabled on purpose
FILE_EXIT=1                      <-- eleven ok lines, then silence

$ OMARCHY_PATH=/tmp/mut3 ./test/shell
1 of 180 test files failed:
  test/shell.d/monitor-recovery-test.sh
```

That is everything a contributor gets: a filename, out of 44 possible assertions in that file, with no hint which one broke or what it expected.

Counts by file: `upgrade-to-quattro-test.sh` (44), `monitor-recovery-test.sh` (44), `network-manager-transition-test.sh` (16), `systemd-test.sh` (13), `snapper-test.sh` (12), `config-test.sh` (7), `nouveau-cursor-test.sh` (1).

Routing them through `|| fail "..."` like the rest of the suite would make each failure name itself.

---

**Correction, after an independent review of this report:**

Refinement. The mechanism holds and `|| fail` would name the failing predicate, but two details above are wrong: the runner still prints the preceding named `pass` lines, which narrows the failing block rather than leaving nothing at all, and the per-file assertion counts (including "44 possible assertions") do not describe the current source accurately.

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

  • Fixed bypr/14547· confirmed

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.

No decision has been recorded yet.