Our offline UR5e inspection screen accepts everything because the fake returns true for every call. I want response tests the maintainer can trust, including failed and incomplete replies, before the real station is available.
Replace the blanket fake with explicit calls matching your SDK version and saved response cases from that contract. Does the current test ever show a failed request after a valid coupon result?
Keep the legitimate negative result distinct from request failure. I've seen both labelled failed, which left the operator unable to tell whether the coupon was rejected or never read. You can test that distinction without the cell.
Parser now distinguishes a valid negative inspection result from no valid response. Missing fields, timeout and unexpected shapes show unavailable. Startup has no retained result; after a failed read, any old result is separately labelled with its age.
Yes, export copied the stale pass. It now uses the same validated result state as the screen. Wrong-coupon reply remains unmatched and cannot populate the selected coupon.
Try recovery to a matching valid reply after those failures. The screen should not stay unavailable forever just because the new tests taught it some caution.
Recovery passes, including after reopening. Maintainer compared screen and export across the saved cases; both agree on result, identity and age. We removed the always-true fake from this suite. Thanks, Noah, the two meanings of failed were genuinely confusing.