Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA 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.
Agents widget: Codex collector hardcodes stale --ask-for-approval value, breaks limits fetch
Reported by robertxxiv · filed Aug 26, 2026Closed upstream on 2026-10-04 by the bot omarchybot. GitHub close reason: completed. No closing PR or commit is recorded — "completed" alone is not evidence of a fix.
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
What happened
The Agents bar widget's Codex collector (/usr/share/omarchy/bin/omarchy-agent-usage-codex) always shows "Codex limits unavailable" / authHelpText: "initialize", even with a logged-in, working Codex CLI.
Root cause
The collector launches the app-server RPC with a hardcoded approval-policy flag value that no longer exists:
proc = subprocess.Popen(
[codex, "-s", "read-only", "-a", "untrusted", "app-server"],
...
)Current Codex CLI (0.149.1) only accepts on-request or never for -a/--ask-for-approval:
$ codex -s read-only -a untrusted app-server
error: invalid value 'untrusted' for '--ask-for-approval <APPROVAL_POLICY>'
[possible values: on-request, never]Because the collector redirects the subprocess's stderr to DEVNULL, this failure is invisible — the process just exits immediately, the initialize RPC call never gets a reply, and rpc_request raises TimeoutError("initialize") after its 8s timeout. That exception message ends up as the record's authHelpText, which is why the panel shows the confusing literal string "initialize" instead of a real auth/version hint.
Expected
Codex limits/plan should populate for an authenticated codex CLI, the way the Claude collector does. At minimum, -a untrusted should be updated to -a never (or on-request), and ideally subprocess stderr shouldn't be fully swallowed so future CLI-flag drift surfaces a real error instead of a bare TimeoutError message.
Steps to reproduce
- Have Codex CLI 0.149.1+ installed and authenticated (
codex login status→ "Logged in using ChatGPT"). - Run
omarchy-agent-usage-update(or open the Agents panel and refresh). ~/.local/state/omarchy/agents/usage/codex.jsonshows"limits": [],"usageStatusText": "Codex limits unavailable","authHelpText": "initialize".- Manually confirm:
codex -s read-only -a untrusted app-server→error: invalid value 'untrusted' for '--ask-for-approval <APPROVAL_POLICY>'.
System details
- Omarchy version: 4.0.1-1
- Codex CLI: codex-cli 0.149.1 (installed via mise)
omarchy debugcommand does not exist in this Omarchy version, so no auto-generated diagnostic log is attached.
Suggested fix
In omarchy-agent-usage-codex, change:
[codex, "-s", "read-only", "-a", "untrusted", "app-server"]to use "never" (or "on-request") in place of "untrusted".
View raw text
## What happened
The Agents bar widget's Codex collector (`/usr/share/omarchy/bin/omarchy-agent-usage-codex`) always shows "Codex limits unavailable" / `authHelpText: "initialize"`, even with a logged-in, working Codex CLI.
## Root cause
The collector launches the app-server RPC with a hardcoded approval-policy flag value that no longer exists:
```python
proc = subprocess.Popen(
[codex, "-s", "read-only", "-a", "untrusted", "app-server"],
...
)
```
Current Codex CLI (0.149.1) only accepts `on-request` or `never` for `-a`/`--ask-for-approval`:
```
$ codex -s read-only -a untrusted app-server
error: invalid value 'untrusted' for '--ask-for-approval <APPROVAL_POLICY>'
[possible values: on-request, never]
```
Because the collector redirects the subprocess's `stderr` to `DEVNULL`, this failure is invisible — the process just exits immediately, the `initialize` RPC call never gets a reply, and `rpc_request` raises `TimeoutError("initialize")` after its 8s timeout. That exception message ends up as the record's `authHelpText`, which is why the panel shows the confusing literal string `"initialize"` instead of a real auth/version hint.
## Expected
Codex limits/plan should populate for an authenticated `codex` CLI, the way the Claude collector does. At minimum, `-a untrusted` should be updated to `-a never` (or `on-request`), and ideally subprocess stderr shouldn't be fully swallowed so future CLI-flag drift surfaces a real error instead of a bare `TimeoutError` message.
## Steps to reproduce
1. Have Codex CLI 0.149.1+ installed and authenticated (`codex login status` → "Logged in using ChatGPT").
2. Run `omarchy-agent-usage-update` (or open the Agents panel and refresh).
3. `~/.local/state/omarchy/agents/usage/codex.json` shows `"limits": []`, `"usageStatusText": "Codex limits unavailable"`, `"authHelpText": "initialize"`.
4. Manually confirm: `codex -s read-only -a untrusted app-server` → `error: invalid value 'untrusted' for '--ask-for-approval <APPROVAL_POLICY>'`.
## System details
- Omarchy version: 4.0.1-1
- Codex CLI: codex-cli 0.149.1 (installed via mise)
- `omarchy debug` command does not exist in this Omarchy version, so no auto-generated diagnostic log is attached.
## Suggested fix
In `omarchy-agent-usage-codex`, change:
```python
[codex, "-s", "read-only", "-a", "untrusted", "app-server"]
```
to use `"never"` (or `"on-request"`) in place of `"untrusted"`.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.