From ce2336c3d62819933167fbd639e69cab426b8192 Mon Sep 17 00:00:00 2001 From: CD Date: Sat, 7 Mar 2026 12:20:39 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=8A=B9=EC=9D=B8=20=EB=A9=94=EC=8B=9C?= =?UTF-8?q?=EC=A7=80=20=EC=A4=91=EB=B3=B5=20=EC=A0=84=EC=86=A1=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20-=20in-memory=20sent=20tracking?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bot.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bot.py b/bot.py index fa6109f..d8ee9de 100644 --- a/bot.py +++ b/bot.py @@ -126,6 +126,7 @@ class GravityBot(commands.Bot): self.session_status_messages: dict[str, int] = {} self.session_names: dict[str, str] = {} self._channel_create_lock = asyncio.Lock() # SINGLE global lock + self._sent_approval_ids: set[str] = set() # Track sent approvals self.bridge = BridgeProtocol() self.session_category: discord.CategoryChannel | None = None self.guild: discord.Guild | None = None @@ -347,8 +348,10 @@ class GravityBot(commands.Bot): try: requests = self.bridge.get_pending_requests() for req in requests: - if req.discord_message_id != 0: + if req.request_id in self._sent_approval_ids: continue # Already sent + if req.discord_message_id != 0: + continue channel = self.session_channels.get(req.conversation_id) if not channel: @@ -360,6 +363,7 @@ class GravityBot(commands.Bot): ) if channel: + self._sent_approval_ids.add(req.request_id) await self._send_approval_request(channel, req) except Exception as e: logger.error(f"Error scanning approvals: {e}")