Match declared measurements to recorded data
A run could pass even when some declared checks never ran. A measurement, Y axis or aggregation declared in procedure.yaml but never recorded by the phase disappeared from the run, failed with no clear reason, or was stored as 0.
- Fixed measurement outcomes. A multi-dimensional measurement now shows PASS or FAIL from its axis and aggregation limits instead of always UNSET. A measurement with no limits stays UNSET.
- Fixed declared measurements, axes and aggregations that a phase never records. They are now kept in the run, empty and in YAML order, with a clear message. If they have limits, they FAIL and the phase fails.
- Fixed axis descriptions from procedure.yaml, which were not uploaded with the run.
- Fixed series with all values at zero, which were dropped on upload. Multi-dimensional measurements with no data are now stored as empty measurements.
- Fixed limit edits in Studio, which could change booleans and numbers into text.
- Updated the API description of measurement outcomes and released new SDK versions.
