5.70f assumed that passing wrong-type inputs to run app would be
intercepted by @accepts(body=) and return HTTP 422 with canonical
ErrorBody details[]. This premise is wrong:
- @accepts(body=) validates the API schema (inputs must be a dict),
not the workflow-level variable types (num must be a number)
- Wrong-type workflow inputs go through the SSE execution layer,
returning an error event with status:500, not a canonical 422
- The CLI receives this via decodeStreamError, not classifyResponse,
so rawResponse is never set and error.server is never populated
The behavior tested by 5.70f (CLI rendering details[] as indented
lines) remains valid as a contract requirement but has no triggerable
E2E path on the current server. Covered by unit tests for renderHuman.