# Third attempt at the three submenus' focus persistence. ❔ STILL UNMEASURED. # 2026-08-31. VOID, and this time the cause was ME, not the instrument. # # The tool was reworked to fix both earlier failures -- decision on the region # that CHANGED when the cursor moved (no per-screen geometry), and a NARROW # back-on-the-menu test by ring row (the thing that kept reading correctly under # a crash dialog). The rework was controlled on the EXTRAS frames whose answer is # known, and passed. # # 🔴 WHAT WENT WRONG. While the run was in flight I edited the sweep script, and # deliberately broke its decision rule with `sed` to test whether the new # self-test could fail. The sweep reads the script when IT starts -- after the # reach probe finishes -- and it started during that window. It read the broken # rule. # # ✅ THE SELF-TEST CAUGHT IT AND REFUSED TO RUN: # ✅ known RESETS (real EXTRAS triple) -> RESETS (want RESETS) # 🔴 constructed PERSISTS -> RESETS (want PERSISTS) # ✅ constructed RESETS -> RESETS (want RESETS) # 🔴 SELF-TEST FAILED — the rule cannot produce both verdicts. # # That is the self-test's first save, on the day it was written, against a fault # I introduced. Without it the sweep would have reported "RESETS" for all three # screens -- a confident, uniform, entirely fabricated answer. # # ⚠️ THREE FURTHER SELF-INFLICTED FAULTS, recorded because they are process, not # analysis, and process is what failed here: # # 1. I ran a competing test that opened x11grab captures on the same display # DURING a measurement run -- the exact concurrency confound sylpheed-port # had warned cost them a 7-percentage-point swing. Even had the sweep # completed, its timings would carry that. # 2. I then cleared the strays with `pkill -f x11grab`, which can kill the # running sweep's own capture. METHOD.md already records `pkill -f` matching # the caller's shell; this is the same pattern biting a different way. # 3. My restore of the broken file sat as the LAST line of a command that timed # out, so it never ran, and the broken rule stayed on disk. Recovering with # `git checkout` then discarded the whole uncommitted rework. # # 📌 THE PROCESS FIX, applied: the tool is COMMITTED BEFORE IT IS RUN. An # uncommitted tool is one timed-out command away from being unrecoverable, and a # tool edited during its own run is not the tool that ran. # # ❔ The reach probe also timed out ("TIMEOUT in phase remenu"), so the menu was # never reached in this boot either. Whether that is ordinary boot variance or my # added load, I cannot separate -- which is itself the cost of point 1.