SIGN IN SIGN UP

test(runner): close the two uncovered error branches

Both gaps were failure paths this PR added, and both are the kind that
only run when something has already gone wrong — exactly where an
untested branch hurts most.

`failure_detail` reached DETAIL_UNAVAILABLE only when the snapshot itself
cannot allocate, so a FailingAllocator is the only way in; the test also
pins that a failed capture DEGRADES the line (name still leads) rather
than replacing it. The compose guard against an over-long error name is a
memory-safety boundary on a fixed buffer, so it is proven reachable with
a deliberately long name instead of assumed unreachable.

`child_supervisor_read` reached its malformed-activity branch only from a
frame that will not parse. Driven through the public `readResult` rather
than the private function, over a real pipe, asserting both halves of the
contract: a counting sink proves the frame was DROPPED, and the result
behind it still arrives, proving one bad frame cannot take the read loop
down with it.

kcov after: failure_detail 44/44, child_supervisor_read 61/61.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
K
Kishore Kumar committed
8767a902f151b206a5ab83df6194ff703e7148f1
Parent: b03ca6c