summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax <[email protected]>2026-04-26 21:18:26 -0400
committerGitHub <[email protected]>2026-04-27 01:18:26 +0000
commit5f8a72bfc4f83307835d13e3497039dd9f3d3aab (patch)
treefecb87c71eff33db0b60462790fb1a51ef03dbb4
parent418a1cf5f31f4f7dfa170873c8a462302473969d (diff)
downloadopencode-5f8a72bfc4f83307835d13e3497039dd9f3d3aab.tar.gz
opencode-5f8a72bfc4f83307835d13e3497039dd9f3d3aab.zip
fix(tui): hide provider checks before onboarding (#24551)
-rw-r--r--packages/opencode/src/cli/cmd/tui/app.tsx3
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx8
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx4
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/use-connected.tsx9
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx2
5 files changed, 16 insertions, 10 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx
index 015b0ed8f..69987b146 100644
--- a/packages/opencode/src/cli/cmd/tui/app.tsx
+++ b/packages/opencode/src/cli/cmd/tui/app.tsx
@@ -29,7 +29,8 @@ import { SDKProvider, useSDK } from "@tui/context/sdk"
import { StartupLoading } from "@tui/component/startup-loading"
import { SyncProvider, useSync } from "@tui/context/sync"
import { LocalProvider, useLocal } from "@tui/context/local"
-import { DialogModel, useConnected } from "@tui/component/dialog-model"
+import { DialogModel } from "@tui/component/dialog-model"
+import { useConnected } from "@tui/component/use-connected"
import { DialogMcp } from "@tui/component/dialog-mcp"
import { DialogStatus } from "@tui/component/dialog-status"
import { DialogThemeList } from "@tui/component/dialog-theme-list"
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 fb6849d72..06723f3c2 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx
@@ -8,13 +8,7 @@ import { createDialogProviderOptions, DialogProvider } from "./dialog-provider"
import { DialogVariant } from "./dialog-variant"
import { useKeybind } from "../context/keybind"
import * as fuzzysort from "fuzzysort"
-
-export function useConnected() {
- const sync = useSync()
- return createMemo(() =>
- sync.data.provider.some((x) => x.id !== "opencode" || Object.values(x.models).some((y) => y.cost?.input !== 0)),
- )
-}
+import { useConnected } from "./use-connected"
export function DialogModel(props: { providerID?: string }) {
const local = useLocal()
diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx
index 8e24ffb1b..ebc28847f 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-provider.tsx
@@ -14,6 +14,7 @@ import { useKeyboard } from "@opentui/solid"
import * as Clipboard from "@tui/util/clipboard"
import { useToast } from "../ui/toast"
import { isConsoleManagedProvider } from "@tui/util/provider-origin"
+import { useConnected } from "./use-connected"
const PROVIDER_PRIORITY: Record<string, number> = {
opencode: 0,
@@ -30,6 +31,7 @@ export function createDialogProviderOptions() {
const sdk = useSDK()
const toast = useToast()
const { theme } = useTheme()
+ const onboarded = useConnected()
const options = createMemo(() => {
return pipe(
sync.data.provider_next.all,
@@ -49,7 +51,7 @@ export function createDialogProviderOptions() {
}[provider.id],
footer: consoleManaged ? sync.data.console_state.activeOrgName : undefined,
category: provider.id in PROVIDER_PRIORITY ? "Popular" : "Other",
- gutter: connected ? <text fg={theme.success}>✓</text> : undefined,
+ gutter: connected && onboarded() ? <text fg={theme.success}>✓</text> : undefined,
async onSelect() {
if (consoleManaged) return
diff --git a/packages/opencode/src/cli/cmd/tui/component/use-connected.tsx b/packages/opencode/src/cli/cmd/tui/component/use-connected.tsx
new file mode 100644
index 000000000..700855c11
--- /dev/null
+++ b/packages/opencode/src/cli/cmd/tui/component/use-connected.tsx
@@ -0,0 +1,9 @@
+import { createMemo } from "solid-js"
+import { useSync } from "@tui/context/sync"
+
+export function useConnected() {
+ const sync = useSync()
+ return createMemo(() =>
+ sync.data.provider.some((x) => x.id !== "opencode" || Object.values(x.models).some((y) => y.cost?.input !== 0)),
+ )
+}
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx
index 8ace2fff3..c3a96254e 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/footer.tsx
@@ -2,7 +2,7 @@ import { createMemo, Match, onCleanup, onMount, Show, Switch } from "solid-js"
import { useTheme } from "../../context/theme"
import { useSync } from "../../context/sync"
import { useDirectory } from "../../context/directory"
-import { useConnected } from "../../component/dialog-model"
+import { useConnected } from "../../component/use-connected"
import { createStore } from "solid-js/store"
import { useRoute } from "../../context/route"