feat: preserve governed OpenAI tool messages in 1.4.0

Add faithful single-choice chat results, tool stream activity, error-frame retries, and isolated protocol caching.

Reject empty cached completions with the same value predicate as transport, add regression coverage, and adopt Apache-2.0.
This commit is contained in:
2026-10-01 14:32:19 -04:00
parent 0e29deac1a
commit 9185eab8c9
42 changed files with 2227 additions and 78 deletions
+3
View File
@@ -90,6 +90,7 @@ class FakeTransport:
reasoning_effort,
first_token_event,
content_event,
response_mode,
):
self.calls.append((source.name, call_id))
self.efforts.append(reasoning_effort)
@@ -132,6 +133,7 @@ class _GenClockTransport:
reasoning_effort,
first_token_event,
content_event,
response_mode,
):
advance = self._advances.pop(0)
stall = self._stalls.pop(0) if self._stalls is not None else None
@@ -144,6 +146,7 @@ class _GenClockTransport:
reasoning_effort=reasoning_effort,
first_token_event=first_token_event,
content_event=content_event,
response_mode=response_mode,
)
if stall is not None:
result = dataclasses.replace(result, stall_ms=stall[0], stall_count=stall[1])