2.9.0 release target; frozen Windows candidate CLI and maintained-source evidence
Package applicability is under review; follow the stated version and platform limits.
Prepare a complete saved bench
Keep the following three files together. The JSON input resolves beside its definition, independently of the terminal working directory. The example checks three independent bias cases: 1 mA, 2 mA and 1 mA.
The numerical limits are illustrative requirements for this small current-source circuit. Choose your real circuit’s electrical acceptance criteria explicitly; there is no built-in physical-accuracy tolerance.
Save bench_values.cir
.PARAM bias=1m
Save bias_bench.cir
* Every saved requirement applies to all three cases
.INCLUDE "bench_values.cir"
I1 0 N DC bias
R1 N 0 1
.OPTION ANALYSIS=VOLTAGE INTEGRATION=BDF SEED=321
.STEP PARAM bias LIST 1m 2m 1m
.TRAN 1p 10p
.PRINT V(N)
.MEASURE TRAN bias_current FIND I(I1) AT=5p
.END
Save bench.json
{
"schema": "josim-testbench/1",
"name": "Three bias-current cases",
"input": "bias_bench.cir",
"requirements": [
{
"id": "bias-range",
"measurement": "bias_current",
"unit": "A",
"min": 0.00099,
"max": 0.00201
}
]
}
Use the Saved testbench window
- Save or reload the source and include files, then open Run > Saved testbench and choose Open definition for bench.json.
- Choose a new result directory whose parent already exists. Select Validate / preview and inspect the planned cases, measurements, assignments, effective settings and destinations.
- Correct invalid JSON or admission errors in place. Save definition after edits; then Run saved bench uses the reviewed saved definition and unchanged source bytes.
- Wait for completion in Tasks and Output. Use Open saved results to inspect results.json without rerunning, then review every case/requirement, status, units and artifact integrity. Hiding the window does not cancel an active job.

Run from a script or terminal
The parent directory must exist and run-001 must be new. Do not combine --testbench with positional input, -i, -o or parallel-worker options. This contract is serial buffered transient execution, including .STEP cases; remove .FILE routing and streaming.
Use the process exit code and the completed results.json together. JSON is published last as the completion marker; a partial directory without it is not a completed report. Invalid definitions or publication failures can return code 1 without a complete report.
josim-pro-cli --testbench bench.json --results run-001Interpret the verdict
Exit 0 / pass means every requirement passes in every case. The checked example reports bias_current values 0.001, 0.002 and 0.001 A, with seed 321 in all three cases.
Exit 2 / fail means a measured value violates a specification. Changing max to 0.00101 produces pass, fail, pass across the three cases; a specification failure does not stop the later case.
Exit 3 / failed_to_evaluate covers a missing measurement, unit mismatch or measurement-evaluation failure. The checked missing-name and mA-versus-A variants returned this verdict. Units must match exactly; changing a unit label does not convert the measured number.
Exit 1 / execution_failed covers input, solver, configuration or publication failure. Cancellation is documented as exit 130 / cancelled but was not exercised in this Windows check. Cancelled and not-run cases cannot count as passes.
results.csv contains per-case/per-requirement rows; results.json records the definition, input/include and artifact hashes, effective settings and case data. The independent check verified agreement between the saved CSV/JSON, the executed source/include hashes and committed artifacts.
Write requirements without implicit tolerances
Use finite JSON numbers in SI units, such as 0.001 rather than the string "1m". Each requirement ID must be unique and every requirement applies to every case.
Use inclusive min/max bounds, or target with nonnegative absolute_tolerance and/or relative_tolerance. The target rule is abs(measured − target) <= absolute_tolerance + relative_tolerance × abs(target). An omitted tolerance is zero. Do not combine target with bounds; unknown fields are rejected.
Recover and preserve earlier generations
- If the result directory already exists, choose a new generation name. The checked reuse attempt returned code 1 and preserved all previous generation bytes.
- For a failed evaluation, correct the measurement name or exact reported unit. For an invalid numeric limit, replace engineering-suffix strings with finite JSON SI numbers.
- Save the corrected definition and rerun to a new result directory. The checked recovery passed. Review provenance paths and design content before sharing a calculation record.
Sources and verification details
Recorded inputs/builds only. Complete walkthrough and final-package acceptance remain separate.
VAL-017 · JoSIM®-Pro 2.9 frozen Windows source candidate built 3 November 2026; not the final distributed package
Fixed-seed noise/spread repetition and CLI precedence; buffered/streamed/gzip data; six Cartesian sweep cases; saved testbench verdicts, provenance hashes, generation protection and recovery
Twenty-two checks cover these CLI inputs and runtime only. Native screenshots illustrate authoring/settings controls without a GUI calculation, preview or saved-bench run. Cross-platform repeatability, peak memory, cancellation, other analysis families and final-package acceptance remain unverified. The constant-circuit numerical bounds are example-specific, not universal solver tolerances.
josim-testbench-definition
JoSIM®-Pro 2.9 frozen Windows candidate, native controls, 3 November 2026
A native control illustration. The separately recorded CLI examples do not qualify this GUI route or the final distributed package.
- josim-pro:docs/manual_source/sections/usage.tex · Saved testbenches and CI verification
- josim-pro:docs/manual_source/sections/gui_simulation_results.tex · Sweeps, named groups and measurements
- validation:josim-jobs-windows-20261103 · VAL-017; exact complete inputs, checked CLI outcomes and limits
- capture:josim-jobs-ui-20261103T145751 · Production control illustrations only; no GUI solve, preview or bench run
- owner:technical-review-20261102 · 2.9 public target; final distributed-package checks required
- VAL-017 checks the supplied CLI recipe on the frozen Windows candidate. The source manuals still match their reviewed hashes.
- Native images illustrate actual controls; the settings/workbench were cancelled and the testbench view hidden. Complete GUI, technical and final-package acceptance remain pending.
