diff --git a/ui-tui/src/app/useMainApp.ts b/ui-tui/src/app/useMainApp.ts index f2827dfdfa..e6e8cfe1f4 100644 --- a/ui-tui/src/app/useMainApp.ts +++ b/ui-tui/src/app/useMainApp.ts @@ -93,7 +93,10 @@ export function useMainApp(gw: GatewayClient) { } }, [stdout]) - const [historyItems, setHistoryItems] = useState([]) + // Seed with an info-less intro so the banner paints on the first frame, + // before gateway.ready / session.create resolve. Replaced by + // `introMsg(info)` as soon as session.info arrives. + const [historyItems, setHistoryItems] = useState(() => [{ kind: 'intro', role: 'system', text: '' }]) const [lastUserMsg, setLastUserMsg] = useState('') const [stickyPrompt, setStickyPrompt] = useState('') const [catalog, setCatalog] = useState(null) diff --git a/ui-tui/src/components/appLayout.tsx b/ui-tui/src/components/appLayout.tsx index d517fa7a74..48cf1c5b89 100644 --- a/ui-tui/src/components/appLayout.tsx +++ b/ui-tui/src/components/appLayout.tsx @@ -33,11 +33,11 @@ const TranscriptPane = memo(function TranscriptPane({ {visibleHistory.map(row => ( - {row.msg.kind === 'intro' && row.msg.info ? ( + {row.msg.kind === 'intro' ? ( - + {row.msg.info && } ) : row.msg.kind === 'panel' && row.msg.panelData ? (