fn hook_output(attachment: &Value) -> Option<String>Expand description
What one persisted hook run printed, as a hook_response frame carries it.
content is the combined output, a string or the lines of one; the raw
streams are the fallback, stdout first, so a row whose combined field is
empty still draws what the hook wrote. Both branches read the same way: a
value that is only whitespace is nothing to draw.