77a29ed3c6
Presence: subscribe on MatrixClient (mx) instead of individual User objects. User EventEmitters have a 10-listener default; the same user appears in many mounted components simultaneously (member list, avatars, presence rings) and was accumulating 11+ listeners per event, causing MaxListenersExceededWarning on User.presence, User.currentlyActive, and User.lastPresenceTs. Fonts: download JetBrains Mono and Fira Code latin subsets to public/fonts/ and replace Google Fonts CDN links (two external origins) with a local CSS file. Windows WebView2 tracking prevention was blocking googleapis.com and gstatic.com, logging 18+ "blocked" warnings per session. VT323 remains on Google Fonts as it's decorative and not a default option. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>