re: the black gap tracks the OUTGOING screen -- direction and button ruled out
Applied my own log-line rule to my own instrument first, which is the "rule written down is not a rule applied" failure I have on record three times. Every branch of fade_decompose.sh now announces its EFFECTIVE configuration -- derived from the variables in force, not from $WHERE, per sylpheed-port's sharpening -- and the run REFUSES if no branch announced itself. That is the guard that would have caught last iteration's silent fall-through at a glance. With it in place, took the measurement that failed last time: menu -> EXTRAS, the reverse of the pair measured at a 2-frame gap. Navigation verified both ways (extras margin 11.23, back on menu 11.60) and the config block confirmed the right branch. Result: outgoing quad rises across 5 frames matching build 5's declared 10-unit close, then ONE logged empty frame. Quoted as 1 with an upward uncertainty, since its two neighbours carry no frame header at all. Five transitions now order by the screen being LEFT: menu -> title (B) 0 outgoing menu menu -> EXTRAS (A) 1 outgoing menu EXTRAS -> menu (B) 2 outgoing EXTRAS title -> menu (A) x3 3,3,3 outgoing title Direction is ruled out: EXTRAS->menu (2) and menu->EXTRAS (1) are the same pair both ways and differ. Button is ruled out: (B) gives 0 and 2, (A) gives 1 and 3. Incoming screen is ruled out: an incoming menu takes 3 from the title and 2 from EXTRAS. NOT a rule, and recorded as such. Three outgoing screens with one value each means "each outgoing screen has its own gap" restates the data rather than predicting, and nothing declared predicts it -- outgoing closes are 5,5,5,4 frames against gaps 0/1,2,3, inverted if anything, on three points. What it changes for the port: a UNIFORM black_hold_units is now positively excluded rather than merely unsupported. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
@@ -67,6 +67,7 @@ done
|
||||
|
||||
WHERE="${WHERE:-menu}"
|
||||
if [ "$WHERE" = "menu" ]; then
|
||||
BRANCH="menu: (A) on the boot title -> arm on the MENU -> press (B)"
|
||||
# 2. one (A) on the boot title -> main menu; we arm THERE and press (B).
|
||||
python3 "$SD/pad.py" tap A 0.5
|
||||
for _ in 1 2 3 4 5 6; do
|
||||
@@ -76,6 +77,7 @@ if [ "$WHERE" = "menu" ]; then
|
||||
[ "$s" = "menu" ] || { echo "NO MENU (screen=$s)"; exit 2; }
|
||||
BTN=B
|
||||
elif [ "$WHERE" = "extras" ] || [ "$WHERE" = "menu2extras" ]; then
|
||||
BRANCH="extras-family: navigate to EXTRAS"
|
||||
python3 "$SD/pad.py" tap A 0.5
|
||||
for _ in 1 2 3 4 5 6; do
|
||||
sleep 4; s="$(screen)"; echo " after A: $s"
|
||||
@@ -116,10 +118,13 @@ elif [ "$WHERE" = "extras" ] || [ "$WHERE" = "menu2extras" ]; then
|
||||
shot "$OUT/back-on-menu.png"
|
||||
echo " back on menu: $(python3 "$SD/which_title_screen.py" "$OUT/back-on-menu.png")"
|
||||
BTN=A
|
||||
BRANCH="menu2extras: back on the MENU with focus restored -> press (A)"
|
||||
else
|
||||
BTN=B
|
||||
BRANCH="extras: arm on EXTRAS -> press (B)"
|
||||
fi
|
||||
else
|
||||
BRANCH="title: arm on the BOOT TITLE -> press (A)"
|
||||
# arm on the title itself and press (A): the incoming screen is then build 5,
|
||||
# whose declared fade-in is 12 units where build 4's is 16.
|
||||
BTN=A
|
||||
@@ -129,6 +134,19 @@ shot "$OUT/armed-on-$WHERE.png"
|
||||
# 3. arm the capture, dismiss the menu bar F10 opened, then press (B).
|
||||
# Everything between F10 and (B) is spent inside the capture window, so keep
|
||||
# it short: the window is FRAMES submitted frames, not seconds.
|
||||
# ── EFFECTIVE CONFIGURATION ──────────────────────────────────────────────────
|
||||
# Printed from the variables actually in force, NOT from $WHERE. A three-part
|
||||
# patch once left a branch condition unapplied, so WHERE=menu2extras silently ran
|
||||
# the `title` branch and produced a well-formed capture of a different transition.
|
||||
# The data looked fine; only the ABSENCE of this branch's log lines gave it away.
|
||||
# So: every run states what it is really about to do.
|
||||
echo "── EFFECTIVE CONFIG ──────────────────────────────"
|
||||
echo " requested WHERE = ${WHERE}"
|
||||
echo " branch taken = ${BRANCH:-<none — no branch set itself, this is a BUG>}"
|
||||
echo " button to press = ${BTN}"
|
||||
echo " arming on = $(screen)"
|
||||
echo "──────────────────────────────────────────────────"
|
||||
[ -n "${BRANCH:-}" ] || { echo "REFUSING: no branch announced itself"; exit 5; }
|
||||
xdotool windowactivate --sync "$win"; sleep 1
|
||||
xdotool key F10; sleep 0.6
|
||||
xdotool mousemove 900 400 click 1; sleep 0.6
|
||||
|
||||
Reference in New Issue
Block a user