# Does the EXTRAS submenu remember its cursor across leave -> re-enter? # MEASURED 2026-08-30. Answer: NO -- it RESETS to MISSION SELECT. # # WHY IT MATTERS: the main menu was measured to PERSIST # (focus-persists-across-title.txt). sylpheed-port's contract-check asserted that # EXTRAS does NOT persist, and I flagged that as an assertion nothing had # measured -- an absence of evidence encoded as a positive claim. This measures # it. THEIR ASSERTION WAS RIGHT, and it is now measured rather than authored. # # HARNESS: tools/re-capture/extras_focus_persistence.py. Every press confirmed # from the guest's own [RE-INPUT] log; the plate-pulse title gate, not # skip_intro's stillness test. # # 🔴 EVERY CONTROL HERE EXISTS BECAUSE RUN 1 FAILED WITHOUT IT: # * ABSOLUTE row check after EVERY navigation press, not just the total. # Run 1 checked only relative motion and walked to OPTIONS believing it was # EXTRAS -- a constant offset passes a differential control exactly # (menu-focus-reader-offset.txt). # * SCREEN IDENTITY against a reference frame captured in the same run. # Run 1's detector could not separate the main menu from a submenu: both sit # inside glyph 250..420 (main menu 327, EXTRAS 324, OPTIONS 317). # * The ring is compared by RAW ROW inside the submenu, so no submenu geometry # is assumed. EXTRAS has three items and menu_focus.py's five-row table does # not apply to it at all. # # THE RUN: # MAIN MENU reference captured, focus = NEW GAME (ring y 225.5) # step 1: ring y 304.75 -> LOAD GAME (want LOAD GAME) # step 2: ring y 384.0 -> TUTORIAL (want TUTORIAL) # step 3: ring y 463.25 -> OPTIONS (want OPTIONS) # step 4: ring y 542.5 -> EXTRAS (want EXTRAS) # ✅ on EXTRAS, verified by absolute row after every press # [ 18.4s] E1 in the submenu: ring y = 347.5, glyph 324, 16.4% from main # [ 19.8s] DOWN delivered # [ 25.5s] E2 after 1 DOWN: ring y = 427.5 # ✅ CONTROL PASSED: the ring moved 347.5 -> 427.5 (80.0 px) # [ 26.3s] B delivered # [ 28.4s] back on the MAIN MENU (vs reference) # [ 29.4s] A delivered # [ 37.1s] E3 on re-entry: ring y = 347.5, 0.0% from E1 -- same screen: True # # => EXTRAS RESETS: re-entry is where it first opened # # ✅ THE SCREEN IS CONFIRMED BY EYE, not only by the detector: E1.png is the # EXTRAS screen -- MISSION SELECT / MOVIE THEATER / BACK, ring on the top item. # Run 1 was fooled about which screen it was on, so this was checked directly. # # ✅ THE STEP MATCHES THE MAIN MENU'S. The ring moved 80.0 px for one item, and # the main-menu calibration is 79.25 px per item -- an independent agreement # between two screens that were calibrated separately. # # SO: # * EXTRAS' initial focus is MISSION SELECT, and it is a real INITIAL focus, # because the screen resets -- unlike the main menu, where a reading not # taken on a fresh boot's first entry measures history. # * THE TWO SCREENS BEHAVE DIFFERENTLY: main menu persists, EXTRAS resets. # A menu-wide rule in either direction would be wrong. # # ⚠️ REACH: one run, one round trip, one direction, one submenu. NOT tested: # * OPTIONS, LOAD GAME or TUTORIAL -- three more submenus, untouched; # * whether EXTRAS resets after entering it a third time, or after a reboot; # * whether the reset is to MISSION SELECT specifically or simply to the top # item -- those coincide here and are not separated by this run.