From c520a6fd45ce1ac8697ecae5fd8969593b8bbdf2 Mon Sep 17 00:00:00 2001 From: fujie Date: Sat, 21 Mar 2026 15:20:05 +0800 Subject: [PATCH] fix(compression): add string fallback for is_copilot_model matching in Outlet --- .../async-context-compression/async_context_compression.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/filters/async-context-compression/async_context_compression.py b/plugins/filters/async-context-compression/async_context_compression.py index 66c8fca..934e86d 100644 --- a/plugins/filters/async-context-compression/async_context_compression.py +++ b/plugins/filters/async-context-compression/async_context_compression.py @@ -2716,6 +2716,13 @@ class Filter: is_copilot = body.get("is_copilot_model", False) or body.get("metadata", {}).get("is_copilot_model", False) if is_copilot: return True + + # Fallback for filters or responses (e.g., Outlet) which may clear the metadata payload + model_id = body.get("model", "") + if isinstance(model_id, str): + c = model_id.lower() + if "github_copilot_sdk_pipe" in c or "github_copilot_official_sdk_pipe" in c: + return True return False async def inlet(