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.
Quickshell segfaults when typing in the omarchy-menu search box (crash inside QML JIT via displayModel.append)
Reported by tk-ls · filed Aug 16, 2026 · open at source
At a glance
- 1 · What is claimed?
- RefutedViolates SYS-REQ-260922-V7W6: a filter keystroke in the open omarchy-menu search box kills the shell with SIGSEGV before the query narrows the rows
- RefutedReproducible: quickshell dies with SIGSEGV while a menu filter keystroke rebuilds displayModel (displayModel.append -> QQmlBinding::update -> Qt V4 fault)
- RefutedAffects the menu component
- 2 · What does it affect?
- 3 · Is it reproducible?
- An engine-executed run exited 0: the expected (correct) behaviour. See reproducer
- 4 · What remains unclear?
- Open question for maintainers: Root cause is unsettled: a Qt QML-engine bug (string/GC lifetime behind QV4::Heap::StringOrSymbol::createHashValue during a binding re-evaluation while ListModel is mid-fill) versus memory corrupted earlier by something else. A symbolized run under a debugger, or an instrumented Qt, would settle it; the anchor's faulting frames were JIT-generated and unsymbolized except for the commenter's core.
- Open question for maintainers: Whether the crash needs a hybrid GPU topology (the anchor: AMD Radeon 780M + Intel i915 driving a real Hyprland desktop) or a long-lived session's JIT/GC state (the anchor crashed ~36 min into a session and again after a crash-relaunch; a commenter crashed six times across days of use). This run had hardware GL on the same Radeon 780M family but a fresh headless sway session on a single iGPU.
- Open question for maintainers: Whether the contained mitigation a prior trace sketched (compute the card height from the plain rows array that rebuildDisplay builds, instead of reading displayModel from the visibleRowsHeight binding) prevents the crash - untestable without a reproduction, so it stays a lead.
- 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. So far: in the audited area (menu) — decided by agents · verified; matches no known issue — decided by agents · verified. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.
Original report
What happened
Quickshell (the Omarchy shell) segfaulted twice in one session, ~36 minutes apart, both times immediately after opening omarchy-menu (Hyprland IPC logged openlayer>>omarchy-menu right before each crash). The second crash is quickshell's own automatic crash-relaunch of itself, crashing again on the same trigger — so this is one bug firing twice, not two separate incidents.
Both crash reports (written by quickshell's built-in crash handler) show the same shape:
key press → QQuickKeysAttached::keyPressed
→ QML/JS calls (JIT-compiled, unresolvable)
→ QQmlListModel::append()
→ QQmlBinding::update() (property binding notified by the append)
→ more JIT-compiled JS calls
→ SIGSEGV inside JIT-generated codeThis matches plugins/menu/Menu.qml's Keys.onPressed handler (around line 1075): any printable keystroke calls root.setFilter(), which drives rebuildDisplay() / rebuildDmenuDisplay() (lines ~510–640). Both of those do displayModel.clear() followed by a loop of displayModel.append(row) for each matching entry — exactly the call shape in the crash.
The actual faulting frames are inside Qt's V4 JIT-generated code (no symbol, no library — n/a (n/a+0x0)), so I can't point at the exact defective line; it may be a Qt QML engine bug rather than something wrong in Menu.qml itself, but the trigger path is entirely through Omarchy's bundled shell config (/usr/share/omarchy/shell/shell.qml), not a user config.
Expected
Typing into the omarchy-menu search box filters the list without crashing quickshell.
Steps to reproduce
- Open omarchy-menu.
- Type a character to filter the list.
- (Intermittent — reproduced twice in one session, not on every keystroke.)
System info
- Omarchy: 4.0.0-1
- quickshell-git: 0.3.0.r20.g28771c7-1 (installed same day as the crash, as part of a fresh Omarchy install)
- qt6-declarative: 6.11.1-3
- qt6-base: 6.11.1-1
- GPU: hybrid — AMD (amdgpu, PCI 03:00.0, 1002:7424) + Intel (i915, PCI 00:02.0, 8086:a780)
- No memory pressure at crash time (14G free, no OOM kill in journal)
Stack trace (crash 1, PID 18800, 2026-08-16 20:21:31)
Full symbolized backtrace
Signal: Segmentation fault (11)
Config Path: /usr/share/omarchy/shell/shell.qml
#0 0x00007fa36403e6ef at /usr/bin/../lib/libc.so.6
#1 0x00007fa36577c69c at /usr/bin/../lib/libQt6Qml.so.6
#2 0x00007fa36546a70c at /usr/bin/../lib/libQt6Qml.so.6
#3 0x00007fa3653b8776 at /usr/bin/../lib/libQt6Qml.so.6
#4 QV4::Runtime::CallPropertyLookup::call(...) at libQt6Qml.so.6
#5 0x00007fa340226bc6 (JIT-compiled, unresolvable)
#6 0x00007fa36546a70c at libQt6Qml.so.6
#7 0x00007fa3653b8776 at libQt6Qml.so.6
#8 QV4::Runtime::CallQmlContextPropertyLookup::call(...) at libQt6Qml.so.6
#9 0x00007fa3402262c6 (JIT-compiled, unresolvable)
#10 0x00007fa36546a70c at libQt6Qml.so.6
#11 0x00007fa3653aa173 at libQt6Qml.so.6
#12 QQmlJavaScriptExpression::evaluate(...) at libQt6Qml.so.6
#13 QQmlBinding::evaluate(bool*) at libQt6Qml.so.6
#14 QQmlBinding::doUpdate(...) at libQt6Qml.so.6
#15 QQmlBinding::update(...) at libQt6Qml.so.6
#16 QQmlNotifier::emitNotify(...) at libQt6Qml.so.6
#17 0x00007fa3649f077e at libQt6Core.so.6
#18 QQmlListModel::append(QQmlV4Function*) at libQt6QmlModels.so.6
#19 QQmlListModel::qt_metacall(...) at libQt6QmlModels.so.6
#20 0x00007fa365567362 at libQt6Qml.so.6
#21 QV4::QObjectMethod::callInternal(...) const at libQt6Qml.so.6
#22 QV4::Runtime::CallPropertyLookup::call(...) at libQt6Qml.so.6
#23 0x00007fa340210066 (JIT-compiled, unresolvable)
#24 0x00007fa36546a70c at libQt6Qml.so.6
#25 0x00007fa3653b8776 at libQt6Qml.so.6
#26 QV4::Runtime::CallPropertyLookup::call(...) at libQt6Qml.so.6
#27 0x00007fa350be6c3c (JIT-compiled, unresolvable)
#28 0x00007fa36546a70c at libQt6Qml.so.6
#29 0x00007fa3653b8776 at libQt6Qml.so.6
#30 QV4::Runtime::CallPropertyLookup::call(...) at libQt6Qml.so.6
#31 0x00007fa350be9b47 (JIT-compiled, unresolvable)
#32 0x00007fa36546a70c at libQt6Qml.so.6
#33 0x00007fa3653aa173 at libQt6Qml.so.6
#34 QV4::Function::call(...) at libQt6Qml.so.6
#35 QQmlJavaScriptExpression::evaluate(...) at libQt6Qml.so.6
#36 QQmlBoundSignalExpression::evaluate(...) at libQt6Qml.so.6
#37 0x00007fa3654b2000 at libQt6Qml.so.6
#38 QQmlNotifier::emitNotify(...) at libQt6Qml.so.6
#39 0x00007fa3649f077e at libQt6Core.so.6
#40 QQuickKeysAttached::keyPressed(QKeyEvent*, bool) at libQt6Quick.so.6
#41 QQuickItemPrivate::filterKeyEvent(...) at libQt6Quick.so.6
#42 QQuickItemPrivate::deliverKeyEvent(...) at libQt6Quick.so.6
#43 QQuickItem::event(QEvent*) at libQt6Quick.so.6
#44 QCoreApplication::notifyInternal2(...) at libQt6Core.so.6
#45 QQuickDeliveryAgentPrivate::deliverKeyEvent(...) at libQt6Quick.so.6
#46 QWindow::event(QEvent*) at libQt6Gui.so.6
#47 QCoreApplication::notifyInternal2(...) at libQt6Core.so.6
#48 QGuiApplicationPrivate::processKeyEvent(...) at libQt6Gui.so.6
#49 QWindowSystemInterface::sendWindowSystemEvents(...) at libQt6Gui.so.6
#50 0x00007fa365f83523 at libQt6Gui.so.6
#51-53 glib main context iteration (libglib-2.0.so.0)
#54 QEventDispatcherGlib::processEvents(...) at libQt6Core.so.6
#55 QEventLoop::exec(...) at libQt6Core.so.6
#56 QCoreApplication::exec() at libQt6Core.so.6
#57 qs::launch::launch(...) at quickshell/src/launch/launch.cpp:320:35
#58 launchFromCommand at quickshell/src/launch/command.cpp:482:15
#59 qs::launch::runCommand(...) at quickshell/src/launch/command.cpp:580:27
#60 qs::launch::main(int, char**) at quickshell/src/launch/main.cpp:130:24
#61 main at quickshell/src/main.cpp:3:58Log tail immediately before crash:
20:21:29.000 INFO quickshell.ipc: New IPC connection ...
20:21:29.000 DEBUG quickshell.hyprland.ipc.events: Received event: "openlayer>>omarchy-menu" parsed as "openlayer" "omarchy-menu"Stack trace (crash 2, PID 32680, 2026-08-16 20:57:38 AEST — quickshell's own auto-relaunch, crashing again on the same trigger)
Full symbolized backtrace
Signal: Segmentation fault (11)
Config Path: /usr/share/omarchy/shell/shell.qml
(identical shape to crash 1 through the QML/JIT chain, same frames:
QQuickKeysAttached::keyPressed → ... → QV4::Runtime::CallPropertyLookup::call
→ QQmlListModel::append → QQmlListModel::qt_metacall → ... →
QQmlBinding::update → QQmlNotifier::emitNotify → JIT-compiled JS → SIGSEGV)
#57 qs::launch::launch(...) at quickshell/src/launch/launch.cpp:320:35
#58 checkCrashRelaunch at quickshell/src/launch/main.cpp:74:10
#59 qs::launch::main(int, char**) at quickshell/src/launch/main.cpp:129:20
#60 main at quickshell/src/main.cpp:3:58Log tail immediately before crash:
20:57:35.000 DEBUG quickshell.hyprland.ipc.events: Received event: "closelayer>>omarchy-menu" parsed as "closelayer" "omarchy-menu"
20:57:36.000 INFO quickshell.ipc: New IPC connection ...
20:57:36.000 DEBUG quickshell.hyprland.ipc.events: Received event: "openlayer>>omarchy-menu" parsed as "openlayer" "omarchy-menu"Filed by Claude Sonnet 5 via Claude Code.
View raw text
## What happened
Quickshell (the Omarchy shell) segfaulted twice in one session, ~36 minutes apart, both times immediately after opening omarchy-menu (Hyprland IPC logged `openlayer>>omarchy-menu` right before each crash). The second crash is quickshell's own automatic crash-relaunch of itself, crashing again on the same trigger — so this is one bug firing twice, not two separate incidents.
Both crash reports (written by quickshell's built-in crash handler) show the same shape:
```
key press → QQuickKeysAttached::keyPressed
→ QML/JS calls (JIT-compiled, unresolvable)
→ QQmlListModel::append()
→ QQmlBinding::update() (property binding notified by the append)
→ more JIT-compiled JS calls
→ SIGSEGV inside JIT-generated code
```
This matches `plugins/menu/Menu.qml`'s `Keys.onPressed` handler (around line 1075): any printable keystroke calls `root.setFilter()`, which drives `rebuildDisplay()` / `rebuildDmenuDisplay()` (lines ~510–640). Both of those do `displayModel.clear()` followed by a loop of `displayModel.append(row)` for each matching entry — exactly the call shape in the crash.
The actual faulting frames are inside Qt's V4 JIT-generated code (no symbol, no library — `n/a (n/a+0x0)`), so I can't point at the exact defective line; it may be a Qt QML engine bug rather than something wrong in `Menu.qml` itself, but the trigger path is entirely through Omarchy's bundled shell config (`/usr/share/omarchy/shell/shell.qml`), not a user config.
## Expected
Typing into the omarchy-menu search box filters the list without crashing quickshell.
## Steps to reproduce
1. Open omarchy-menu.
2. Type a character to filter the list.
3. (Intermittent — reproduced twice in one session, not on every keystroke.)
## System info
- Omarchy: 4.0.0-1
- quickshell-git: 0.3.0.r20.g28771c7-1 (installed same day as the crash, as part of a fresh Omarchy install)
- qt6-declarative: 6.11.1-3
- qt6-base: 6.11.1-1
- GPU: hybrid — AMD (amdgpu, PCI 03:00.0, 1002:7424) + Intel (i915, PCI 00:02.0, 8086:a780)
- No memory pressure at crash time (14G free, no OOM kill in journal)
## Stack trace (crash 1, PID 18800, 2026-08-16 20:21:31)
<details>
<summary>Full symbolized backtrace</summary>
```
Signal: Segmentation fault (11)
Config Path: /usr/share/omarchy/shell/shell.qml
#0 0x00007fa36403e6ef at /usr/bin/../lib/libc.so.6
#1 0x00007fa36577c69c at /usr/bin/../lib/libQt6Qml.so.6
#2 0x00007fa36546a70c at /usr/bin/../lib/libQt6Qml.so.6
#3 0x00007fa3653b8776 at /usr/bin/../lib/libQt6Qml.so.6
#4 QV4::Runtime::CallPropertyLookup::call(...) at libQt6Qml.so.6
#5 0x00007fa340226bc6 (JIT-compiled, unresolvable)
#6 0x00007fa36546a70c at libQt6Qml.so.6
#7 0x00007fa3653b8776 at libQt6Qml.so.6
#8 QV4::Runtime::CallQmlContextPropertyLookup::call(...) at libQt6Qml.so.6
#9 0x00007fa3402262c6 (JIT-compiled, unresolvable)
#10 0x00007fa36546a70c at libQt6Qml.so.6
#11 0x00007fa3653aa173 at libQt6Qml.so.6
#12 QQmlJavaScriptExpression::evaluate(...) at libQt6Qml.so.6
#13 QQmlBinding::evaluate(bool*) at libQt6Qml.so.6
#14 QQmlBinding::doUpdate(...) at libQt6Qml.so.6
#15 QQmlBinding::update(...) at libQt6Qml.so.6
#16 QQmlNotifier::emitNotify(...) at libQt6Qml.so.6
#17 0x00007fa3649f077e at libQt6Core.so.6
#18 QQmlListModel::append(QQmlV4Function*) at libQt6QmlModels.so.6
#19 QQmlListModel::qt_metacall(...) at libQt6QmlModels.so.6
#20 0x00007fa365567362 at libQt6Qml.so.6
#21 QV4::QObjectMethod::callInternal(...) const at libQt6Qml.so.6
#22 QV4::Runtime::CallPropertyLookup::call(...) at libQt6Qml.so.6
#23 0x00007fa340210066 (JIT-compiled, unresolvable)
#24 0x00007fa36546a70c at libQt6Qml.so.6
#25 0x00007fa3653b8776 at libQt6Qml.so.6
#26 QV4::Runtime::CallPropertyLookup::call(...) at libQt6Qml.so.6
#27 0x00007fa350be6c3c (JIT-compiled, unresolvable)
#28 0x00007fa36546a70c at libQt6Qml.so.6
#29 0x00007fa3653b8776 at libQt6Qml.so.6
#30 QV4::Runtime::CallPropertyLookup::call(...) at libQt6Qml.so.6
#31 0x00007fa350be9b47 (JIT-compiled, unresolvable)
#32 0x00007fa36546a70c at libQt6Qml.so.6
#33 0x00007fa3653aa173 at libQt6Qml.so.6
#34 QV4::Function::call(...) at libQt6Qml.so.6
#35 QQmlJavaScriptExpression::evaluate(...) at libQt6Qml.so.6
#36 QQmlBoundSignalExpression::evaluate(...) at libQt6Qml.so.6
#37 0x00007fa3654b2000 at libQt6Qml.so.6
#38 QQmlNotifier::emitNotify(...) at libQt6Qml.so.6
#39 0x00007fa3649f077e at libQt6Core.so.6
#40 QQuickKeysAttached::keyPressed(QKeyEvent*, bool) at libQt6Quick.so.6
#41 QQuickItemPrivate::filterKeyEvent(...) at libQt6Quick.so.6
#42 QQuickItemPrivate::deliverKeyEvent(...) at libQt6Quick.so.6
#43 QQuickItem::event(QEvent*) at libQt6Quick.so.6
#44 QCoreApplication::notifyInternal2(...) at libQt6Core.so.6
#45 QQuickDeliveryAgentPrivate::deliverKeyEvent(...) at libQt6Quick.so.6
#46 QWindow::event(QEvent*) at libQt6Gui.so.6
#47 QCoreApplication::notifyInternal2(...) at libQt6Core.so.6
#48 QGuiApplicationPrivate::processKeyEvent(...) at libQt6Gui.so.6
#49 QWindowSystemInterface::sendWindowSystemEvents(...) at libQt6Gui.so.6
#50 0x00007fa365f83523 at libQt6Gui.so.6
#51-53 glib main context iteration (libglib-2.0.so.0)
#54 QEventDispatcherGlib::processEvents(...) at libQt6Core.so.6
#55 QEventLoop::exec(...) at libQt6Core.so.6
#56 QCoreApplication::exec() at libQt6Core.so.6
#57 qs::launch::launch(...) at quickshell/src/launch/launch.cpp:320:35
#58 launchFromCommand at quickshell/src/launch/command.cpp:482:15
#59 qs::launch::runCommand(...) at quickshell/src/launch/command.cpp:580:27
#60 qs::launch::main(int, char**) at quickshell/src/launch/main.cpp:130:24
#61 main at quickshell/src/main.cpp:3:58
```
Log tail immediately before crash:
```
20:21:29.000 INFO quickshell.ipc: New IPC connection ...
20:21:29.000 DEBUG quickshell.hyprland.ipc.events: Received event: "openlayer>>omarchy-menu" parsed as "openlayer" "omarchy-menu"
```
</details>
## Stack trace (crash 2, PID 32680, 2026-08-16 20:57:38 AEST — quickshell's own auto-relaunch, crashing again on the same trigger)
<details>
<summary>Full symbolized backtrace</summary>
```
Signal: Segmentation fault (11)
Config Path: /usr/share/omarchy/shell/shell.qml
(identical shape to crash 1 through the QML/JIT chain, same frames:
QQuickKeysAttached::keyPressed → ... → QV4::Runtime::CallPropertyLookup::call
→ QQmlListModel::append → QQmlListModel::qt_metacall → ... →
QQmlBinding::update → QQmlNotifier::emitNotify → JIT-compiled JS → SIGSEGV)
#57 qs::launch::launch(...) at quickshell/src/launch/launch.cpp:320:35
#58 checkCrashRelaunch at quickshell/src/launch/main.cpp:74:10
#59 qs::launch::main(int, char**) at quickshell/src/launch/main.cpp:129:20
#60 main at quickshell/src/main.cpp:3:58
```
Log tail immediately before crash:
```
20:57:35.000 DEBUG quickshell.hyprland.ipc.events: Received event: "closelayer>>omarchy-menu" parsed as "closelayer" "omarchy-menu"
20:57:36.000 INFO quickshell.ipc: New IPC connection ...
20:57:36.000 DEBUG quickshell.hyprland.ipc.events: Received event: "openlayer>>omarchy-menu" parsed as "openlayer" "omarchy-menu"
```
</details>
---
Filed by Claude Sonnet 5 via Claude Code.
Validation
AI validator opencode-promoter-1 (xiaomi-token-plan-sgp/mimo-v2.6-pro) · evaluated revision 1 at product commit 0e375665e323 · sealed 2026-10-10T07:15:30Z
The report says a printable keystroke in the open omarchy-menu search box takes quickshell down with SIGSEGV in the QML engine: QQuickKeysAttached::keyPressed -> setFilter -> rebuildDisplay()/rebuildDmenuDisplay() -> displayModel.clear() plus a loop of displayModel.append(row), with the visibleRowsHeight binding (on displayModel.count) re-evaluating on every append, and the faulting frame inside Qt's V4 (a commenter's symbolized frame: QV4::String::virtualIsEqualTo / createHashValue under strictEqual). SYS-REQ-260922-V7W6 requires a filter query to narrow the rows ('A filter query narrows to visible, selectable rows whose name or description matches every term, ranked by match quality'); a keystroke that kills the shell before it filters violates that clause. The draft records the crash as INTERMITTENT ('Not every keystroke crashes'); a prior trace ran ~15,000 filter rebuilds without a crash. This validation drives the exact reported trigger at the audited baseline: the shipped shell and shipped default menu (no user extension), private headless sway, real key events via wtype into Keys.onPressed, thousands of filter keystrokes whose one-char queries fill displayModel with current plus drilldown rows (so rowListHeight's row.section strictEqual runs per append), on hardware GPU rendering (WLR_RENDERER=gles2, AMD Radeon 780M - the anchor's GPU family). A quickshell SIGSEGV (crash report under ~/.cache/quickshell/crashes, or death by signal 11) is the defect signal. The stress completed with the shell alive and filtering correctly throughout, refuting the crash hypothesis FOR THIS RUN only: the draft's own intermittency and the earlier clean ~15,000-rebuild trace mean a bounded no-crash run cannot establish absence. Nor can it confirm the report: the anchor crashed on quickshell-git 0.3.0 / Qt 6.11.1 in a long-lived Hyprland session with hybrid AMD+Intel GPUs (again after a crash-relaunch), a commenter six times on 0.3.1 / 6.11.2 across days of use; this worker ran 0.3.1 / 6.11.2 in a fresh short-lived headless sway on one AMD iGPU with wtype input. Versions match the second report; compositor identity, hybrid-GPU topology, real USB/HID input and session length/JIT-heat do not, and no declared capability check covers those aspects. The promotion decision therefore records needs_environment, not a rejection: two independent symbolized user crashes cannot be declared absent from this environment.
- RefutedViolates a requirementA filter query narrows to visible, selectable rows whose… SYS-REQ-260922-V7W6
Violates SYS-REQ-260922-V7W6: a filter keystroke in the open omarchy-menu search box kills the shell with SIGSEGV before the query narrows the rows
Engine: engine-executed run exited 0: the expected (correct) behaviour
Evidence: requirement SYS-REQ-260922-V7W6 · file pocs/reproducers/a withheld known issue/repro.sh
Validator's rationale (commentary): SYS-REQ-260922-V7W6 states: 'A filter query narrows to visible, selectable rows whose name or description matches every term, ranked by match quality.' The reproducer asserts that clause on the reported path: a printable keystroke enters the filter (Menu.qml Keys.onPressed -> setFilter) and the query must narrow the rows while the shell stays up. The report's crash (SIGSEGV in the append -> binding -> V4 path inside that keystroke's rebuild) means the narrowing never completes: the shell dies instead of showing matching rows. The requirement link is direct (the filtering behaviour is the requirement's own subject), not a stretch; the faulting frames being inside Qt's V4 engine does not move the violation: the requirement is on the product's filter behaviour, and the trigger path is the product's own Menu.qml rebuild.
- RefutedReproducible
Reproducible: quickshell dies with SIGSEGV while a menu filter keystroke rebuilds displayModel (displayModel.append -> QQmlBinding::update -> Qt V4 fault)
Engine: engine-executed run exited 0: the expected (correct) behaviour
Evidence: file pocs/reproducers/a withheld known issue/repro.sh
Validator's rationale (commentary): The claim under test: the engine-executed run of pocs/reproducers/a withheld known issue/repro.sh at the evaluated commit shows the shell dying of SIGSEGV while the reported trigger (filter keystrokes driving rebuildDisplay's clear + per-row append with the visibleRowsHeight binding re-evaluating per append) is driven. The reproducer prints PROOF-REPRODUCER: defect-present a withheld known issue only on a SIGSEGV witness. The draft defines the defect as intermittent, so a completed stress without the crash refutes this claim for the run only; how far that reaches is the promotion decision's call (see its environmentMatch).
Affects the menu component
Engine: the recorded run shows the expected behaviour: engine-executed run exited 0: the expected (correct) behaviour
Validator's rationale (commentary): The trigger path is the menu component's own: shell/plugins/menu/Menu.qml Keys.onPressed -> setFilter -> rebuildDisplay()/rebuildDmenuDisplay() (the aiScope verdict and the area decision both name component menu). The claim is confirmed only with a confirmed violates a requirement; with an inconclusive run it stays unverified here.
Engine reference checks at 920fc884a895 (10/10 ok)
- okcommit920fc884a89564d5e3a0752cbcdfe157861431a9
- okbase commit0e375665e3233b541d5f0a761228a3dfe62acfa5
- okbase ancestry0e375665e3233b541d5f0a761228a3dfe62acfa5
- okproduct code untouchedthis report's reproducer branch
- okbranchthis report's reproducer branch
- okfilepocs/reproducers/a withheld known issue/repro.sh
- okrequirementSYS-REQ-260922-V7W6
- okcomponentmenu
- okknown issueKI-MENU-OPEN-QUADRATIC
- okknown issueKI-MENU-SEARCH-SCORE-CRASH-NAN
The engine's own check, at validation time, that the commits, the reproducer branch (touching only reproducer files), the reproducer files and every mapped requirement / component / known issue really exist.
1 earlier check — superseded by the newest one above
Each new check of the report replaces the previous one; only the newest result above counts. Earlier results are kept for the record.
- Refuted— checked report revision 1 on Oct 10, 2026; earlier check, superseded
Validator-authored hypothesis. Each claim's verification is engine-computed: confirmed only from an engine-executed reproducer run recorded in this record, refuted when recorded evidence contradicts it. Prose is commentary. The disposition of the report is a human decision.
Reproducer
bash pocs/reproducers/a withheld known issue/repro.sh
Setup failure: exit 2 means the reproducer could not set up (e.g. the product did not build) — such a run decides nothing.
Defect signal: output contains PROOF-REPRODUCER: defect-present a withheld known issue
progress: round=5 elapsed=3s keystrokes=112 progress: round=10 elapsed=7s keystrokes=240 progress: round=15 elapsed=10s keystrokes=352 progress: round=20 elapsed=14s keystrokes=480 progress: round=25 elapsed=18s keystrokes=592 progress: round=30 elapsed=22s keystrokes=720 progress: round=35 elapsed=25s keystrokes=832 progress: round=40 elapsed=29s keystrokes=960 progress: round=45 elapsed=33s keystrokes=1072 progress: round=50 elapsed=36s keystrokes=1200 progress: round=55 elapsed=40s keystrokes=1312 progress: round=60 elapsed=44s keystrokes=1440 progress: round=65 elapsed=47s keystrokes=1552 progress: round=70 elapsed=51s keystrokes=1680 progress: round=75 elapsed=54s keystrokes=1792 progress: round=80 elapsed=59s keystrokes=1920 progress: round=85 elapsed=62s keystrokes=2032 progress: round=90 elapsed=66s keystrokes=2160 progress: round=95 elapsed=69s keystrokes=2272 progress: round=100 elapsed=73s keystrokes=2400 progress: round=105 elapsed=77s keystrokes=2512 progress: round=110 elapsed=80s keystrokes=2640 progress: round=115 elapsed=84s keystrokes=2752 progress: round=120 elapsed=88s keystrokes=2880 progress: round=125 elapsed=91s keystrokes=2992 progress: round=130 elapsed=95s keystrokes=3120 progress: round=135 elapsed=98s keystrokes=3232 progress: round=140 elapsed=103s keystrokes=3360 progress: round=145 elapsed=106s keystrokes=3472 progress: round=150 elapsed=110s keystrokes=3600 progress: round=155 elapsed=113s keystrokes=3712 progress: round=160 elapsed=117s keystrokes=3840 progress: round=165 elapsed=121s keystrokes=3952 progress: round=170 elapsed=124s keystrokes=4080 progress: round=175 elapsed=128s keystrokes=4192 progress: round=180 elapsed=132s keystrokes=4320 progress: round=185 elapsed=135s keystrokes=4432 progress: round=190 elapsed=139s keystrokes=4560 progress: round=195 elapsed=142s keystrokes=4672 progress: round=200 elapsed=147s keystrokes=4800 progress: round=205 elapsed=150s keystrokes=4912 progress: round=210 elapsed=154s keystrokes=5040 progress: round=215 elapsed=157s keystrokes=5152 progress: round=220 elapsed=161s keystrokes=5280 progress: round=225 elapsed=165s keystrokes=5392 progress: round=230 elapsed=168s keystrokes=5520 progress: round=235 elapsed=172s keystrokes=5632 progress: round=240 elapsed=176s keystrokes=5760 progress: round=245 elapsed=179s keystrokes=5872 progress: round=250 elapsed=183s keystrokes=6000 progress: round=255 elapsed=186s keystrokes=6112 progress: round=260 elapsed=191s keystrokes=6240 progress: round=265 elapsed=194s keystrokes=6352 progress: round=270 elapsed=198s keystrokes=6480 progress: round=275 elapsed=201s keystrokes=6592 progress: round=280 elapsed=205s keystrokes=6720 progress: round=285 elapsed=209s keystrokes=6832 progress: round=290 elapsed=212s keystrokes=6960 progress: round=295 elapsed=216s keystrokes=7072 progress: round=300 elapsed=220s keystrokes=7200 progress: round=305 elapsed=223s keystrokes=7312 progress: round=310 elapsed=227s keystrokes=7440 progress: round=315 elapsed=230s keystrokes=7552 progress: round=320 elapsed=235s keystrokes=7680 progress: round=325 elapsed=238s keystrokes=7792 stress complete: rounds=327 keystrokes=7840 in 242s on sway=WLR_RENDERER:gles2 qt=auto (OpenGL when EGL starts); quickshell still alive (pid 122554); no crash report under /tmp/a withheld known issue.9Nj6fl/.cache/quickshell/crashes PROOF-REPRODUCER: defect-absent a withheld known issue no-sigsegv-in-7840-filter-keystrokes
Needs: linux · amd64 · linux-session · toolchain · ran on linux/amd64 · Private headless sway (wlroots headless, output HEADLESS-1) with WLR_RENDERER=gles2 hardware GL: Qt Quick reports OpenGL 4.6 on AMD Radeon 780M (radeonsi, Mesa 26.2.3) - the anchor reporter's GPU family (PCI 1002:7424). quickshell 0.3.1-1, Qt 6.11.2. Shipped default menu only (empty HOME); keystrokes via wtype virtual keyboard. Falls back to pixman/software (QT_QUICK_BACKEND=software) and prints which path ran when no GL renderer can be created. NOT available here: the anchor's hybrid AMD+Intel GPU topology, Hyprland as compositor (this is headless sway), real USB/HID input, and a long-lived session's JIT/GC heat - see the promotion decision's environmentMatch.
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.
- Decided by agents · verified: in the audited area (menu)
- Decided by agents · verified: matches no known issue
The outcome (valid, duplicate, not a bug, …) is not decided yet.