From ccb5cb34a50a3278e905e1bd964101d011904e8e Mon Sep 17 00:00:00 2001 From: matt-strawbridge Date: Tue, 21 Jul 2026 20:00:55 -0700 Subject: [PATCH] fix(gateway): suppress pre-API compression chatter --- gateway/run.py | 1 + tests/gateway/test_telegram_noise_filter.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/gateway/run.py b/gateway/run.py index 7653ffb1e9b8..5699a63c2d73 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -82,6 +82,7 @@ _TELEGRAM_NOISY_STATUS_RE = re.compile( r"|compacting\s+context\s+[—-]\s+summarizing\s+earlier\s+conversation" r"|resumed\s+after\s+\d+s\s+idle\s+[—-]\s+compacting" r"|preflight\s+compression" + r"|pre[- ]api\s+compression" r"|session\s+compressed\s+\d+\s+times" r"|rate\s+limited\.\s+waiting\s+\d" r"|retrying\s+in\s+\d" diff --git a/tests/gateway/test_telegram_noise_filter.py b/tests/gateway/test_telegram_noise_filter.py index 6d35e1e2fb69..817938c264c6 100644 --- a/tests/gateway/test_telegram_noise_filter.py +++ b/tests/gateway/test_telegram_noise_filter.py @@ -30,6 +30,10 @@ CHAT_PLATFORMS = [ NOISY_STATUS_MESSAGES = [ "🗜️ Preflight compression check before sending...", + ( + "📦 Pre-API compression: ~123,456 tokens near the context/output limit. " + "Compacting before the next model call." + ), "🗜️ Compacting context — summarizing earlier conversation so I can continue...", "💤 Resumed after 3600s idle — compacting ~120,000 tokens before continuing.", "⚠️ Session compressed 12 times — accuracy may degrade. Consider /new to start fresh.", @@ -69,6 +73,12 @@ def test_programmatic_surfaces_keep_raw_status(): ) +@pytest.mark.parametrize("message", ["still on it", "⏳ Working — 3 min"]) +def test_telegram_status_keeps_legitimate_heartbeat_messages(message): + """The compression filter must not swallow user-facing work heartbeats.""" + assert _prepare_gateway_status_message(Platform.TELEGRAM, "lifecycle", message) == message + + @pytest.mark.parametrize("platform", CHAT_PLATFORMS) @pytest.mark.parametrize("message", NOISY_STATUS_MESSAGES) def test_all_chat_gateways_suppress_noise(platform, message):