Fix MessageDeduplicator max_size enforcement

This commit is contained in:
simbam99
2026-04-26 09:11:06 +03:00
committed by Teknium
parent 34eb1aaa9a
commit cebf95854b
2 changed files with 22 additions and 0 deletions

View File

@@ -57,6 +57,15 @@ class MessageDeduplicator:
if len(self._seen) > self._max_size:
cutoff = now - self._ttl
self._seen = {k: v for k, v in self._seen.items() if v > cutoff}
if len(self._seen) > self._max_size:
# TTL pruning alone does not cap the cache when every entry is
# still fresh. Keep the newest entries so the helper's
# max_size bound is enforced under sustained traffic.
newest = sorted(
self._seen.items(),
key=lambda item: item[1],
)[-self._max_size:]
self._seen = dict(newest)
return False
def clear(self):