fix(tui): preserve usage telemetry fields

This commit is contained in:
chengyongru
2026-08-25 01:04:25 +08:00
committed by chengyongru
parent 9895c23cb5
commit 8bb3828487
7 changed files with 105 additions and 14 deletions
+8 -1
View File
@@ -102,7 +102,10 @@ def test_usage_projects_compact_turn_observability_shape() -> None:
output_tokens=3,
total_tokens=20,
cache_read_tokens=4,
) + LLMUsage.estimated(input_tokens=18, output_tokens=2)
).with_timing(generation_ms=250, ttft_ms=50) + LLMUsage.estimated(
input_tokens=18,
output_tokens=2,
).with_timing(generation_ms=100, ttft_ms=None)
assert usage.to_turn_dict() == {
"prompt_tokens": 30,
@@ -111,6 +114,10 @@ def test_usage_projects_compact_turn_observability_shape() -> None:
"context_tokens": 18,
"request_count": 2,
"estimated_tokens": 20,
"generation_ms": 350,
"measured_completion_tokens": 5,
"ttft_ms": 50,
"timed_requests": 1,
}
+19 -2
View File
@@ -59,7 +59,12 @@ def test_session_context_tolerates_untrusted_summary_metadata() -> None:
def test_session_context_sanitizes_usage_metadata() -> None:
usage = LLMUsage.reported(input_tokens=120, output_tokens=8, total_tokens=175)
usage = LLMUsage.reported(
input_tokens=120,
output_tokens=8,
total_tokens=175,
cache_read_tokens=48,
).with_timing(generation_ms=400, ttft_ms=75)
session = Session(
key="websocket:context",
metadata={"_last_usage": usage.to_dict()},
@@ -67,4 +72,16 @@ def test_session_context_sanitizes_usage_metadata() -> None:
payload = session_context_payload(session)
assert payload["last_usage"] == usage.to_dict()
assert payload["last_usage"] == {
"prompt_tokens": 120,
"completion_tokens": 8,
"total_tokens": 175,
"context_tokens": 120,
"cached_tokens": 48,
"request_count": 1,
"estimated_tokens": 0,
"generation_ms": 400,
"measured_completion_tokens": 8,
"ttft_ms": 75,
"timed_requests": 1,
}