fix(bridge): system audit + 5-file bug fix — PATS Deny trigger removal, auto_resolved chat dedup, UUID filenames, IP rate limit leak, bot.py deque
This commit is contained in:
10
bot.py
10
bot.py
@@ -11,6 +11,7 @@ import asyncio
|
||||
import json
|
||||
import logging
|
||||
import time
|
||||
from collections import deque
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
@@ -180,7 +181,7 @@ class GravityBot(commands.Bot):
|
||||
self.session_category: discord.CategoryChannel | None = None
|
||||
self.guild: discord.Guild | None = None
|
||||
self.auto_approve_projects: set[str] = set() # projects with auto-approve enabled
|
||||
self._processed_message_ids: set[int] = set() # dedup for Gateway event replay
|
||||
self._processed_message_ids: deque[int] = deque(maxlen=200) # dedup for Gateway event replay
|
||||
self._approval_messages: dict[str, int] = {} # FIX #4: request_id → discord message_id (for auto_resolved lookup)
|
||||
self.gateway = None # Set by main.py in gateway mode
|
||||
|
||||
@@ -800,12 +801,7 @@ class GravityBot(commands.Bot):
|
||||
# Dedup: Discord Gateway can deliver MESSAGE_CREATE twice on reconnection
|
||||
if message.id in self._processed_message_ids:
|
||||
return
|
||||
self._processed_message_ids.add(message.id)
|
||||
# Keep set bounded (last 200 messages)
|
||||
if len(self._processed_message_ids) > 200:
|
||||
excess = len(self._processed_message_ids) - 100
|
||||
for _ in range(excess):
|
||||
self._processed_message_ids.pop()
|
||||
self._processed_message_ids.append(message.id)
|
||||
|
||||
# Determine project from channel
|
||||
project = self.channel_to_project.get(message.channel.id)
|
||||
|
||||
Reference in New Issue
Block a user