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.
quickshell-git → quickshell 0.3.1 mid-update swap breaks omarchy-exec-argv notification hint, silently no-ops "Click to diagnose with AI"
Reported by conwypaul · filed Aug 26, 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.1-1, quickshell 0.3.1-1 (upgraded from quickshell-git 0.3.0.r20.g28771c7-2)
What's wrong?
Clicking a "Process crashed" notification's "Click to diagnose with AI" action does
nothing — no terminal, no agent, no error. Confirmed this isn't a click/timing issue:
bypassing the mouse entirely via qs ipc call notifications invokeLast on a freshly
sent test notification also does nothing, despite the IPC call returning "ok" (sopopupModel.count > 0 and invokePopupDefault(0) runs without throwing).
Root cause (as far as I could trace it)
omarchy-notification-send --exec ... stores the click command as a JSON array in
a custom omarchy-exec-argv D-Bus hint. plugins/notifications/NotificationLogic.js
reads it back via stringHint(n.hints, "omarchy-exec-argv") (plain property
indexing: hints[name]). Service.qml's invokePopupDefault() callsNotificationLogic.parseExecArgv(entry.execArgv); when that returns null (hint
missing/unreadable), it falls through to a live-D-Bus-action lookup — which is empty
for a hint-only notification like ours — and silently returns.
/var/log/pacman.log shows that mid-way through the 4.0.0 -> 4.0.1 update
(2026-08-25T23:32:31+0100), quickshell-git (0.3.0.r20.g28771c7-2) was removed and
replaced with the stable quickshell package (0.3.1-1):
[2026-08-25T23:32:31+0100] [PACMAN] Running 'pacman -S --noconfirm --ask 4 quickshell'
[2026-08-25T23:32:31+0100] [ALPM] removed quickshell-git (0.3.0.r20.g28771c7-2)
[2026-08-25T23:32:31+0100] [ALPM] installed quickshell (0.3.1-1)
That's a different build than the git commit the shell's notification plugin was
written/tested against. My working theory is 0.3.1 changed how a Notification
object exposes non-standard D-Bus hints (naming, wrapping, or availability), son.hints["omarchy-exec-argv"] no longer reads back whatomarchy-notification-send --exec wrote — but I couldn't confirm the exact API
change from inside the running shell.
Steps to reproduce
- On Omarchy 4.0.1-1 with quickshell 0.3.1-1 (not quickshell-git), send:
omarchy-notification-send --urgency critical -g "" "Test" "body" --exec notify-send hi
2. Click the toast, or run: qs -p /usr/share/omarchy/shell ipc call notifications invokeLast
3. Expected: the --exec command runs. Actual: nothing happens, no error anywhere
(journal, quickshell's own qslog) records the attempt.
Impact
This breaks the crash-watch -> AI-diagnose flow (omarchy-crash-watch / omarchy-agent-crash) entirely for anyone who picked up quickshell 0.3.1 during
the same update, since it's the only caller of Util.execArgv in the shell.
Filed by Claude (Sonnet 5) via Claude Code.
View raw text
### System details Omarchy 4.0.1-1, quickshell 0.3.1-1 (upgraded from quickshell-git 0.3.0.r20.g28771c7-2) ### What's wrong? Clicking a "Process crashed" notification's "Click to diagnose with AI" action does nothing — no terminal, no agent, no error. Confirmed this isn't a click/timing issue: bypassing the mouse entirely via `qs ipc call notifications invokeLast` on a freshly sent test notification also does nothing, despite the IPC call returning "ok" (so `popupModel.count > 0` and `invokePopupDefault(0)` runs without throwing). ### Root cause (as far as I could trace it) `omarchy-notification-send --exec ...` stores the click command as a JSON array in a custom `omarchy-exec-argv` D-Bus hint. `plugins/notifications/NotificationLogic.js` reads it back via `stringHint(n.hints, "omarchy-exec-argv")` (plain property indexing: `hints[name]`). `Service.qml`'s `invokePopupDefault()` calls `NotificationLogic.parseExecArgv(entry.execArgv)`; when that returns null (hint missing/unreadable), it falls through to a live-D-Bus-action lookup — which is empty for a hint-only notification like ours — and silently returns. `/var/log/pacman.log` shows that mid-way through the 4.0.0 -> 4.0.1 update (2026-08-25T23:32:31+0100), `quickshell-git` (0.3.0.r20.g28771c7-2) was removed and replaced with the stable `quickshell` package (0.3.1-1): [2026-08-25T23:32:31+0100] [PACMAN] Running 'pacman -S --noconfirm --ask 4 quickshell' [2026-08-25T23:32:31+0100] [ALPM] removed quickshell-git (0.3.0.r20.g28771c7-2) [2026-08-25T23:32:31+0100] [ALPM] installed quickshell (0.3.1-1) That's a different build than the git commit the shell's notification plugin was written/tested against. My working theory is 0.3.1 changed how a `Notification` object exposes non-standard D-Bus hints (naming, wrapping, or availability), so `n.hints["omarchy-exec-argv"]` no longer reads back what `omarchy-notification-send --exec` wrote — but I couldn't confirm the exact API change from inside the running shell. ### Steps to reproduce 1. On Omarchy 4.0.1-1 with quickshell 0.3.1-1 (not quickshell-git), send: `omarchy-notification-send --urgency critical -g "" "Test" "body" --exec notify-send hi` 2. Click the toast, or run: `qs -p /usr/share/omarchy/shell ipc call notifications invokeLast` 3. Expected: the `--exec` command runs. Actual: nothing happens, no error anywhere (journal, quickshell's own qslog) records the attempt. ### Impact This breaks the crash-watch -> AI-diagnose flow (`omarchy-crash-watch` / `omarchy-agent-crash`) entirely for anyone who picked up quickshell 0.3.1 during the same update, since it's the only caller of `Util.execArgv` in the shell. Filed by Claude (Sonnet 5) via Claude Code.
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 09:15 UTC