CI for csaxs_bec / test (push) Successful in 2m15s
_get_val() (the wizard's input prompt) previously did no range validation at all -- only the Tomo Parameters GUI's spinboxes enforced limits, so the CLI silently accepted any value of the right type (e.g. manual_shift_y=500 despite the GUI's ±50 µm range). _get_val() now takes optional min_/max_ and re-prompts until the value is in range; wired up for every tomo_parameters() field that already has a GUI-defined range (tomo_countingtime, tomo_shellstep, fermat_asymmetry, fovx, fovy, stitch_x/y, manual_shift_y, frames_per_trigger, single_point_random_shift_max, total projections, golden_ratio_bunch_size, golden_max_number_of_projections, projections/sub-tomo). fermat_asymmetry reuses FlomniFermatScan's own MIN/MAX constants rather than duplicating them. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132KBoxsovfcMNRGJhS1Pbw