Proof Portal

Project overview

Omarchy

ProbeLabsviewing a historical run

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.

Viewing historical run 9f26c21Oct 1, 2026, 08:58 PMpr/13968Back to current
All requirements
RequirementSYS-REQ-260922-P708SystemReview

Activating a row runs its action, follows its link, or drills into its submenu.

This requirement changed after its last recorded review, so approval is stale. Automated checks pass and 1/1 obligations are satisfied.
PriorityshallTypeguaranteeCategoryfunctionalComponentmenuAssuranceCFindingsnone open

Specification

The requirement exactly as authored — its complete prose text and, where present, the formal FRETish sentence it compiles to.

Description

Activating a row runs its action, follows its link, or drills into its submenu. The cursor never rests on a disabled row. Back navigation retraces the drill path.

FRETish formula
when selection_made the menu_navigation shall eventually satisfy action_executed_or_submenu_opened
View full formal model

Rationale & tags

Why this requirement exists, and how it is categorised.

Navigation semantics define what Enter/click does; a cursor parked on a disabled row would activate nothing.

Verification & provenance

How this requirement was checked: the review trail, edit history, and the machine-analysis status terms (each ⓘ explains what it means).

Assurance levelC
Formalizationvalid
Realizabilityrealizable
Vacuitychecked_ok
Strategyfretish

Review

Status
in_review
Reviewer
Kimi Zero Warnings · AI agent
Reviewed
Sep 27, 2026, 21:25 UTC

History

Created
Sep 22, 2026, 13:33 UTC · Kimi Dogfood · AI agent
Modified
Sep 30, 2026, 08:07 UTC · Leonid Bugaev

Hazard review

Reviewed Sep 30, 2026, 08:07 UTCby human:Leonid Bugaevcatalog v1.10.1
  • scenarioreviewedboundaryedge_case

    Worst case graded above (rebuild parks cursor on newly-disabled row - low, guarded by the child skip/no-park guarantees the trace carries). boundary: an all-disabled submenu admits no cursor at all (child no-parked-cursor), and back navigation retraces the drill path rather than popping to root - the two partition edges this contract names. edge_case: activating a link-type row follows its target instead of running an action, and submenu rows drill instead of executing - kind inferred at merge decides which, so a mis-inferred kind is the malformed half and is owned by the merge children. The direct implementation site (Menu.qml row activation + back stack) carries the Implements marker.

  • propertyrevieweddeterminism

    determinism: activation is a pure function of the row contract (kind + target/action) and back navigation is a pure stack pop - the same row answers the same way on every activation; no algebraic or ordering surface beyond that. idempotency is deliberately not carried: activating Toggle X twice is two toggles by design (the verb owns idempotency, not the navigation).

  • structuralnot applicable

    QML selection state (int index + model flags): no memory/pointer/encoding surface; the sentinel arithmetic on cursor state is dispositioned under scenario.boundary via the children.

  • domainnot applicable

    activation dispatches the row action through the same action-script family under SYS-REQ-260922-6642 (its hazard_review carries the timeout/observability decisions); navigation itself makes no external call, crosses no trust boundary, and has no concurrency surface (single-threaded QML input handling).

Change history

Every recorded revision of this requirement's source file — newest first, each with its commit message and the diff for that change.

Obligations

What this requirement must witness to be considered satisfied — the required evidence, and the tests that discharge each one.

1 obligation · 1 discharged

Browse the catalogue

Evidence tagged via <REQ> is witnessed by a requirement that satisfies this one — normal for stakeholder / aggregate requirements, which are proven through the requirements that refine them.

Discharged

Behavior at limits, thresholds, and edge-of-range values.

If it were violatedLow

a drill-down or filter rebuild lands the cursor on a row that is now disabled (row set changed under the held selection index): the user presses Enter and the activation targets a row that renders dimmed - the contract forbids cursor-on-disabled and the children guard it (disabled rows skipped on cursor moves, no parked cursor when all rows are disabled), so the residual is only a rebuild racing an open dialog, graded low

Discharging evidence1/1 required witnessed
  • nominalrequiredpresent
    Covered by 2 tests
    via SW-REQ-260922-Z48F
  • boundaryrecommendedpresent
    Covered by 1 test

Formula evidence

The formal formula behind this requirement, the variables it is written over, and the tests that exercise it (each term is explained inline).

FRETish formula

when selection_made the menu_navigation shall eventually satisfy action_executed_or_submenu_opened

Witnesses· 2 scenarios total

  • pokeGuards
    exercises 2 condition scenarios

MC/DC truth table· 3 rows

Each row assigns the formula's conditions (T/F) and shows the Result— the formula's value for that input row, not a test pass/fail. A row proves a condition when flipping only that condition flips the outcome. The test that covers each row is linked.

Covereda test exercises this rowExempteda reviewed mcdc:ignoreNo-actionfalse-result row satisfied by designUncoveredneeds a covering test
#action_executed_or_submenu_openedselection_madeResultProvesCovering test
1FFTselection_made
2FTFaction_executed_or_submenu_opened—
3TTTaction_executed_or_submenu_opened

Its place

How this requirement connects — what proves it, what it affects, and what it rests on. Authored links only here; automatically derived links come from the audit index.

Loading graph…

Trace evidence

The concrete artifacts linked to this requirement — implementing code, verifying tests, documents, and the findings raised against it.

No findings affect this requirement

Nothing was flagged against this requirement in the pinned run.

Impact

Blast radius — authored trace links only (automatically derived links come from the audit index and aren't shown here).

If you change this

Requirements
5
Files
1
Tests
3
At-risk contracts
0

Files to re-check (1)

  • Menu.qmlshell/plugins/menu/Menu.qml

Tests to re-run (3)

  • menu-acceptance-test.shtest/shell.d/menu-acceptance-test.sh
  • menu-compositor-test.shtest/shell.d/menu-compositor-test.sh
  • menu-pointer-lifecycle-test.shtest/shell.d/menu-pointer-lifecycle-test.sh

What this rests on

Discussions

Discuss this with the proof team. Nothing changes in your audit automatically — you open a request and a staff member records any outcome inside the thread.

Sign in to discuss this with the proof team.Sign in