a3dd21c9d7
* fix: break infinite Bad MAC + session recreation loop Remove aggressive session cleanup from the decryption hot path that caused cascading failures when multiple messages from the same contact arrived simultaneously. The Signal Protocol naturally recovers via retry+pkmsg flow. Changes: - Remove cleanupCorruptedSession() from per-message error handler (hot path) - Move session cleanup to retry-exhausted handler as safety net - Add per-JID retry request deduplication (5s window) - Add 10s cooldown on MAC error session recreation - Export cleanupCorruptedSession/getDecryptionJid for use in messages-recv Tested: corrupted session with fake keys → Bad MAC → retry receipt → pkmsg recovery → all 7 messages delivered, zero infinite loop. * fix: address PR review — lint, dedup scope, and cleanup targeting - Remove unused `autoCleanCorrupted` param from decryptMessageNode (lint fix) - Scope retry dedup by participant JID in group chats (not group JID) - Move dedup registration after early-return checks to avoid blocking subsequent messages when max retries reached - Use participant JID for session cleanup in groups (Signal sessions are per-participant, not per-group)