mirror of
https://github.com/AsamK/signal-cli.git
synced 2026-07-28 00:49:24 +00:00
The cachedSessions HashMap grows with every unique (address, deviceId) pair seen during message processing and is never evicted. In a long-running daemon handling group messages, this causes linear memory growth (~47 MB/hour observed) as SessionRecord objects accumulate for every contact/device the daemon has ever communicated with. Replace the unbounded HashMap with an LRU-bounded LinkedHashMap (access order, max 1000 entries). Evicted sessions are reloaded from SQLite on next access, so correctness is preserved. Claude-Session: https://claude.ai/code/session_01HHzM2XLKQoX9iraEdhoh3h Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>