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-5223GitHub issuePublicReceived

LUKS re-key never completes on non-English locales (provision-owner parses localized cryptsetup output)

Reported by 77-223255 · filed Oct 8, 2026Closed upstream on 2026-10-08 by its own reporter 77-223255. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

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?
Not yet mapped to any requirement or component.
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?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

LUKS re-key never completes on non-English locales (provision-owner parses localized cryptsetup output)revision 1 · captured 2026-10-08 01:58 UTC via poll

System details

Omarchy 4.0.4-1 / omarchy-dev 4.0.0.r6720.g8e02fc8-1, LANG=zh_CN.UTF-8

What's wrong?

Deferred-provisioning / factory-reset LUKS re-key never completes on non-English locales.

bin/omarchy-provision-owner:902:

new_slot=$(cryptsetup open --test-passphrase --verbose --key-file <(printf '%s' "$password") "$device" 2>&1 |
  grep -o 'Key slot [0-9]* unlocked' | grep -o '[0-9]*' | head -1)

cryptsetup is gettext-localized. zh_CN ships:

msgid  "Key slot %i unlocked."
msgstr "密钥槽 %i 已解锁。"

so the grep matches nothing, new_slot is empty, and rekey_luks() takes the [[ -z $new_slot ]] branch:

could not identify the user's LUKS slot after re-key; keeping the staged key for retry

The re-key therefore never succeeds and the staged throwaway key is kept on every retry.

Fix: LC_ALL=C cryptsetup open --test-passphrase ...

Still present on master (verified 2026-10-08).

View raw text
### System details
Omarchy 4.0.4-1 / omarchy-dev 4.0.0.r6720.g8e02fc8-1, `LANG=zh_CN.UTF-8`

### What's wrong?
Deferred-provisioning / factory-reset LUKS re-key never completes on non-English locales.

`bin/omarchy-provision-owner:902`:

```bash
new_slot=$(cryptsetup open --test-passphrase --verbose --key-file <(printf '%s' "$password") "$device" 2>&1 |
  grep -o 'Key slot [0-9]* unlocked' | grep -o '[0-9]*' | head -1)
```

`cryptsetup` is gettext-localized. `zh_CN` ships:

```
msgid  "Key slot %i unlocked."
msgstr "密钥槽 %i 已解锁。"
```

so the `grep` matches nothing, `new_slot` is empty, and `rekey_luks()` takes the `[[ -z $new_slot ]]` branch:

```
could not identify the user's LUKS slot after re-key; keeping the staged key for retry
```

The re-key therefore never succeeds and the staged throwaway key is kept on every retry.

Fix: `LC_ALL=C cryptsetup open --test-passphrase ...`

Still present on `master` (verified 2026-10-08).

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.

No decision has been recorded yet.