- Expand From/Step/To scans count-based so descending (negative-step)
scans work, reject zero/unreachable ranges, and cap points at 5000
- Give parse_formula an unbalanced-bracket guard instead of an infinite
loop and use direct recursion
- Return {ok:false,error} from CreateInpFile and validate projectile,
layer composition, density, and thickness instead of the erroneous
ErrMsg/$ErrMsg path
- Freeze the RNG backend after prep_cfg refreshes All and pass it through
writeAsciiFileAsync so scans never mix generators mid-flight
- Wrap startSequence with a run-in-progress guard, disable the Run button,
and snapshot runWorkPath for all output writes
- Unify web/Electron readAsciiFileAsync to throw instead of returning 0
- Make checkDir synchronous (mkdirSync) and honor its return value
- Fix setValues/template substitution parsing and write web input files
byte-identical to Electron
- Track deferred seed-validation and input-cap work in ToDo.txt