- FightViewer: track deferred speechSynthesis.cancel() timer, clear on unmount - BotProfilePage: change isOwner from ref to computed for reactive login state - sounds.ts: tighten speech queue depth cap from 3 to 2 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>