11/**
2- * Terminal geometry: layout application, relayout, prompt-row sync, landing split.
2+ * Terminal geometry: layout application, relayout, prompt-row sync, landing
3+ * split.
34 */
45import {
56 FLEET_FLOOR_MIN_LANES ,
@@ -32,16 +33,13 @@ export function terminalOf(
3233}
3334
3435/**
35- * The version row is real chrome, not a float: it holds a reserved row at
36- * the foot of the shell rather than painting into the optical bottom pad
37- * (`BOTTOM_MARGIN_ROWS`), blank breathing room, not a content slot.
38- *
39- * This costs the rest of the shell a row: the geometry resolver is handed
40- * `terminal.rows - 1`, so every height it derives — including
41- * `PROMPT_CAP_FRACTION * terminal.rows`, which runs before collapse and
42- * outside `COLLAPSE_ORDER` — is one row short of the real terminal. The
43- * badge is not in the collapse order and does not give the row back under
44- * prompt-growth pressure.
36+ * The version row reserves a real foot row instead of painting into the
37+ * optical bottom pad (`BOTTOM_MARGIN_ROWS`, blank breathing room, not a
38+ * content slot). So the resolver is handed `terminal.rows - 1`, and every
39+ * height it derives — including `PROMPT_CAP_FRACTION * terminal.rows`,
40+ * which runs before collapse and outside `COLLAPSE_ORDER` — is one row
41+ * short of the real terminal. The badge never gives that row back under
42+ * prompt-growth pressure (it is not in `COLLAPSE_ORDER`).
4543 */
4644export function terminalForGeometry ( terminal : {
4745 readonly columns : number ;
@@ -69,11 +67,9 @@ export function defaultVisibility(visibility?: ZoneVisibility): ZoneVisibility {
6967}
7068
7169/**
72- * How the landing divides its rows around the prompt box.
73- *
74- * A floated overlay is clipped to the rows above the box so it never covers
75- * the prompt. Losing a long body's tail to that clip is survivable; losing
76- * every choice is not — the surface could not be answered. So the box
70+ * A floated overlay clips to the rows above the prompt box, so it never
71+ * covers the prompt. Losing a long body's tail to the clip is survivable;
72+ * losing every choice is not — the surface could not be answered. The box
7773 * slides down just far enough to keep the overlay's full, fraction-capped
7874 * height on screen; the starters below pay for the move.
7975 */
@@ -96,20 +92,18 @@ export interface RelayoutOpts {
9692 readonly overlayMode ?: OverlayMode ;
9793 readonly overlayBodyRows ?: number ;
9894 /**
99- * Rows the open overlay cannot render without: border + title + at least
100- * one content row. Below this, the box paints past whatever height it was
101- * assigned instead of shrinking, so the resolver must never starve it here .
95+ * Rows an open overlay cannot render without: border + title + one content
96+ * row. Below this, the box paints past its assigned height instead of
97+ * shrinking, so the resolver must never starve it.
10298 */
10399 readonly overlayMinBodyRows ?: number ;
104100}
105101
106102/**
107- * Rows the transcript holds back once a fleet is running.
108- *
109- * With several lanes live the operator manages a fleet rather than reads a
110- * conversation, so the transcript gives up its idle floor to the board. It
111- * keeps enough to stay a live tail — the orchestrator reporting back and
112- * asking questions is still how the operator learns anything.
103+ * Rows the transcript gives up once a fleet is running: with several lanes
104+ * live the operator manages a fleet rather than reads a conversation. It
105+ * keeps only a live tail — the orchestrator reporting back and asking
106+ * questions is how the operator learns anything.
113107 */
114108export function fleetTranscriptFloor ( shell : AppShell ) : {
115109 transcriptFloor ?: number ;
0 commit comments