rtx-fsi: report Newton rescue counts in the coupling-failure panic
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
CI / Clippy Check (push) Canceled after 0s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Build (ubuntu-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Build CPU-Only (Explicit) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
Documentation / Build API Documentation (push) Canceled after 0s
Documentation / Build User Guide (push) Canceled after 0s

FSI3 run 3 died on a coupling stall 0.2 s after the rescue carried it
past run 2's Newton death, and the panic path printed nothing about
how many rescues had engaged. Observability only — the panic message
now carries rescue_counts.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Lnyrw33Lu6rUhW42E9KHwq
This commit is contained in:
Omar Sobh
2026-08-25 01:07:49 -05:00
co-authored by Claude Fable 5
parent d2c82af91b
commit 647f247601
@@ -494,7 +494,11 @@ pub fn run_march(case: BenchmarkCase, config: &MarchConfig) -> MarchResult {
total_subiterations += iterations;
max_subiterations = max_subiterations.max(iterations);
}
Err(e) => panic!("{} coupling failed at step {step}: {e:?}", case.name),
Err(e) => panic!(
"{} coupling failed at step {step}: {e:?} (Newton rescues so far: {:?})",
case.name,
flag.borrow().rescue_counts()
),
}
// `latest` holds the response to the accepted interface (the last
// pass) — commit it directly; the fluid, mask and flag are