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

Selecting the default agent installs an older version than the one already installed

Reported by yashksaini-coder · filed Aug 25, 2026 · open at source

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

Selecting the default agent installs an older version than the one already installedrevision 1 · captured 2026-09-28 21:24 UTC via poll

System details

Intel i7-13620H, NVIDIA RTX 5050 Max-Q (Mobile) + Intel UHD, Omarchy 4.0.0-1, mise 2026.8.6, kernel 7.1.8-arch1-3

What's wrong?

I have the current Claude Code installed (2.1.245). Picking Claude as the default agent tries to install 2.1.241 — an older build — and that older copy then takes over the claude command.

$ claude --version
2.1.245 (Claude Code)

$ mise use -g claude --dry-run
mise [email protected]        ⇢ would install

Same thing for codex (0.149.0 instead of 0.149.1), so it isn't Claude-specific.

Why

mise withholds releases younger than its release cooldown (~24h by default). bin/omarchy-default-agent is the only place Omarchy touches mise without turning that cooldown off:

# bin/omarchy-default-agent:45
if [[ $installing == "false" ]] && ! mise where "$agent_package" &>/dev/null; then

# bin/omarchy-default-agent:49
if ! mise use -g "$agent_package"; then

Everywhere else already overrides it — omarchy-mise-install:24, omarchy-update-mise:11, default/bash/aliases:57, and migrations/1787573629.sh — and docs/update-process.md:285 calls the override "the point". So this looks like a spot that was missed rather than a deliberate difference.

Setting the override gives the current version:

$ MISE_MINIMUM_RELEASE_AGE=0 mise use -g claude --dry-run
mise [email protected]        ⇢ would install

Reproduce

--dry-run installs nothing. The temp data dir matters — if a version was installed before, mise use -g reuses that directory and hides the difference.

S=$(mktemp -d)
run() { env MISE_DATA_DIR="$S/data" MISE_CONFIG_DIR="$S/config" \
            MISE_GLOBAL_CONFIG_FILE="$S/config/config.toml" "$@"; }

run mise use -g claude --dry-run                            # older build
run env MISE_MINIMUM_RELEASE_AGE=0 mise use -g claude --dry-run   # current build

Measured 2026-08-25, when upstream latest was 2.1.245.

One extra wrinkle

Nothing gets uninstalled — ~/.local/share/claude/versions/2.1.245 stays put. But mise activate puts mise's install dirs ahead of ~/.local/bin, so the older mise copy shadows it, and omarchy-agent runs the agent bare by name. It also shadows the lazy stub omarchy-mise-install writes at ~/.local/bin/claude — the stub that carries MISE_MINIMUM_RELEASE_AGE=0 and exists to keep these tools current — so that self-heal stops running until the next omarchy update.

PR with a one-line fix and a regression test: #8254

View raw text
### System details

Intel i7-13620H, NVIDIA RTX 5050 Max-Q (Mobile) + Intel UHD, Omarchy 4.0.0-1, mise 2026.8.6, kernel 7.1.8-arch1-3

### What's wrong?

I have the current Claude Code installed (`2.1.245`). Picking Claude as the default agent tries to install `2.1.241` — an older build — and that older copy then takes over the `claude` command.

```
$ claude --version
2.1.245 (Claude Code)

$ mise use -g claude --dry-run
mise [email protected]        ⇢ would install
```

Same thing for `codex` (`0.149.0` instead of `0.149.1`), so it isn't Claude-specific.

## Why

mise withholds releases younger than its release cooldown (~24h by default). `bin/omarchy-default-agent` is the only place Omarchy touches mise without turning that cooldown off:

```bash
# bin/omarchy-default-agent:45
if [[ $installing == "false" ]] && ! mise where "$agent_package" &>/dev/null; then

# bin/omarchy-default-agent:49
if ! mise use -g "$agent_package"; then
```

Everywhere else already overrides it — `omarchy-mise-install:24`, `omarchy-update-mise:11`, `default/bash/aliases:57`, and `migrations/1787573629.sh` — and `docs/update-process.md:285` calls the override "the point". So this looks like a spot that was missed rather than a deliberate difference.

Setting the override gives the current version:

```
$ MISE_MINIMUM_RELEASE_AGE=0 mise use -g claude --dry-run
mise [email protected]        ⇢ would install
```

## Reproduce

`--dry-run` installs nothing. The temp data dir matters — if a version was installed before, `mise use -g` reuses that directory and hides the difference.

```bash
S=$(mktemp -d)
run() { env MISE_DATA_DIR="$S/data" MISE_CONFIG_DIR="$S/config" \
            MISE_GLOBAL_CONFIG_FILE="$S/config/config.toml" "$@"; }

run mise use -g claude --dry-run                            # older build
run env MISE_MINIMUM_RELEASE_AGE=0 mise use -g claude --dry-run   # current build
```

Measured 2026-08-25, when upstream latest was `2.1.245`.

## One extra wrinkle

Nothing gets uninstalled — `~/.local/share/claude/versions/2.1.245` stays put. But `mise activate` puts mise's install dirs ahead of `~/.local/bin`, so the older mise copy shadows it, and `omarchy-agent` runs the agent bare by name. It also shadows the lazy stub `omarchy-mise-install` writes at `~/.local/bin/claude` — the stub that carries `MISE_MINIMUM_RELEASE_AGE=0` and exists to keep these tools current — so that self-heal stops running until the next `omarchy update`.

PR with a one-line fix and a regression test: #8254

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