refactor(web): ChatView's persistent terminal drawers live in their own component

The drawers reconcile against every thread's refs, drafts and terminal state.
Reading those in a leaf keeps a change on another thread from re-rendering
the whole chat view.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ff41fc5c94Julius Marminge committed on 10/21/2026, 7:46:47 AMparentf48841f

Checks

All checks passed
2 files changedLine totals unavailable