fix(compression): pass thread_id metadata + add gateway test for warning delivery
Address review feedback on PR #16333: 1. The hygiene-path warning send was missing metadata=_hyg_meta. On Telegram topics / Slack threads / Discord threads the warning would land in the main channel instead of the originating thread. Now reuses the same _hyg_meta dict already computed for the hygiene compaction itself. 2. New gateway-level test test_session_hygiene_warns_user_when_summary_generation_fails verifies end-to-end: - When the compressor's _last_summary_fallback_used flag is True, the gateway invokes adapter.send() exactly once. - The warning message includes the dropped count and the underlying error string. - metadata={'thread_id': ...} is propagated so the warning lands in the originating topic/thread. Tests: 20 gateway hygiene + 54 context_compressor — all pass.
This commit is contained in:
@@ -4822,7 +4822,7 @@ class GatewayRunner:
|
||||
try:
|
||||
_adapter = self.adapters.get(source.platform)
|
||||
if _adapter and source.chat_id:
|
||||
await _adapter.send(source.chat_id, _warn_msg)
|
||||
await _adapter.send(source.chat_id, _warn_msg, metadata=_hyg_meta)
|
||||
except Exception as _werr:
|
||||
logger.warning(
|
||||
"Failed to deliver compression-failure warning to user: %s",
|
||||
|
||||
Reference in New Issue
Block a user