diff options
| author | Dax Raad <[email protected]> | 2025-12-06 17:07:01 -0500 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-12-06 18:18:45 -0500 |
| commit | 1b05d5dd8eb38bbd9cc0ca47483a15059e5d1110 (patch) | |
| tree | 8e6dd58c0d2f527e7c55c67f21a42353bc52e9e6 | |
| parent | 6923cc4a6a355d501c77b0b84eba497520476fd4 (diff) | |
| download | opencode-1b05d5dd8eb38bbd9cc0ca47483a15059e5d1110.tar.gz opencode-1b05d5dd8eb38bbd9cc0ca47483a15059e5d1110.zip | |
tui: prevent deprecated models from appearing in model picker
5 files changed, 12 insertions, 6 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx index 4aaac6123..95e2dbcde 100644 --- a/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx @@ -108,6 +108,7 @@ export function DialogModel() { pipe( provider.models, entries(), + filter(([_, info]) => info.status !== "deprecated"), map(([model, info]) => { const value = { providerID: provider.id, diff --git a/packages/opencode/src/cli/cmd/tui/component/logo.tsx b/packages/opencode/src/cli/cmd/tui/component/logo.tsx index 59db5fe7d..4f5121596 100644 --- a/packages/opencode/src/cli/cmd/tui/component/logo.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/logo.tsx @@ -21,9 +21,6 @@ export function Logo() { </box> )} </For> - <box flexDirection="row" justifyContent="flex-end"> - <text fg={theme.textMuted}>{Installation.VERSION}</text> - </box> </box> ) } diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index 84d003019..98370b061 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -44,6 +44,8 @@ export type PromptRef = { focus(): void } +const PLACEHOLDERS = ["Fix a TODO in the codebase", "What is the tech stack of this project?", "Fix broken tests"] + export function Prompt(props: PromptProps) { let input: TextareaRenderable let anchor: BoxRenderable @@ -278,7 +280,9 @@ export function Prompt(props: PromptProps) { mode: "normal" | "shell" extmarkToPartIndex: Map<number, number> interrupt: number + placeholder: number }>({ + placeholder: Math.floor(Math.random() * PLACEHOLDERS.length), prompt: { input: "", parts: [], @@ -666,7 +670,7 @@ export function Prompt(props: PromptProps) { flexGrow={1} > <textarea - placeholder={props.sessionID ? undefined : "Build anything..."} + placeholder={props.sessionID ? undefined : `Ask anything... "${PLACEHOLDERS[store.placeholder]}"`} textColor={theme.text} focusedTextColor={theme.text} minHeight={1} diff --git a/packages/opencode/src/cli/cmd/tui/routes/home.tsx b/packages/opencode/src/cli/cmd/tui/routes/home.tsx index df99eac88..cd308b44c 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/home.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/home.tsx @@ -9,6 +9,7 @@ import { useArgs } from "../context/args" import { useDirectory } from "../context/directory" import { useRoute, useRouteData } from "@tui/context/route" import { usePromptRef } from "../context/prompt" +import { Installation } from "@/installation" // TODO: what is the best way to do this? let once = false @@ -89,6 +90,10 @@ export function Home() { <text fg={theme.textMuted}>/status</text> </Show> </box> + <box flexGrow={1} /> + <box flexShrink={0}> + <text fg={theme.textMuted}>{Installation.VERSION}</text> + </box> </box> </> ) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 0ee95de49..14adccf1c 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -693,8 +693,7 @@ export namespace Provider { model.api.id = model.api.id ?? model.id ?? modelID if (modelID === "gpt-5-chat-latest" || (providerID === "openrouter" && modelID === "openai/gpt-5-chat")) delete provider.models[modelID] - if ((model.status === "alpha" && !Flag.OPENCODE_ENABLE_EXPERIMENTAL_MODELS) || model.status === "deprecated") - delete provider.models[modelID] + if (model.status === "alpha" && !Flag.OPENCODE_ENABLE_EXPERIMENTAL_MODELS) delete provider.models[modelID] if ( (configProvider?.blacklist && configProvider.blacklist.includes(modelID)) || (configProvider?.whitelist && !configProvider.whitelist.includes(modelID)) |
