- FightViewer: store canvas event handlers and remove them before replacing canvas elements, preventing detached DOM/closure leaks - FightViewer: clean up canvas listeners on unmount - tts.ts: clear _staticLoading dedup map after precache completes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>