fix: skip deeply nested upstream events in the stats observer

This commit is contained in:
Ashen
2026-10-02 01:59:46 +05:30
parent 23c1cef7d8
commit 15880bf41c
2 changed files with 11 additions and 2 deletions
@@ -160,8 +160,9 @@ def observe_terminal_sse_bytes(
continue
try:
parsed = json.loads(payload)
except ValueError:
# Bytes cut inside a character raise UnicodeDecodeError, not JSONDecodeError.
except (ValueError, RecursionError):
# Bytes cut inside a character raise UnicodeDecodeError, not
# JSONDecodeError; an upstream's deep nesting raises RecursionError.
continue
if isinstance(parsed, dict):
state.observe(parsed)
@@ -1388,6 +1388,14 @@ def test_stream_cut_inside_a_character_does_not_raise() -> None:
assert observe_terminal_sse_bytes(state, b"", tail, final=True) == b""
def test_deeply_nested_event_does_not_raise() -> None:
state = TerminalOutcomeState()
event = b"data: " + b"[" * 200_000 + b"]" * 200_000 + b"\n\n"
assert observe_terminal_sse_bytes(state, b"", event, final=True) == b""
assert state.usage is None
def test_routstr_upstream_cost_event_is_not_provider_usage() -> None:
state = TerminalOutcomeState()
stream = (