diff --git a/components/settings/agent-section.tsx b/components/settings/agent-section.tsx index 73a3f4f..45ad2a2 100644 --- a/components/settings/agent-section.tsx +++ b/components/settings/agent-section.tsx @@ -30,6 +30,8 @@ */ import { useEffect, useRef, useState } from "react"; +import { createPortal } from "react-dom"; +import type React from "react"; import { BACKGROUND_MODEL_ROLES, type AgentSettings, type BackgroundModelRole, type ModelCatalogEntry } from "@/src/core"; import type { ThinkingLevel } from "@earendil-works/pi-agent-core"; import { prettyModel } from "@/components/usage-format"; @@ -106,6 +108,7 @@ function MenuTrigger({ testid, open, onClick, + widthClass, }: { value: string; /** What the trigger shows when there is no override ("Default"). */ @@ -114,6 +117,11 @@ function MenuTrigger({ testid: string; open: boolean; onClick: () => void; + /** Owner (2026-09-20): the thinking trigger is FIXED at the width the + * Default state needs (values shifting it mid-edit shifted the row); + * the model trigger takes the same width as a MINIMUM — its values + * genuinely vary in length. */ + widthClass: string; }) { return ( diff --git a/components/settings/settings-dialog.tsx b/components/settings/settings-dialog.tsx index c5fefa4..9a5c9b1 100644 --- a/components/settings/settings-dialog.tsx +++ b/components/settings/settings-dialog.tsx @@ -193,7 +193,7 @@ export function SettingsDialogBody({ onClose }: { onClose: () => void }) {