diff --git a/client/src/components/run/LaneConsolePane.tsx b/client/src/components/run/LaneConsolePane.tsx index 50989b05..7bab72e5 100644 --- a/client/src/components/run/LaneConsolePane.tsx +++ b/client/src/components/run/LaneConsolePane.tsx @@ -88,6 +88,7 @@ export function LaneConsolePane({ const currentLane = laneId !== null ? lanes.find((l) => l.id === laneId) : null; const laneTool = currentLane?.tool ?? "claude"; + const toolLabel = laneTool === "codex" ? "Codex" : "Claude"; useEffect(() => { onHasActiveRunChange?.(handle !== null); @@ -419,7 +420,9 @@ export function LaneConsolePane({
-

{t("title")}

+

+ {t("title", { tool: toolLabel })} +

{wsConnected ? ( @@ -432,7 +435,7 @@ export function LaneConsolePane({ )}
-

{t("subtitle")}

+

{t("subtitle", { tool: toolLabel })}

- {t("binary.missing")} + {t("binary.missing", { cli: laneTool, tool: toolLabel })} )} diff --git a/client/src/components/run/RunSetup.tsx b/client/src/components/run/RunSetup.tsx index d323a33d..bf0de199 100644 --- a/client/src/components/run/RunSetup.tsx +++ b/client/src/components/run/RunSetup.tsx @@ -42,7 +42,7 @@ import { RotateCcw, Lock, } from "lucide-react"; -import { api, RUN_MODEL_CHOICES, RUN_EFFORT_CHOICES } from "../../lib/api"; +import { api, RUN_MODEL_CHOICES, RUN_MODEL_CHOICES_CODEX, RUN_EFFORT_CHOICES } from "../../lib/api"; import type { CwdSuggestion, DashboardRunHistoryItem, @@ -233,7 +233,7 @@ export function RunSetup(props: RunSetupProps) { )} - + {props.tool === "codex" ? ( <> @@ -712,10 +712,19 @@ function SessionPicker({ // the "inherit from settings" choice, so use a non-empty marker. const MODEL_CUSTOM = "__custom__"; -function ModelPicker({ value, onChange }: { value: string; onChange: (s: string) => void }) { +function ModelPicker({ + value, + onChange, + tool, +}: { + value: string; + onChange: (s: string) => void; + tool: LaneTool; +}) { const { t } = useTranslation("run"); + const choices = tool === "codex" ? RUN_MODEL_CHOICES_CODEX : RUN_MODEL_CHOICES; // "Custom" is selected when the value isn't one of our curated IDs. - const knownIds = useMemo(() => RUN_MODEL_CHOICES.map((c) => c.id), []); + const knownIds = useMemo(() => choices.map((c) => c.id), [choices]); const isCustom = value !== "" && !knownIds.includes(value); const [showCustom, setShowCustom] = useState(isCustom); @@ -724,14 +733,14 @@ function ModelPicker({ value, onChange }: { value: string; onChange: (s: string) // a browser-native