summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-12-06 17:07:01 -0500
committerDax Raad <[email protected]>2025-12-06 18:18:45 -0500
commit1b05d5dd8eb38bbd9cc0ca47483a15059e5d1110 (patch)
tree8e6dd58c0d2f527e7c55c67f21a42353bc52e9e6
parent6923cc4a6a355d501c77b0b84eba497520476fd4 (diff)
downloadopencode-1b05d5dd8eb38bbd9cc0ca47483a15059e5d1110.tar.gz
opencode-1b05d5dd8eb38bbd9cc0ca47483a15059e5d1110.zip
tui: prevent deprecated models from appearing in model picker
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx1
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/logo.tsx3
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx6
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/home.tsx5
-rw-r--r--packages/opencode/src/provider/provider.ts3
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))