d6392dae17
- Lift an Agent's MTConnectError body under a non-2xx status (cppagent 2.x serves OUT_OF_RANGE as HTTP 400, NO_DEVICE as 404) into the refusal-marked InvalidDataException, reading at most 64 KiB. The 400 used to be a transport fault, so the OUT_OF_RANGE re-baseline never ran against a real 2.x Agent. - Run the instanceId restart test on every re-baseline snapshot: on 2.x a restart is first seen there (the old cursor gets a 400), and was adopted silently. - Report the stream Degraded after 3 consecutive re-baselines with no /sample chunk (it read Healthy for ever); LastSuccessfulRead keeps advancing. - Prohibit DTDs on the /probe and write-answer parses; bound the streams walk to 64 levels (unbounded recursion = uncatchable StackOverflowException). - Skip structural elements under <Components>/<Devices> instead of failing the probe. - Never serve a non-finite float as Good; serve integer-valued decimals on integral tags losslessly (a real fraction stays BadOutOfRange). - Merge sibling browse containers that resolve to one folder name. Unit 678 -> 714, integration 18 -> 20 (live fixture); every gap test failed first.