@@ -329,8 +329,27 @@ export const WaitingRoomScreen: React.FC<WaitingRoomScreenProps> = ({
329329 // height we show the compact wordmark so more models fit without scrolling.
330330 // Section headers always show — the picker scrolls within whatever rows
331331 // remain (see selectorMaxHeight below), so there's no need to hide them.
332- const logoMode : 'full' | 'text' | 'none' =
333- terminalHeight >= 40 ? 'full' : terminalHeight >= 20 ? 'text' : 'none'
332+ //
333+ // Exception: when the picker is collapsed it shrinks to ~5 rows, freeing the
334+ // ~6 rows the big logo needs. So on a mid-height window with a collapsed
335+ // picker we promote the wordmark back to the full ASCII logo — it fills what
336+ // would otherwise be dead space above the card. Expanding the list reclaims
337+ // those rows and drops back to the wordmark. 26 is the smallest window where
338+ // the logo block, heading, collapsed picker, streak, and ad all coexist
339+ // without the picker needing to scroll.
340+ //
341+ // The picker (rendered below) owns this and reports it via onExpandedChange;
342+ // we default to collapsed so the first paint reserves logo space correctly.
343+ const [ selectorExpanded , setSelectorExpanded ] = useState ( false )
344+ const COLLAPSED_LOGO_MIN_HEIGHT = 26
345+ const fullLogoFits =
346+ terminalHeight >= 40 ||
347+ ( ! selectorExpanded && terminalHeight >= COLLAPSED_LOGO_MIN_HEIGHT )
348+ const logoMode : 'full' | 'text' | 'none' = fullLogoFits
349+ ? 'full'
350+ : terminalHeight >= 20
351+ ? 'text'
352+ : 'none'
334353 const compact = terminalHeight < 22
335354 const showAds = terminalHeight >= 18
336355 const textMarginBottom = 1
@@ -615,7 +634,10 @@ export const WaitingRoomScreen: React.FC<WaitingRoomScreenProps> = ({
615634 { LANDING_HEADING }
616635 </ span >
617636 </ text >
618- < FreebuffModelSelector maxHeight = { selectorMaxHeight } />
637+ < FreebuffModelSelector
638+ maxHeight = { selectorMaxHeight }
639+ onExpandedChange = { setSelectorExpanded }
640+ />
619641 { showSessionCounter && (
620642 < text
621643 style = { {
@@ -666,7 +688,10 @@ export const WaitingRoomScreen: React.FC<WaitingRoomScreenProps> = ({
666688 >
667689 { queuedTitleText }
668690 </ text >
669- < FreebuffModelSelector maxHeight = { selectorMaxHeight } />
691+ < FreebuffModelSelector
692+ maxHeight = { selectorMaxHeight }
693+ onExpandedChange = { setSelectorExpanded }
694+ />
670695 { limitedModeNotice && (
671696 < text
672697 style = { { fg : theme . muted , wrapMode : 'word' , marginTop : 1 } }
0 commit comments