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.
Tailscale panel: group machines into My/Tagged/Other and add "/" search
Reported by ssandys · filed Sep 6, 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
What happens
The MACHINES list renders every online peer in one flat alphabetical list. On my tailnet that is 135 rows, of which exactly one is a machine of mine — the rest are tagged infrastructure and coworkers' devices. Finding my own laptop means scrolling, and there is no way to search.
Composition, from a single tailscale status --json dump:
| Group | Whole tailnet | Online (rendered) |
|---|---|---|
My devices (UserID == self) | 13 | 1 |
Tagged devices (Tags non-empty) | 141 | 116 |
| Other users' devices | 213 | 18 |
| Total | 367 | 135 |
The panel lists online peers only (parseStatus keeps a peer only when Online), so 135 is what actually renders — tsui reports 367 because it includes offline devices. The online split naturally drifts over time.
Requested
Both of these match the behaviour of the [`tsui`](https://github.com/neuralink/tsui) TUI, which handles the same tailnet well:
- Group the list.
tsuisplits Network Devices into My Devices and Tagged Devices; its "My Devices" section shows exactly the 13 machines thatUserID == Self.UserIDyields on my tailnet. Peers belonging to other users fall outside both groups (213 tailnet-wide, 18 of them online), so a third Other Devices group keeps everything reachable rather than silently hiding rows the panel shows today.
- Search with `/`. Press
/to filter the list — matching hostname, MagicDNS name and IP. Searching the DNS name matters: the machine I know asny-exit-nodereportsFirezoneas its OS hostname (see the companion issue on exit node labelling), so hostname-only search would not find it.
Notes for implementation
No new data plumbing is needed — peerFromStatus already normalizes UserID (Model.js:103) and Tags (Model.js:111), and selfUserId is already parsed (Model.js:262) and exposed on the service (Service.qml:27).
Tagged should win over ownership, matching tsui: a device you authenticated but which carries a tag belongs under Tagged Devices — that is where atl-exit-node appears in tsui.
One pitfall worth flagging: PanelKeyCatcher uses Keys.priority: Keys.BeforeItem and consumes h/j/k/l/x as navigation, so any inline text field needs blocked: <field>.activeFocus, as its own header comment documents. Panel.qml:416 currently sets only blocked: root.copyMenuOpen — the existing Mullvad region search field appears to be missing this guard, so typing j or k into it should move the panel cursor rather than entering text. Worth fixing alongside.
Environment
- omarchy-dev 4.0.0.r2031.g41b6cc6-1 (quattro)
- tailscale 1.102.3
- Tailnet with 367 peers
View raw text
### What happens The MACHINES list renders every online peer in one flat alphabetical list. On my tailnet that is 135 rows, of which exactly **one** is a machine of mine — the rest are tagged infrastructure and coworkers' devices. Finding my own laptop means scrolling, and there is no way to search. Composition, from a single `tailscale status --json` dump: | Group | Whole tailnet | Online (rendered) | |---|---|---| | My devices (`UserID` == self) | 13 | 1 | | Tagged devices (`Tags` non-empty) | 141 | 116 | | Other users' devices | 213 | 18 | | **Total** | **367** | **135** | The panel lists online peers only (`parseStatus` keeps a peer only when `Online`), so 135 is what actually renders — `tsui` reports 367 because it includes offline devices. The online split naturally drifts over time. ### Requested **Both of these match the behaviour of the [`tsui`](https://github.com/neuralink/tsui) TUI**, which handles the same tailnet well: 1. **Group the list.** `tsui` splits Network Devices into **My Devices** and **Tagged Devices**; its "My Devices" section shows exactly the 13 machines that `UserID == Self.UserID` yields on my tailnet. Peers belonging to other users fall outside both groups (213 tailnet-wide, 18 of them online), so a third **Other Devices** group keeps everything reachable rather than silently hiding rows the panel shows today. 2. **Search with `/`.** Press `/` to filter the list — matching hostname, MagicDNS name and IP. Searching the DNS name matters: the machine I know as `ny-exit-node` reports `Firezone` as its OS hostname (see the companion issue on exit node labelling), so hostname-only search would not find it. ### Notes for implementation No new data plumbing is needed — `peerFromStatus` already normalizes `UserID` (`Model.js:103`) and `Tags` (`Model.js:111`), and `selfUserId` is already parsed (`Model.js:262`) and exposed on the service (`Service.qml:27`). Tagged should win over ownership, matching `tsui`: a device you authenticated but which carries a tag belongs under Tagged Devices — that is where `atl-exit-node` appears in `tsui`. One pitfall worth flagging: `PanelKeyCatcher` uses `Keys.priority: Keys.BeforeItem` and consumes `h`/`j`/`k`/`l`/`x` as navigation, so any inline text field needs `blocked: <field>.activeFocus`, as its own header comment documents. `Panel.qml:416` currently sets only `blocked: root.copyMenuOpen` — **the existing Mullvad region search field appears to be missing this guard**, so typing `j` or `k` into it should move the panel cursor rather than entering text. Worth fixing alongside. ### Environment - omarchy-dev 4.0.0.r2031.g41b6cc6-1 (quattro) - tailscale 1.102.3 - Tailnet with 367 peers
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 10:59 UTC