diff --git a/packages/cli/src/ui/components/Footer.tsx b/packages/cli/src/ui/components/Footer.tsx index bde50505a..9934f3582 100644 --- a/packages/cli/src/ui/components/Footer.tsx +++ b/packages/cli/src/ui/components/Footer.tsx @@ -52,8 +52,11 @@ export const Footer: React.FC = () => { const contextWindowSize = config.getContentGeneratorConfig()?.contextWindowSize; + // Hide "? for shortcuts" when a custom status line is active (it already + // occupies the top row, so the hint is redundant). Matches upstream behavior. + const suppressHint = !!statusLineText; + // Left bottom row: high-priority messages > approval mode > hint. - // Matches upstream layout where status line and hints coexist vertically. const leftBottomContent = uiState.ctrlCPressedOnce ? ( {t('Press Ctrl+C again to exit.')} ) : uiState.ctrlDPressedOnce ? ( @@ -67,7 +70,7 @@ export const Footer: React.FC = () => { ) : showAutoAcceptIndicator !== undefined && showAutoAcceptIndicator !== ApprovalMode.DEFAULT ? ( - ) : ( + ) : suppressHint ? null : ( {t('? for shortcuts')} ); @@ -117,11 +120,13 @@ export const Footer: React.FC = () => { > {/* Left column — status line on top, hints/mode on bottom */} - {statusLineText && ( - - {statusLineText} - - )} + {statusLineText && + !uiState.ctrlCPressedOnce && + !uiState.ctrlDPressedOnce && ( + + {statusLineText} + + )} {leftBottomContent}