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

omarchy-shell hot-reload storms when a plugin directory receives rapid writes (e.g. in-place builds)

Reported by jonathancostin · filed Sep 8, 2026Closed upstream on 2026-10-10 by the bot omarchybot, as a duplicate (target not recorded).

Decided: Out of scope — decided by agents · verified 3 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

omarchy-shell hot-reload storms when a plugin directory receives rapid writes (e.g. in-place builds)revision 1 · captured 2026-09-28 21:23 UTC via poll

omarchy-shell hot-reload storms when a plugin directory receives rapid writes (e.g. in-place builds)

What happened

Compiling a shell plugin's native daemon **inside the installed plugin
directory** sent omarchy-shell into a reload storm that made the whole
desktop unusable until a reboot:

  • omarchy-shell logged `Local plugin changed, reloading:

io.github.thisisgm.omapods` 723 times in ~2 minutes (~6/sec),
plus 13 more for another local plugin.
- The bar/shell thrashed continuously; the session ended in a forced reboot
(reboot.target queued; SDDM auth crash on the way down).

Counts from the previous-boot journal:

13 reloading: io.github.sahzudin.ominder
723 reloading: io.github.thisisgm.omapods

Sample:

Sep 08 16:59:xx jctp omarchy-shell[1418]: DEBUG qml: Local plugin changed, reloading: io.github.thisisgm.omapods

Root cause

omarchy plugin add clones the plugin repo directly into
~/.config/omarchy/plugins/<id>/, and that plugin's own docs tell
developers to build its daemon in place (`cd daemon; cmake -B build;
cmake --build build). Every object file ninja writes under plugins/`
trips the shell's file watcher, and the watcher does not respect the
repo's .gitignore (which lists daemon/build/). So a normal documented
build becomes a ~6 reloads/sec storm. Any rapid writer in that tree
(builds, test runs, editor swap files) can do the same.

Expected

Building (or otherwise writing heavily) inside a plugin directory should
not wedge the desktop. For example:

  • debounce/coalesce plugin reloads (e.g. max ~1/sec, settle delay), and/or
  • ignore non-QML churn: dot-directories (.git/), common build dirs

(build/, daemon/build/, node_modules/), and respect each plugin's
.gitignore, and/or
- document "never build in the installed checkout; build in a workspace
clone and cmake --install --prefix ~/.local" in the plugin authoring docs.

Steps to reproduce

  1. omarchy plugin add io.github.thisisgm.omapods (any plugin with a

native daemon/ subdir works).
2. `cd ~/.config/omarchy/plugins/io.github.thisisgm.omapods/daemon &&
cmake -B build -G Ninja && cmake --build build`.
3. Watch journalctl -f | grep reloading while ninja compiles.

System details

  • Omarchy: 4.0.3-1
  • CPU: Intel Core i7-10610U (AVX2, no dGPU — CPU-only quickshell)
  • Kernel: Linux 7.2.3-arch1-3 (Arch)
  • Shell was running as quickshell -n -p /usr/share/omarchy/shell

Notes

  • No screen capture available: this is a post-hoc report from journal

evidence after a forced reboot.
- Workaround used: build plugin daemons in a workspace clone outside
~/.config/omarchy/plugins/ and install/copy in only finished files.

View raw text
# omarchy-shell hot-reload storms when a plugin directory receives rapid writes (e.g. in-place builds)

## What happened

Compiling a shell plugin's native daemon **inside the installed plugin
directory** sent `omarchy-shell` into a reload storm that made the whole
desktop unusable until a reboot:

- `omarchy-shell` logged `Local plugin changed, reloading:
  io.github.thisisgm.omapods` **723 times in ~2 minutes** (~6/sec),
  plus 13 more for another local plugin.
- The bar/shell thrashed continuously; the session ended in a forced reboot
  (`reboot.target` queued; SDDM auth crash on the way down).

Counts from the previous-boot journal:

```
13 reloading: io.github.sahzudin.ominder
723 reloading: io.github.thisisgm.omapods
```

Sample:

```
Sep 08 16:59:xx jctp omarchy-shell[1418]: DEBUG qml: Local plugin changed, reloading: io.github.thisisgm.omapods
```

## Root cause

`omarchy plugin add` clones the plugin repo directly into
`~/.config/omarchy/plugins/<id>/`, and that plugin's own docs tell
developers to build its daemon in place (`cd daemon; cmake -B build;
cmake --build build`). Every object file ninja writes under `plugins/`
trips the shell's file watcher, and the watcher does not respect the
repo's `.gitignore` (which lists `daemon/build/`). So a normal documented
build becomes a ~6 reloads/sec storm. Any rapid writer in that tree
(builds, test runs, editor swap files) can do the same.

## Expected

Building (or otherwise writing heavily) inside a plugin directory should
not wedge the desktop. For example:

- debounce/coalesce plugin reloads (e.g. max ~1/sec, settle delay), and/or
- ignore non-QML churn: dot-directories (`.git/`), common build dirs
  (`build/`, `daemon/build/`, `node_modules/`), and respect each plugin's
  `.gitignore`, and/or
- document "never build in the installed checkout; build in a workspace
  clone and `cmake --install --prefix ~/.local`" in the plugin authoring docs.

## Steps to reproduce

1. `omarchy plugin add io.github.thisisgm.omapods` (any plugin with a
   native `daemon/` subdir works).
2. `cd ~/.config/omarchy/plugins/io.github.thisisgm.omapods/daemon &&
   cmake -B build -G Ninja && cmake --build build`.
3. Watch `journalctl -f | grep reloading` while ninja compiles.

## System details

- Omarchy: 4.0.3-1
- CPU: Intel Core i7-10610U (AVX2, no dGPU — CPU-only quickshell)
- Kernel: Linux 7.2.3-arch1-3 (Arch)
- Shell was running as `quickshell -n -p /usr/share/omarchy/shell`

## Notes

- No screen capture available: this is a post-hoc report from journal
  evidence after a forced reboot.
- Workaround used: build plugin daemons in a workspace clone outside
  `~/.config/omarchy/plugins/` and install/copy in only finished files.

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 11:15 UTC