48f0e2f64c
Only the active terminal holds a WebGL rendering context now. When switching tabs the outgoing terminal disposes its WebGL addon (freeing the GPU context) and the incoming terminal creates a fresh one. This avoids exhausting the browser's limited WebGL context pool (~8-16) which caused expensive context loss/restoration lag when switching. Also skip ResizeObserver callbacks for hidden terminals (zero dimensions) to avoid unnecessary fit/resize work on inactive tabs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>