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.
omarchy weather location shows truncated coordinates instead of a city name when wttr.in falls back to raw lat/lon
Reported by Elderswift · filed Sep 2, 2026 · open at source
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
System details
AMD Ryzen 5 7520U, AMD Radeon 610M, 8 GiB, Omarchy 4.0.1-1
What's wrong?
Environment
- Omarchy version: 4.0.1-1
- Connected via a mobile phone hotspot (relevant — see Root cause)
Description
When no location is manually set, omarchy weather location is supposed
to show your auto-detected city name. Instead it sometimes shows a single
bare number (e.g. 37.751000) with no city name and no second coordinate.
The weather data itself (temperature, forecast, etc.) is unaffected —
this only breaks the location label.
Steps to reproduce
- Connect via a network whose public IP doesn't cleanly resolve to a
city — a mobile carrier hotspot is a reliable way to trigger this,
since carrier NAT gateways commonly return coordinates with no
resolvable city name.
2. Do not set a manual location:
omarchy weather location --clear- Run:
omarchy weather location- Compare against the raw API call:
curl -fsS --max-time 4 "https://wttr.in/?format=%l" On affected connections, this returns raw coordinates
(e.g. 37.751000,-97.822000) instead of a resolved city name.
Expected behavior
Either a resolved city name, or — when wttr.in can't resolve one — the
full coordinate pair or a clear "location unavailable" message.
Actual behavior
A truncated, meaningless fragment (e.g. 37.751000) with no indication
anything went wrong.
Root cause
In omarchy-weather-location, the no-args branch does:
name=$(curl -fsS --max-time 4 "https://wttr.in/?format=%l" 2>/dev/null)
name=${name%%,*}This assumes wttr.in always returns City, Country, so it strips
everything after the first comma to keep just the city. But when wttr.in
can't resolve a city — which is common on mobile carrier connections,
since NAT gateway IPs often don't map to a specific city — it falls back
to returning raw coordinates instead. The same comma-stripping logic then
runs against that coordinate pair, silently discarding the longitude and
leaving an orphaned latitude value. This will affect any user checking
weather over a mobile hotspot, not just an edge case.
Suggested fix
Before stripping at the comma, check whether $name matches the script's
own COORDS_PATTERN regex (already defined earlier in this file for the --set validation). If it matches, either keep the full coordinate pair
as-is or fall back to a "location unavailable" message, rather than
truncating it as if it were a city name.
View raw text
### System details
AMD Ryzen 5 7520U, AMD Radeon 610M, 8 GiB, Omarchy 4.0.1-1
### What's wrong?
### Environment
- Omarchy version: 4.0.1-1
- Connected via a mobile phone hotspot (relevant — see Root cause)
### Description
When no location is manually set, `omarchy weather location` is supposed
to show your auto-detected city name. Instead it sometimes shows a single
bare number (e.g. `37.751000`) with no city name and no second coordinate.
The weather data itself (temperature, forecast, etc.) is unaffected —
this only breaks the location label.
### Steps to reproduce
1. Connect via a network whose public IP doesn't cleanly resolve to a
city — a mobile carrier hotspot is a reliable way to trigger this,
since carrier NAT gateways commonly return coordinates with no
resolvable city name.
2. Do not set a manual location:
```bash
omarchy weather location --clear
```
3. Run:
```bash
omarchy weather location
```
4. Compare against the raw API call:
```bash
curl -fsS --max-time 4 "https://wttr.in/?format=%l"
```
On affected connections, this returns raw coordinates
(e.g. `37.751000,-97.822000`) instead of a resolved city name.
### Expected behavior
Either a resolved city name, or — when wttr.in can't resolve one — the
full coordinate pair or a clear "location unavailable" message.
### Actual behavior
A truncated, meaningless fragment (e.g. `37.751000`) with no indication
anything went wrong.
### Root cause
In `omarchy-weather-location`, the no-args branch does:
```bash
name=$(curl -fsS --max-time 4 "https://wttr.in/?format=%l" 2>/dev/null)
name=${name%%,*}
```
This assumes wttr.in always returns `City, Country`, so it strips
everything after the first comma to keep just the city. But when wttr.in
can't resolve a city — which is common on mobile carrier connections,
since NAT gateway IPs often don't map to a specific city — it falls back
to returning raw coordinates instead. The same comma-stripping logic then
runs against that coordinate pair, silently discarding the longitude and
leaving an orphaned latitude value. This will affect any user checking
weather over a mobile hotspot, not just an edge case.
### Suggested fix
Before stripping at the comma, check whether `$name` matches the script's
own `COORDS_PATTERN` regex (already defined earlier in this file for the
`--set` validation). If it matches, either keep the full coordinate pair
as-is or fall back to a "location unavailable" message, rather than
truncating it as if it were a city name.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
- Fixed bypr/12155· confirmed
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 10:31 UTC