Skip to content

test(#38): harden the proxy-repoint probe (spinners, input cue, Ctrl+C, renumber) - #146

Merged
aradanmn merged 1 commit into
mainfrom
test/38-harden-repoint-probe
Jul 25, 2026
Merged

test(#38): harden the proxy-repoint probe (spinners, input cue, Ctrl+C, renumber)#146
aradanmn merged 1 commit into
mainfrom
test/38-harden-repoint-probe

Conversation

@aradanmn

Copy link
Copy Markdown
Owner

Fixes what made the HW-2 run of probe-proxy-repoint.sh unusable and unable to answer H5 (does evsieve survive a repoint across a real node renumber — the #112 case).

1. Ctrl+C no longer contaminates the verdicts

The trap was cleanup EXIT INT TERM and cleanup didn't exit — so a Ctrl+C mid-prompt killed evsieve, then the flow resumed into the H6/H5 measurements and reported the just-killed evsieve as CHANGED/FAIL. Both bogus verdicts from the last run were entirely this bug. Now INT/TERM run cleanup and exit (cleanup made idempotent via a sentinel so the EXIT re-fire is a no-op).

2. Busy-vs-waiting feedback (the "looked hung" problem)

  • A TTY-gated stderr spinner with a live countdown on every wait (wait_for_ds4 + the disappearance poll) — a bounded wait no longer looks frozen.
  • A visible > input caret in prompt_operator so it's obvious when the probe is waiting for you vs working.

3. Honest H5 verdicts

4. The 3-DS4 renumber method (Scott)

The forced-renumber prompt now documents it: start the proxy on the highest-numbered pad, power off it and a lower pad, power this one back on so it grabs the lower freed eventN — the reliable way to make evsieve's cached node become a different device.

Verified

bash -n both probes; 0 new shellcheck warnings; tests/test_probe_proxy_repoint.sh (pure verdict-function suite) still 9/9. The interactive spinner/prompt behavior shows on the Deck.

Refs #38, #112.

🤖 Generated with Claude Code

…C, renumber)

Fixes what made the HW-2 run of probe-proxy-repoint.sh unusable and unable to
answer H5 (does evsieve survive a repoint across a real node renumber — the
#112 case).

1. Ctrl+C no longer contaminates the verdicts. The trap was `cleanup EXIT INT
   TERM` and cleanup did NOT exit — so a Ctrl+C mid-prompt killed evsieve, then
   the flow RESUMED into the H6/H5 measurements and reported the just-killed
   evsieve as CHANGED/FAIL. Now INT/TERM run cleanup AND exit (cleanup is
   idempotent via a sentinel so the EXIT re-fire is a no-op). The two bogus
   verdicts from the HW-2 run were entirely this bug.

2. Busy-vs-waiting feedback (Scott, script-progress-indicators): a TTY-gated
   stderr spinner with a live countdown on every wait (wait_for_ds4 + the
   disappearance poll) so a bounded wait no longer LOOKS hung, and a visible
   "> " input caret in prompt_operator so it is obvious when the probe is
   waiting for the operator vs working.

3. H5 reports INCONCLUSIVE, not FAIL, when the reconnect lands on the SAME
   eventN — the renumber wasn't forced, so the reassignment case isn't
   exercised; running the capture would only re-confirm the easy same-path case
   (H6) as a spurious pass. And when a REAL renumber DID happen and evsieve is
   gone, that FAIL is now trustworthy (= the #112 death, persist=reopen did not
   survive the reassignment) rather than a Ctrl+C artifact.

4. The forced-renumber prompt now documents Scott's 3-DS4 method: start the
   proxy on the highest-numbered pad, power off it AND a lower pad, power this
   one back on so it grabs the lower freed eventN — the reliable way to make
   evsieve's cached node become a different device.

Verified: bash -n both probes; 0 new shellcheck warnings; tests/
test_probe_proxy_repoint.sh (the pure verdict-function suite) still 9/9. The
interactive spinner/prompt behavior shows on the Deck.

Refs #38, #112.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UZuoMpX28CbtGJbigVTv5H
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant