check / check (push) Waiting to run
After a join request returned, joinChannel made tab number tabsRef.current.length active. When the user's own JOIN event had already added the tab, or the tab was already open, that index was one past the last tab. The view then fell back to the Server tab and typed lines were dropped. joinChannel now records the joined channel's name. An effect makes that channel's tab active once the tab list holds it, finding the tab by name. Model: opus-5-5