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

omarchy-plugin-validate: Regex fails for valid plugin IDs under Turkish locale

Reported by Underday · filed Aug 15, 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-plugin-validate: Regex fails for valid plugin IDs under Turkish localerevision 1 · captured 2026-09-28 21:29 UTC via poll

Bug Description

omarchy-plugin-validate fails to validate valid plugin IDs (like ssobhani.openrouter-usage) when the system locale is set to Turkish (tr_TR.UTF-8).

The regular expression [[ $ID =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]] relies on standard ASCII [A-Za-z] ranges. In Turkish locale, the lowercase i is not always considered part of a-z (due to the presence of dotless ı and dotted İ). As a result, the regex fails for plugin IDs containing the letter i and aborts the plugin addition.

Steps to Reproduce

  1. Set the locale to Turkish: export LC_ALL=tr_TR.UTF-8
  2. Try to validate or install a plugin with i in its ID:

omarchy plugin add https://github.com/sepehr500/omarchy-openrouter-usage.git
3. The command will fail with: omarchy-plugin-validate: invalid plugin id 'ssobhani.openrouter-usage'

Expected Behavior

The plugin validation should succeed regardless of the user's locale.

Proposed Fix

Force the C locale in /usr/share/omarchy/bin/omarchy-plugin-validate to ensure regex character classes evaluate as standard ASCII.

Adding export LC_ALL=C at the top of /usr/share/omarchy/bin/omarchy-plugin-validate (after set -o pipefail) fixes the issue.

View raw text
### Bug Description
`omarchy-plugin-validate` fails to validate valid plugin IDs (like `ssobhani.openrouter-usage`) when the system locale is set to Turkish (`tr_TR.UTF-8`). 

The regular expression `[[ $ID =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]]` relies on standard ASCII `[A-Za-z]` ranges. In Turkish locale, the lowercase `i` is not always considered part of `a-z` (due to the presence of dotless `ı` and dotted `İ`). As a result, the regex fails for plugin IDs containing the letter `i` and aborts the plugin addition.

### Steps to Reproduce
1. Set the locale to Turkish: `export LC_ALL=tr_TR.UTF-8`
2. Try to validate or install a plugin with `i` in its ID:
   `omarchy plugin add https://github.com/sepehr500/omarchy-openrouter-usage.git`
3. The command will fail with: `omarchy-plugin-validate: invalid plugin id 'ssobhani.openrouter-usage'`

### Expected Behavior
The plugin validation should succeed regardless of the user's locale.

### Proposed Fix
Force the C locale in `/usr/share/omarchy/bin/omarchy-plugin-validate` to ensure regex character classes evaluate as standard ASCII.

Adding `export LC_ALL=C` at the top of `/usr/share/omarchy/bin/omarchy-plugin-validate` (after `set -o pipefail`) fixes the issue.

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