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.
herdr client aborts (double Rust panic) when its terminal closes: "failed printing to stderr: Input/output error (os error 5)"
Reported by perminder-klair · filed Aug 18, 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 happened
herdr client (package herdr 0.8.0.r13-1, the Omarchy fork) crashes with SIGABRT whenever the terminal hosting it goes away while the client still writes output. systemd-coredump caught it three times on this machine with identical backtraces (Aug 17 2026 ×2, Aug 18 2026), plus once earlier from a local build.
Evidence
The core dump's memory contains Rust's standard-library panic message:
failed printing to stderr: Input/output error (os error 5)EIO is what a pty returns after its terminal emulator has died. The main thread's stack shows the panic machinery twice at identical offsets (frames 3–10 repeated as 13–18) before abort() — the panic handler's own attempt to print the panic message to the same dead stderr fails too, and the double panic aborts. si_code: SI_TKILL confirms the process raised SIGABRT on itself. Memory pressure ruled out (6.6 GiB free, no OOM kills).
Backtrace (binary is stripped; not on debuginfod):
Stack trace of thread 18715:
#0 0x00007fa71229a17c n/a (libc.so.6 + 0x9a17c)
#1 0x00007fa71223e5d0 raise (libc.so.6 + 0x3e5d0)
#2 0x00007fa712225685 abort (libc.so.6 + 0x25685)
#3 0x000055f56872401a n/a (herdr + 0x112a01a)
#4 0x000055f56871f999 n/a (herdr + 0x1125999)
#5 0x000055f56871fded n/a (herdr + 0x1125ded)
#6 0x000055f568702b52 n/a (herdr + 0x1108b52)
#7 0x000055f5686f9ae9 n/a (herdr + 0x10ffae9)
#8 0x000055f568703d1d n/a (herdr + 0x1109d1d)
#9 0x000055f56874578c n/a (herdr + 0x114b78c)
#10 0x000055f568720520 n/a (herdr + 0x1126520)
#11 0x000055f56859d0ba n/a (herdr + 0xfa30ba)
#12 0x000055f56859c963 n/a (herdr + 0xfa2963)
#13 0x000055f56871fce2 n/a (herdr + 0x1125ce2)
#14 0x000055f568702b52 n/a (herdr + 0x1108b52)
#15 0x000055f5686f9ae9 n/a (herdr + 0x10ffae9)
#16 0x000055f568703d1d n/a (herdr + 0x1109d1d)
#17 0x000055f56874578c n/a (herdr + 0x114b78c)
#18 0x000055f568720520 n/a (herdr + 0x1126520)
#19 0x000055f5680b87da n/a (herdr + 0xabe7da)
#20 0x000055f5680b57a9 n/a (herdr + 0xabb7a9)
#21 0x000055f5682aa39f n/a (herdr + 0xcb039f)
#22 0x000055f567d52f46 n/a (herdr + 0x758f46)
#23 0x000055f567e52561 n/a (herdr + 0x858561)
#24 0x000055f56871e857 n/a (herdr + 0x1124857)
#25 0x000055f5682f696d n/a (herdr + 0xcfc96d)
#26 0x00007fa712227781 n/a (libc.so.6 + 0x27781)
#27 0x00007fa7122278b9 __libc_start_main (libc.so.6 + 0x278b9)
#28 0x000055f5679d58c5 n/a (herdr + 0x3db8c5)Steps to reproduce
- Run
herdr clientin a terminal window (launched viaxdg-terminal-execunder Hyprland). - Close the terminal window while the client is running.
- The client's next write to the dead pty returns EIO; Rust std panics with "failed printing to stderr", the panic message itself can't print, and the double panic aborts → core dump + Omarchy crash notification.
Expected
The client exits quietly when its pty is gone (handle EIO on stdout/stderr writes instead of panicking), rather than dumping core and triggering a crash notification on every terminal close.
System
- Omarchy 4.0.0-1, Hyprland 0.56.2, kernel 7.1.8-arch1-3 (ThinkPad X270, Intel i5-7200U / HD 620)
- herdr 0.8.0.r13-1 (installed 2026-08-15)
Filed by Claude Fable 5 via Claude Code.
View raw text
## What happened `herdr client` (package `herdr 0.8.0.r13-1`, the Omarchy fork) crashes with SIGABRT whenever the terminal hosting it goes away while the client still writes output. systemd-coredump caught it three times on this machine with identical backtraces (Aug 17 2026 ×2, Aug 18 2026), plus once earlier from a local build. ## Evidence The core dump's memory contains Rust's standard-library panic message: ``` failed printing to stderr: Input/output error (os error 5) ``` EIO is what a pty returns after its terminal emulator has died. The main thread's stack shows the panic machinery **twice at identical offsets** (frames 3–10 repeated as 13–18) before `abort()` — the panic handler's own attempt to print the panic message to the same dead stderr fails too, and the double panic aborts. `si_code: SI_TKILL` confirms the process raised SIGABRT on itself. Memory pressure ruled out (6.6 GiB free, no OOM kills). Backtrace (binary is stripped; not on debuginfod): ``` Stack trace of thread 18715: #0 0x00007fa71229a17c n/a (libc.so.6 + 0x9a17c) #1 0x00007fa71223e5d0 raise (libc.so.6 + 0x3e5d0) #2 0x00007fa712225685 abort (libc.so.6 + 0x25685) #3 0x000055f56872401a n/a (herdr + 0x112a01a) #4 0x000055f56871f999 n/a (herdr + 0x1125999) #5 0x000055f56871fded n/a (herdr + 0x1125ded) #6 0x000055f568702b52 n/a (herdr + 0x1108b52) #7 0x000055f5686f9ae9 n/a (herdr + 0x10ffae9) #8 0x000055f568703d1d n/a (herdr + 0x1109d1d) #9 0x000055f56874578c n/a (herdr + 0x114b78c) #10 0x000055f568720520 n/a (herdr + 0x1126520) #11 0x000055f56859d0ba n/a (herdr + 0xfa30ba) #12 0x000055f56859c963 n/a (herdr + 0xfa2963) #13 0x000055f56871fce2 n/a (herdr + 0x1125ce2) #14 0x000055f568702b52 n/a (herdr + 0x1108b52) #15 0x000055f5686f9ae9 n/a (herdr + 0x10ffae9) #16 0x000055f568703d1d n/a (herdr + 0x1109d1d) #17 0x000055f56874578c n/a (herdr + 0x114b78c) #18 0x000055f568720520 n/a (herdr + 0x1126520) #19 0x000055f5680b87da n/a (herdr + 0xabe7da) #20 0x000055f5680b57a9 n/a (herdr + 0xabb7a9) #21 0x000055f5682aa39f n/a (herdr + 0xcb039f) #22 0x000055f567d52f46 n/a (herdr + 0x758f46) #23 0x000055f567e52561 n/a (herdr + 0x858561) #24 0x000055f56871e857 n/a (herdr + 0x1124857) #25 0x000055f5682f696d n/a (herdr + 0xcfc96d) #26 0x00007fa712227781 n/a (libc.so.6 + 0x27781) #27 0x00007fa7122278b9 __libc_start_main (libc.so.6 + 0x278b9) #28 0x000055f5679d58c5 n/a (herdr + 0x3db8c5) ``` ## Steps to reproduce 1. Run `herdr client` in a terminal window (launched via `xdg-terminal-exec` under Hyprland). 2. Close the terminal window while the client is running. 3. The client's next write to the dead pty returns EIO; Rust std panics with "failed printing to stderr", the panic message itself can't print, and the double panic aborts → core dump + Omarchy crash notification. ## Expected The client exits quietly when its pty is gone (handle EIO on stdout/stderr writes instead of panicking), rather than dumping core and triggering a crash notification on every terminal close. ## System - Omarchy 4.0.0-1, Hyprland 0.56.2, kernel 7.1.8-arch1-3 (ThinkPad X270, Intel i5-7200U / HD 620) - herdr 0.8.0.r13-1 (installed 2026-08-15) Filed by Claude Fable 5 via Claude Code.
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:38 UTC