Proof Portal

Project overview

Omarchy

omarchy75 findings · 95 requirements

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.

PR #13968
Requirement · as recorded in PR #13968's evidenceSW-REQ-261001-BNZGAdded by this changeNot in the baseline yet

The JSONC stripper takes any text as input.

component menu · guarantee · assurance level C

This change adds this requirement — it isn't in the project's baseline yet, so it has no project requirement page. Shown exactly as the evidence package for PR #13968 records it (evaluated commit e491b524); it joins the project's requirements once the change is merged and the project is audited again.

What it says

The JSONC stripper takes any text as input. Outside string literals, each character that JS \s matches is whitespace. This includes ASCII whitespace with the vertical tab and the form feed, and a byte order mark U+FEFF at the start or anywhere else. It also includes the Unicode spaces U+00A0, U+1680, U+2000 to U+200A, U+2028, U+2029, U+202F, U+205F and U+3000. The stripper keeps each line feed and emits each other such character as one ASCII space. Inside string literals it copies every character unchanged.

Formal sentence (FRETish)when space_outside_string the menu_model shall always satisfy space_passed_as_ascii

Where it sits

Parent
SYS-REQ-260922-PPDW
Satisfies
SYS-REQ-260922-PPDW
Component
menu
Traces at the evaluated commit
1 implemented by · 1 satisfies · 2 verified by
Fields this change sets
status, priority, category, req_type, fretish, description, formalization_strategy, parent, component, rationale, variables, traces.satisfies, verification.assurance_level, verification.formalization_status

Evidence in this change

Changed as intended — Observed passing · 2 tests: 2 passed · 0 failed

Obligations

Kind of evidenceFromObservedTests
Boundaryinherited from SYS-REQ-260922-PPDWObserved passing1 · 1✓ 0✗ 0∅
Error handlinginherited from SYS-REQ-260922-PPDWObserved passing1 · 1✓ 0✗ 0∅
Malformed inputits own checklistObserved passing2 · 2✓ 0✗ 0∅
Totalityits own checklistObserved passing2 · 2✓ 0✗ 0∅

Tests that verify it 2

  • test/node/menumodel-replay.test.mjspassed
  • test/shell.d/menu-test.shpassed

Code it is traced to

Changed functions
  • shell/plugins/menu/MenuModel.js:stripJsonc
Implemented by
  • shell/plugins/menu/MenuModel.js:stripJsonc
Changed files (3)
  • shell/plugins/menu/MenuModel.js
  • test/node/menumodel-replay.test.mjs
  • test/shell.d/menu-test.sh

Behaviour changes attributed to it

123 observed output differences · 124 compatibility findings (124 unapproved) — review them on the change

  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended
  • a JS whitespace character JSON does not accept, outside strings, is read as a space (b2dae8db): the file parses instead of emptying · intended

What to check in review

  • Confirm the new requirement is needed, sits in the right part of the spec, and is labeled with the right kind of rule and concern.
  • Check that parent decomposition and planned implementation/test/doc evidence are intentional before merge.
  • Make sure lifecycle state is merge-ready and not left as unfinished authoring work.

Every fact on this page comes from the evidence package sha256:a97b50725d21…