Most rows rendered in the DOM at once, windowed around the selection.
Mounting one PromptSearchOption per filtered prompt costs real time at the
100-entry history cap and throws most of them away above the 5-row viewport, so
the panel renders a sliding window instead. Navigation re-windows via
update_selection, so any reachable row is mounted before it can be selected;
unmounted rows are simply never the selection target.