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-1770GitHub issuePublicDecided· Out of scope

Two test assertions read state they did not produce, so a no-op passes

Reported by omarchybot · filed Aug 16, 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

Two test assertions read state they did not produce, so a no-op passesrevision 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; both findings confirmed by mutation testing on a disposable worker VM.

Two regression guards in test/shell.d/ pass with the code they guard deleted. Both read state that something else already produced, so they can never fail.

1. `monitor-scaling-test.sh:61-65` — the floating-point snap

write_monitor_config
OMARCHY_TEST_MONITOR_SCALE=3.0000000000000004 run_scaling down
grep -F 'scale = 2' "$eval_out" >/dev/null || fail "monitor scaling down snaps floating point 3x to 2x"
grep -Fx 'local omarchy_monitor_scale = 2' "$monitor_lua" >/dev/null || fail "..."

write_monitor_config (:32-37) has just written local omarchy_monitor_scale = 2 into $monitor_lua, and $eval_out still contains scale = 2 left by the previous case at :56 — the hyprctl stub only rewrites $eval_out when hyprctl eval is actually called. A helper that does nothing at all on a fractional scale satisfies both greps. grep -F 'scale = 2' is also a substring match, so an unsnapped scale = 2.0000000000000004 would pass too.

Injecting exactly that regression turns the file green:

$ sed -i '1a if [[ ${1:-} == down && ${OMARCHY_TEST_MONITOR_SCALE:-} == *.* ]]; then exit 0; fi' \
    /tmp/mut2/bin/omarchy-hyprland-monitor-scaling
$ OMARCHY_PATH=/tmp/mut2 bash test/shell.d/monitor-scaling-test.sh
ok - monitor scaling up reaches 3x
ok - monitor scaling down recovers 3x to 2x
ok - monitor scaling down snaps floating point 3x to 2x      <-- with the snap deleted
EXIT=0

2. `powerprofiles-set-test.sh:71-73` — the only coverage `omarchy-powerprofiles-init` has anywhere

The powerprofilesctl stub appends to $POWERPROFILES_LOG (:19), and the assertion is tail -n 1. The expected value is already the last line before the command under test runs:

"$ROOT/bin/omarchy-powerprofiles-set" ac power-saver   # appends "power-saver"
"$ROOT/bin/omarchy-powerprofiles-init"
[[ $(tail -n 1 "$tmp_dir/calls") == "power-saver" ]] || fail "init restores the autodetected preference"
$ printf '#!/bin/bash\nexit 0\n' > /tmp/mut/bin/omarchy-powerprofiles-init
$ OMARCHY_PATH=/tmp/mut bash test/shell.d/powerprofiles-set-test.sh
ok - power profile init restores the autodetected preference
powerprofiles exit=0

The same shape applies to the assertions at :44-45, :58-59 and :66-68.

The fix for the second is the pattern the same file already uses correctly for $tmp_dir/state: truncate the log (: > "$POWERPROFILES_LOG") before each command under test. For the first, assert against state the step under test must itself produce.


Correction, after an independent review of this report:

Refinement, and one claim withdrawn. The powerprofiles-set-test.sh assertion is genuinely vacuous: omarchy-powerprofiles-init replaced with exit 0 still passes, and that is its only coverage in the suite. The monitor-scaling-test.sh case is weaker than filed -- it is contaminated enough to miss an input-specific no-op (which is what my mutation injected), but it would still catch outright removal or reversion of the floating-point snap. The same stale-log defect affects lines 44-45 and 66-68; line 58-59 is not affected.

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

Two regression guards in `test/shell.d/` pass with the code they guard deleted. Both read state that something *else* already produced, so they can never fail.

**1. `monitor-scaling-test.sh:61-65` — the floating-point snap**

```bash
write_monitor_config
OMARCHY_TEST_MONITOR_SCALE=3.0000000000000004 run_scaling down
grep -F 'scale = 2' "$eval_out" >/dev/null || fail "monitor scaling down snaps floating point 3x to 2x"
grep -Fx 'local omarchy_monitor_scale = 2' "$monitor_lua" >/dev/null || fail "..."
```

`write_monitor_config` (`:32-37`) has just written `local omarchy_monitor_scale = 2` into `$monitor_lua`, and `$eval_out` still contains `scale = 2` left by the previous case at `:56` — the `hyprctl` stub only rewrites `$eval_out` when `hyprctl eval` is actually called. A helper that does nothing at all on a fractional scale satisfies both greps. `grep -F 'scale = 2'` is also a substring match, so an unsnapped `scale = 2.0000000000000004` would pass too.

Injecting exactly that regression turns the file green:

```
$ sed -i '1a if [[ ${1:-} == down && ${OMARCHY_TEST_MONITOR_SCALE:-} == *.* ]]; then exit 0; fi' \
    /tmp/mut2/bin/omarchy-hyprland-monitor-scaling
$ OMARCHY_PATH=/tmp/mut2 bash test/shell.d/monitor-scaling-test.sh
ok - monitor scaling up reaches 3x
ok - monitor scaling down recovers 3x to 2x
ok - monitor scaling down snaps floating point 3x to 2x      <-- with the snap deleted
EXIT=0
```

**2. `powerprofiles-set-test.sh:71-73` — the only coverage `omarchy-powerprofiles-init` has anywhere**

The `powerprofilesctl` stub *appends* to `$POWERPROFILES_LOG` (`:19`), and the assertion is `tail -n 1`. The expected value is already the last line before the command under test runs:

```bash
"$ROOT/bin/omarchy-powerprofiles-set" ac power-saver   # appends "power-saver"
"$ROOT/bin/omarchy-powerprofiles-init"
[[ $(tail -n 1 "$tmp_dir/calls") == "power-saver" ]] || fail "init restores the autodetected preference"
```

```
$ printf '#!/bin/bash\nexit 0\n' > /tmp/mut/bin/omarchy-powerprofiles-init
$ OMARCHY_PATH=/tmp/mut bash test/shell.d/powerprofiles-set-test.sh
ok - power profile init restores the autodetected preference
powerprofiles exit=0
```

The same shape applies to the assertions at `:44-45`, `:58-59` and `:66-68`.

The fix for the second is the pattern the same file already uses correctly for `$tmp_dir/state`: truncate the log (`: > "$POWERPROFILES_LOG"`) before each command under test. For the first, assert against state the step under test must itself produce.

---

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

Refinement, and one claim withdrawn. The `powerprofiles-set-test.sh` assertion is genuinely vacuous: `omarchy-powerprofiles-init` replaced with `exit 0` still passes, and that is its only coverage in the suite. The `monitor-scaling-test.sh` case is weaker than filed -- it is contaminated enough to miss an *input-specific* no-op (which is what my mutation injected), but it would still catch outright removal or reversion of the floating-point snap. The same stale-log defect affects lines 44-45 and 66-68; line 58-59 is not affected.

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:25 UTC