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

starship: ahead/behind/diverged symbols are defined but can never render

Reported by jramiresbrito · filed Sep 13, 2026 · open at source

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

starship: ahead/behind/diverged symbols are defined but can never renderrevision 1 · captured 2026-09-28 21:23 UTC via poll

config/starship.toml defines ahead, behind and diverged, but none of them can ever appear in the prompt.

[git_status]
format     = '[$all_status]($style)'
ahead      = "⇡${count} "
diverged   = "⇕⇡${ahead_count}⇣${behind_count} "
behind     = "⇣${count} "

$all_status is a shortcut for the working tree statuses only — conflicted, stashed, deleted, renamed, modified, typechanged, staged, untracked. The comparison against the tracking branch is a separate variable, $ahead_behind, and it is not in the format string. So those three symbols are unreachable, and up_to_date never renders either.

The practical effect is that the prompt gives no indication of unpushed or unpulled commits. Committing without pushing looks identical to a clean, synced repo.

Reproducing

git init --bare /tmp/r.git && git clone /tmp/r.git /tmp/w && cd /tmp/w
echo x > f && git add -A && git commit -m init && git push origin HEAD
git branch --set-upstream-to=origin/master
echo y >> f && git commit -am second      # now 1 commit ahead
starship prompt                            # no ⇡1

Adding $ahead_behind to the format makes all four states render, using the symbols already defined:

StatePrompt
syncedmaster
2 unpushed commitsmaster ⇡2
1 behindmaster ⇣1
divergedmaster ⇕⇡1⇣1

Two ways to resolve

  1. format = '[$all_status$ahead_behind]($style)' — turns on the symbols that are already written, plus the up_to_date checkmark.
  2. Delete ahead, behind, diverged and up_to_date — if the minimal prompt is deliberate, the unreachable entries are just confusing to anyone reading or customising the file.

I've deliberately not sent a PR, since which of those is right is a design call rather than a bug fix. Happy to send one for whichever you prefer.

Verified against master (config/starship.toml) and on Omarchy 4.0.3 with starship 1.26.0.

View raw text
`config/starship.toml` defines `ahead`, `behind` and `diverged`, but none of them can ever appear in the prompt.

```toml
[git_status]
format     = '[$all_status]($style)'
ahead      = "⇡${count} "
diverged   = "⇕⇡${ahead_count}⇣${behind_count} "
behind     = "⇣${count} "
```

`$all_status` is a shortcut for the **working tree** statuses only — conflicted, stashed, deleted, renamed, modified, typechanged, staged, untracked. The comparison against the tracking branch is a separate variable, `$ahead_behind`, and it is not in the format string. So those three symbols are unreachable, and `up_to_date` never renders either.

The practical effect is that the prompt gives no indication of unpushed or unpulled commits. Committing without pushing looks identical to a clean, synced repo.

### Reproducing

```sh
git init --bare /tmp/r.git && git clone /tmp/r.git /tmp/w && cd /tmp/w
echo x > f && git add -A && git commit -m init && git push origin HEAD
git branch --set-upstream-to=origin/master
echo y >> f && git commit -am second      # now 1 commit ahead
starship prompt                            # no ⇡1
```

Adding `$ahead_behind` to the format makes all four states render, using the symbols already defined:

| State | Prompt |
|---|---|
| synced | `master ` |
| 2 unpushed commits | `master ⇡2` |
| 1 behind | `master ⇣1` |
| diverged | `master ⇕⇡1⇣1` |

### Two ways to resolve

1. `format = '[$all_status$ahead_behind]($style)'` — turns on the symbols that are already written, plus the `up_to_date` checkmark.
2. Delete `ahead`, `behind`, `diverged` and `up_to_date` — if the minimal prompt is deliberate, the unreachable entries are just confusing to anyone reading or customising the file.

I've deliberately not sent a PR, since which of those is right is a design call rather than a bug fix. Happy to send one for whichever you prefer.

Verified against `master` (`config/starship.toml`) and on Omarchy 4.0.3 with starship 1.26.0.

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 12:33 UTC