@@ -1282,12 +1282,8 @@ function relayoutOverlayHost(shell: AppShell, itemCount: number): void {
12821282 const perItem = overlayRowsPerItem ( shell . overlayKind ) ;
12831283 const hostRows = overlayHostRows ( shell , shell . overlayBodyLines . length , itemCount * perItem ) ;
12841284 const minHostRows = overlayMinHostRows ( shell , shell . overlayBodyLines . length , itemCount > 0 ) ;
1285- // Preserve the mode the open chose (operator uses full_shell; others inset).
1286- // Hardcoding inset here would collapse a full_shell ask on every list refresh.
1287- const bag = internals . get ( shell ) ;
1288- const mode : OverlayMode = bag ?. overlayMode === "full_shell" ? "full_shell" : "inset" ;
12891285 relayout ( shell , {
1290- overlayMode : mode ,
1286+ overlayMode : "inset" ,
12911287 overlayBodyRows : hostRows ,
12921288 overlayMinBodyRows : minHostRows ,
12931289 } ) ;
@@ -1941,8 +1937,6 @@ interface PriorOverlaySnapshot {
19411937 readonly onCancel : ( ( ) => void ) | null ;
19421938 readonly addProviderHint : boolean ;
19431939 readonly setDefaultHint : boolean ;
1944- /** Geometry mode the primary used before the palette stacked over it. */
1945- readonly overlayMode : OverlayMode ;
19461940}
19471941
19481942interface ShellInternals {
@@ -3435,16 +3429,6 @@ function decisionContextBudget(
34353429) : number {
34363430 const fixedChrome =
34373431 OVERLAY_HOST_BORDER_ROWS + overlayTitleRows ( kind ) + DECISION_HEADER_AND_TRAILER_ROWS ;
3438- // full_shell owns residual after chrome — drop the inset fraction cap so a
3439- // longer question can use the extra rows instead of staying clipped at eight.
3440- const bag = internals . get ( shell ) ;
3441- if ( bag ?. overlayMode === "full_shell" ) {
3442- const maxOverlayRows = Math . max ( 0 , terminalHeight - PROMPT_BASE_ROWS ) ;
3443- const baseline =
3444- maxOverlayRows - DECISION_CHOICE_ROWS - fixedChrome - DECISION_CONTEXT_BLANK_ROWS ;
3445- const fullCap = Math . max ( DECISION_CONTEXT_ROWS , Math . floor ( terminalHeight / 2 ) ) ;
3446- return Math . max ( 0 , Math . min ( fullCap , baseline ) ) ;
3447- }
34483432 // The resolver never lets the overlay host past the fraction cap even when
34493433 // the transcript floor and every other zone have already given up their
34503434 // rows, so that cap — not just the prompt floor — bounds how much context
@@ -3570,12 +3554,6 @@ export interface OpenListOverlayOpts {
35703554 * server needs authorization.
35713555 */
35723556 readonly echoChoice ?: boolean ;
3573- /**
3574- * Geometry mode for this open. Defaults to inset. Operator asks use
3575- * full_shell so long questions and option lists stay readable; permission
3576- * gates stay inset unless a caller opts in.
3577- */
3578- readonly overlayMode ?: "inset" | "full_shell" ;
35793557 /**
35803558 * Claim printable keys for a `>` filter row so the list narrows as you type.
35813559 * Opt-in per open (model picker, palette). Overlays without it keep j/k
@@ -3630,7 +3608,6 @@ export function openListOverlay(shell: AppShell, opts?: OpenListOverlayOpts): vo
36303608 onCancel : bag . overlayOnCancel ,
36313609 addProviderHint : bag . overlayAddProviderHint ,
36323610 setDefaultHint : bag . overlaySetDefaultHint ,
3633- overlayMode : bag . overlayMode === "full_shell" ? "full_shell" : "inset" ,
36343611 } ;
36353612 }
36363613 // Leave prior overlay focus frame; palette will stack above it.
@@ -3650,9 +3627,6 @@ export function openListOverlay(shell: AppShell, opts?: OpenListOverlayOpts): vo
36503627
36513628 const bag = internals . get ( shell ) ;
36523629 if ( bag ) {
3653- // Mode must land before applyOverlayBodyText so decisionContextBudget can
3654- // size the body against full_shell vs inset. Palette is always inset.
3655- bag . overlayMode = ! isPalette && opts ?. overlayMode === "full_shell" ? "full_shell" : "inset" ;
36563630 // Palette open does not own primary accept; leave prior snapshot's callback.
36573631 if ( ! isPalette ) {
36583632 bag . overlayItemIds = opts ?. itemIds ? [ ...opts . itemIds ] : [ ] ;
@@ -4131,7 +4105,6 @@ export function closeInsetOverlay(shell: AppShell): void {
41314105 bag . overlayOnCancel = prior . onCancel ;
41324106 bag . overlayAddProviderHint = prior . addProviderHint ;
41334107 bag . overlaySetDefaultHint = prior . setDefaultHint ;
4134- bag . overlayMode = prior . overlayMode === "full_shell" ? "full_shell" : "inset" ;
41354108 // If focus was not stacked (edge case), re-open overlay frame.
41364109 if ( focusOwner ( shell . focus ) !== "overlay" ) {
41374110 shell . focus = openOverlay ( shell . focus , OVERLAY_FRAME_ID , {
@@ -4143,7 +4116,7 @@ export function closeInsetOverlay(shell: AppShell): void {
41434116 const hostRows = overlayHostRows ( shell , prior . bodyLines . length , listH ) ;
41444117 const minHostRows = overlayMinHostRows ( shell , prior . bodyLines . length , prior . list . count > 0 ) ;
41454118 relayout ( shell , {
4146- overlayMode : bag . overlayMode ,
4119+ overlayMode : "inset" ,
41474120 overlayBodyRows : hostRows ,
41484121 overlayMinBodyRows : minHostRows ,
41494122 } ) ;
@@ -4252,10 +4225,8 @@ export function setOverlayBody(shell: AppShell, text: string, maxLines = 8): voi
42524225 shell . overlayBodyLines . length ,
42534226 shell . overlayItems . length > 0 ,
42544227 ) ;
4255- const bag = internals . get ( shell ) ;
4256- const mode : OverlayMode = bag ?. overlayMode === "full_shell" ? "full_shell" : "inset" ;
42574228 relayout ( shell , {
4258- overlayMode : mode ,
4229+ overlayMode : "inset" ,
42594230 overlayBodyRows : hostRows ,
42604231 overlayMinBodyRows : minHostRows ,
42614232 } ) ;
0 commit comments