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

windows-vm: 4.0.1 migration rejects usernames the old installer allowed, stranding existing VMs with a misleading "not configured"

Reported by s0nspark · filed Aug 27, 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

windows-vm: 4.0.1 migration rejects usernames the old installer allowed, stranding existing VMs with a misleading "not configured"revision 1 · captured 2026-09-28 21:24 UTC via poll

System details

AMD Ryzen AI Max+ 395 (Radeon 8060S), Omarchy 4.0.1, kernel 6.18.46-1-lts, dockurr/windows

What's wrong?

4.0.1 moved the Windows VM compose from ~/.config/windows/docker-compose.yml to root-owned /var/lib/omarchy/windows/docker-compose.yml and validates every field on the root side before writing. USERNAME is validated with:

valid_username() { [[ $1 =~ ^[A-Za-z0-9_-]{1,20}$ ]]; }   # bin/omarchy-windows-vm:89

The pre-4.0.1 installer applied no validation to that field — empty fell back to docker, anything else was written verbatim:

USERNAME=$(gum input --placeholder="Username (Press enter to use default: docker)" ...)
if [[ -z $USERNAME ]]; then
  USERNAME="docker"
fi

So a VM installed with an email-style Windows account ([email protected] — what the Microsoft account sign-in prompt asks for) has a legacy compose the new code cannot migrate. write_compose exits 2 at line 140, migrate_legacy_compose returns 1 at line 358, and the VM is unreachable — while the container image and ~/.windows/data.img are completely intact.

The failure is near-undiagnosable from the CLI:

  • launch prints Windows VM not configured. Please run: omarchy-windows-vm install (line 621) — pointing the user at reinstalling a VM that already exists and works.
  • status, stop, and remove call migrate_legacy_compose 2>/dev/null || true (lines 600, 708, 724), so the one line that names the real cause (invalid username: …) is discarded outright. Those subcommands simply behave as though no VM was ever configured.

Following the suggested remedy makes it worse: install provisions a fresh VM, and it succeeds where migration failed, because the installer silently substitutes docker for an invalid username (lines 503-506). Migration rejecting what install quietly repairs is the actual defect.

Still present on master as of today.

Steps to reproduce

  1. On Omarchy < 4.0.1, omarchy-windows-vm install and enter [email protected] as the Windows username.
  2. Upgrade to 4.0.1.
  3. omarchy-windows-vm status → reports not configured, no explanation.
  4. omarchy-windows-vm launch → Windows VM not configured. Please run: omarchy-windows-vm install, despite a valid legacy compose and an intact ~/.windows/data.img.

Suggested fix

Have migrate_legacy_compose sanitize rather than reject. USERNAME is inert after install — dockurr/windows reads it only to build the unattend file during Windows setup — so falling back to docker on migration is safe and matches what install already does for the same input.

Failing that: name the offending field and value in the failure message, and stop discarding stderr in the status/stop/remove paths so the cause is at least visible.

View raw text
### System details

AMD Ryzen AI Max+ 395 (Radeon 8060S), Omarchy 4.0.1, kernel 6.18.46-1-lts, `dockurr/windows`

### What's wrong?

4.0.1 moved the Windows VM compose from `~/.config/windows/docker-compose.yml` to root-owned `/var/lib/omarchy/windows/docker-compose.yml` and validates every field on the root side before writing. `USERNAME` is validated with:

```bash
valid_username() { [[ $1 =~ ^[A-Za-z0-9_-]{1,20}$ ]]; }   # bin/omarchy-windows-vm:89
```

The pre-4.0.1 installer applied **no** validation to that field — empty fell back to `docker`, anything else was written verbatim:

```bash
USERNAME=$(gum input --placeholder="Username (Press enter to use default: docker)" ...)
if [[ -z $USERNAME ]]; then
  USERNAME="docker"
fi
```

So a VM installed with an email-style Windows account (`[email protected]` — what the Microsoft account sign-in prompt asks for) has a legacy compose the new code cannot migrate. `write_compose` exits 2 at line 140, `migrate_legacy_compose` returns 1 at line 358, and the VM is unreachable — while the container image and `~/.windows/data.img` are completely intact.

**The failure is near-undiagnosable from the CLI:**

- `launch` prints `Windows VM not configured. Please run: omarchy-windows-vm install` (line 621) — pointing the user at reinstalling a VM that already exists and works.
- `status`, `stop`, and `remove` call `migrate_legacy_compose 2>/dev/null || true` (lines 600, 708, 724), so the one line that names the real cause (`invalid username: …`) is discarded outright. Those subcommands simply behave as though no VM was ever configured.

Following the suggested remedy makes it worse: `install` provisions a fresh VM, and it *succeeds* where migration failed, because the installer silently substitutes `docker` for an invalid username (lines 503-506). Migration rejecting what `install` quietly repairs is the actual defect.

Still present on master as of today.

### Steps to reproduce

1. On Omarchy < 4.0.1, `omarchy-windows-vm install` and enter `[email protected]` as the Windows username.
2. Upgrade to 4.0.1.
3. `omarchy-windows-vm status` → reports not configured, no explanation.
4. `omarchy-windows-vm launch` → `Windows VM not configured. Please run: omarchy-windows-vm install`, despite a valid legacy compose and an intact `~/.windows/data.img`.

### Suggested fix

Have `migrate_legacy_compose` sanitize rather than reject. `USERNAME` is inert after install — `dockurr/windows` reads it only to build the unattend file during Windows setup — so falling back to `docker` on migration is safe and matches what `install` already does for the same input.

Failing that: name the offending field and value in the failure message, and stop discarding stderr in the `status`/`stop`/`remove` paths so the cause is at least visible.

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