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.
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).
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)
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-shelllogged `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.omapodsSample:
Sep 08 16:59:xx jctp omarchy-shell[1418]: DEBUG qml: Local plugin changed, reloading: io.github.thisisgm.omapodsRoot 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
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