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

omarchy update silently restores the preinstalled apps the user removed

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

omarchy update silently restores the preinstalled apps the user removedrevision 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.

omarchy update silently undoes "Remove preinstalled apps": 13 mise stubs and 16 shipped .desktop launchers come back, while Omarchy still records that the user opted out.

omarchy-remove-preinstalls deletes the stubs and launchers and records the choice at ~/.local/state/omarchy/preinstalls-removed (bin/omarchy-remove-preinstalls:12,16). Migration 1786183928.sh then calls omarchy-refresh-applications with no guard:

echo "Refresh mise stubs so tools take new releases immediately"

omarchy-refresh-applications

omarchy-refresh-applications is the undo command — it is exactly what bin/omarchy-install-preinstalls:11 runs to restore preinstalls, and it copies every shipped .desktop and re-runs install/user/mise.sh. The two migrations immediately before it, 1785617047.sh:3 and 1785846769.sh:3, both check the preinstalls-removed marker. This one does not.

BEFORE: ~/.local/bin has 0 files; applications has 0 files

guarded migrations first (1785617047, 1785846769):
  -> ~/.local/bin now has 0 files  (guard respected)

now the unguarded one (1786183928):
Refresh mise stubs so tools take new releases immediately
  -> ~/.local/bin now has 13 files:
     claude codex copilot crush gemini gh ghui grok hunk omp opencode pi playwright
  -> ~/.local/share/applications now has 17 files:
     Basecamp.desktop  Discord.desktop  Google Contacts.desktop  Google Maps.desktop
     Google Messages.desktop  Google Photos.desktop  HEY.desktop  WhatsApp.desktop
     X.desktop  YouTube.desktop  Zoom.desktop  ...

preinstalls-removed marker still there? yes

So the user's app menu fills back up with Discord, WhatsApp, X, YouTube, Zoom, HEY and Basecamp, and because the marker survives, Omarchy still believes they are removed — omarchy-install-preinstalls would refuse to help and nothing in the UI reflects reality.

The migration's stated intent, refreshing mise stubs so tools pick up new releases, only needs the subset of install/user/mise.sh for stubs that already exist on disk.


Correction, after an independent review of this report:

Two corrections. omarchy-install-preinstalls does not refuse to help: it never reads the marker -- the marker is what surfaces the menu action, and a successful restore clears it. And 1785617047 / 1785846769 are not the immediate predecessors of 1786183928. The removed packages also stay uninstalled, so the restored Docker launcher points at a lazydocker that is gone. Affects existing installs that opted out before this migration ran; fresh installs mark it complete and are unaffected.

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.

`omarchy update` silently undoes "Remove preinstalled apps": 13 mise stubs and 16 shipped `.desktop` launchers come back, while Omarchy still records that the user opted out.

`omarchy-remove-preinstalls` deletes the stubs and launchers and records the choice at `~/.local/state/omarchy/preinstalls-removed` (`bin/omarchy-remove-preinstalls:12,16`). Migration `1786183928.sh` then calls `omarchy-refresh-applications` with no guard:

```bash
echo "Refresh mise stubs so tools take new releases immediately"

omarchy-refresh-applications
```

`omarchy-refresh-applications` is the *undo* command — it is exactly what `bin/omarchy-install-preinstalls:11` runs to restore preinstalls, and it copies every shipped `.desktop` and re-runs `install/user/mise.sh`. The two migrations immediately before it, `1785617047.sh:3` and `1785846769.sh:3`, both check the `preinstalls-removed` marker. This one does not.

```
BEFORE: ~/.local/bin has 0 files; applications has 0 files

guarded migrations first (1785617047, 1785846769):
  -> ~/.local/bin now has 0 files  (guard respected)

now the unguarded one (1786183928):
Refresh mise stubs so tools take new releases immediately
  -> ~/.local/bin now has 13 files:
     claude codex copilot crush gemini gh ghui grok hunk omp opencode pi playwright
  -> ~/.local/share/applications now has 17 files:
     Basecamp.desktop  Discord.desktop  Google Contacts.desktop  Google Maps.desktop
     Google Messages.desktop  Google Photos.desktop  HEY.desktop  WhatsApp.desktop
     X.desktop  YouTube.desktop  Zoom.desktop  ...

preinstalls-removed marker still there? yes
```

So the user's app menu fills back up with Discord, WhatsApp, X, YouTube, Zoom, HEY and Basecamp, and because the marker survives, Omarchy still believes they are removed — `omarchy-install-preinstalls` would refuse to help and nothing in the UI reflects reality.

The migration's stated intent, refreshing mise stubs so tools pick up new releases, only needs the subset of `install/user/mise.sh` for stubs that already exist on disk.

---

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

Two corrections. `omarchy-install-preinstalls` does **not** refuse to help: it never reads the marker -- the marker is what surfaces the menu action, and a successful restore clears it. And `1785617047` / `1785846769` are not the immediate predecessors of `1786183928`. The removed *packages* also stay uninstalled, so the restored Docker launcher points at a `lazydocker` that is gone. Affects existing installs that opted out before this migration ran; fresh installs mark it complete and are unaffected.

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