Skip to content

Commit 5f274ee

Browse files
committed
feat: change code as comment
1 parent a26ac60 commit 5f274ee

3 files changed

Lines changed: 48 additions & 3 deletions

File tree

‎ai_agents/agents/ten_packages/extension/fish_audio_tts_python/fish_audio_tts.py‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,11 +204,15 @@ async def _send(self, message: dict[str, object]) -> None:
204204
payload = ormsgpack.packb(message)
205205
# Log every outbound protocol event so the exact stream sent to the
206206
# vendor (start/text/flush/stop) can be reconstructed from the log.
207+
# Only event names, sizes and counts are recorded: the utterance
208+
# text stays out of vendor diagnostics and is logged under the
209+
# transcript category instead.
207210
# Logged before the TTFB marker so measuring stays accurate.
208211
self.ten_env.log_info(
209212
"vendor_send: "
210213
f"event={message.get('event')}, bytes={len(payload)}, "
211-
f"payload={message}",
214+
f"keys={sorted(message.keys())}, "
215+
f"text_chars={len(message.get('text') or '')}",
212216
category=LOG_CATEGORY_VENDOR,
213217
)
214218
if message.get("event") == "text" and self.on_text_send is not None:
@@ -328,6 +332,9 @@ async def _reconnect_loop(self) -> None:
328332
await self._reset_connection(notify=False)
329333
await self._ensure_connection()
330334
await self._start_session(request_id)
335+
# _start_session() clears the finalization flag, so restore it:
336+
# a further drop on this connection must still replay the stop.
337+
self._session_stop_requested = stop_requested
331338
for index, replay_text in enumerate(texts):
332339
await self._send_text(
333340
replay_text,

‎ai_agents/agents/ten_packages/extension/fish_audio_tts_python/tests/test_flush_mode.py‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import ormsgpack
1212
import pytest
13+
from ten_ai_base.const import LOG_CATEGORY_VENDOR
1314

1415
from fish_audio_tts_python.config import FishAudioTTSConfig
1516
from fish_audio_tts_python.fish_audio_tts import FishAudioTTSClient
@@ -238,6 +239,36 @@ def test_flush_mode_is_not_forwarded_to_vendor_request() -> None:
238239
assert "flush_mode" not in request
239240

240241

242+
def test_vendor_send_logs_omit_user_text() -> None:
243+
"""Vendor diagnostics must not persist the utterance text."""
244+
245+
async def run() -> list[str]:
246+
websocket = RecordingWebSocket()
247+
ten_env = MagicMock()
248+
with patch(
249+
"fish_audio_tts_python.fish_audio_tts.connect",
250+
return_value=FakeConnect(websocket),
251+
):
252+
client = FishAudioTTSClient(_config(flush_mode="off"), ten_env)
253+
async for _event in client.get(
254+
"hello secret phrase",
255+
request_id="req",
256+
text_input_end=True,
257+
):
258+
pass
259+
await client.clean()
260+
return [
261+
call.args[0]
262+
for call in ten_env.log_info.call_args_list
263+
if call.kwargs.get("category") == LOG_CATEGORY_VENDOR
264+
]
265+
266+
messages = asyncio.run(run())
267+
assert messages
268+
for message in messages:
269+
assert "secret" not in message
270+
271+
241272
# ================ on_text_send contract ================
242273
def test_client_invokes_on_text_send_before_each_text_payload() -> None:
243274
"""The extension's TTFB anchor depends on this client contract.

‎ai_agents/agents/ten_packages/extension/fish_audio_tts_python/tests/test_observability.py‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,15 @@ async def run_test() -> None:
119119
assert len(span_id) == 16
120120
assert flags == "01"
121121

122-
ten_env.log_info.assert_called_once()
123-
log_message = ten_env.log_info.call_args.args[0]
122+
# The handshake and every outbound event are logged too, so pick the
123+
# response-header entry instead of relying on call order.
124+
header_logs = [
125+
call.args[0]
126+
for call in ten_env.log_info.call_args_list
127+
if "WebSocket response headers" in call.args[0]
128+
]
129+
assert len(header_logs) == 1
130+
log_message = header_logs[0]
124131
assert "us-east-1" in log_message
125132
assert trace_id in log_message
126133
assert "x-request-id" in log_message

0 commit comments

Comments
 (0)