Why: a model tool finish could execute partial JSON or an unterminated SSE stream, while post-Usage errors could lose their charge.
Evidence: missing-DONE, malformed-JSON, identity, non-object and post-Usage RED→GREEN tests; GOWORK=off go vet ./... and go test -count=1 ./... passed.
Impact: invalid tool terminals fail without execution or automatic retry and retain returned Usage; valid text and multi-part tool streams keep working.
Refs: runtime/llm/sse.go; runtime/loop.go