From 0fb2c35da27adad5b0efdaeecc780371f9d785dc Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Mon, 31 Aug 2026 04:41:30 +0000 Subject: [PATCH] tools: add --reach-only, so a caller that just needs the menu does not run the round trip The ja DIFFICULTY capture failed because focus_persistence.py's round trip -- menu, B to title, A back -- did not return, leaving the game off-menu, and the sweep that followed timed out with nothing to work with. Arriving at the menu is the cheap part; the round trip is that probe's own experiment and is not every caller's. --reach-only stops once the menu is reached, and the session script passes it through REACH_ONLY. Committed before running. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v --- tools/re-capture/extras_focus_session.sh | 2 +- tools/re-capture/focus_persistence.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/re-capture/extras_focus_session.sh b/tools/re-capture/extras_focus_session.sh index 2c25fdb7..57213344 100755 --- a/tools/re-capture/extras_focus_session.sh +++ b/tools/re-capture/extras_focus_session.sh @@ -20,6 +20,6 @@ cd /sylph-home/re nohup run-canary --apu=sdl --log_mask=13 --log_level=2 \ --logged_profile_slot_0_xuid="$XUID" "$LOG" 2>&1 & # reach the title and the menu with the probe that already does it -python3 "$SD/focus_persistence.py" "$LOG" "$OUT/reach" 900 >"$OUT/reach.log" 2>&1 +python3 "$SD/focus_persistence.py" "$LOG" "$OUT/reach" 900 ${REACH_ONLY:+--reach-only} >"$OUT/reach.log" 2>&1 echo "-- reached the menu; now the EXTRAS question --" python3 "${SWEEP:-$SD/extras_focus_persistence.py}" "$LOG" "$OUT" 600 diff --git a/tools/re-capture/focus_persistence.py b/tools/re-capture/focus_persistence.py index 829ee46d..a9465dbe 100755 --- a/tools/re-capture/focus_persistence.py +++ b/tools/re-capture/focus_persistence.py @@ -150,6 +150,16 @@ while True: print(f"🔴 no main-menu ring row in the F1 frame (y={v[0]}) — stopping", flush=True); break print(f"[{el:7.1f}s] MENU (glyph {c}) F1 = {NAMES[F1]} ring " + " ".join(f"{x:5.0f}" for x in v), flush=True) + # --reach-only: stop here. A caller that just needs the game SITTING on + # the menu should not run the round trip -- on 2026-08-31 a ja capture + # of DIFFICULTY failed because this probe's B->title->A leg did not come + # back, leaving the game off-menu, and the sweep that followed had + # nothing to work with. Arriving is the cheap part; the round trip is + # this probe's own experiment and is not every caller's. + if "--reach-only" in sys.argv: + print("REACHED THE MENU (--reach-only, no round trip)", flush=True) + p.kill() + sys.exit(0) # 🔴 Run 1 pressed DOWN twice through pad.py with NO delivery # confirmation and the guest logged vk=5811 exactly ONCE. A and B # were confirmed; the d-pad was not, so the run was unreadable.