From b68616197c016ab4d0c186b745d8cb4d4953c8d6 Mon Sep 17 00:00:00 2001 From: "will.anderson" Date: Fri, 21 Aug 2026 16:07:45 -0500 Subject: [PATCH] fix: always render wordmark via protocol auto-resolution; disable update checks by default --- packages/opencode/src/cli/upgrade.ts | 3 ++- packages/tui/src/component/logo.tsx | 22 +++------------------- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/packages/opencode/src/cli/upgrade.ts b/packages/opencode/src/cli/upgrade.ts index 62b230a63..3e617a553 100644 --- a/packages/opencode/src/cli/upgrade.ts +++ b/packages/opencode/src/cli/upgrade.ts @@ -6,8 +6,9 @@ import { InstallationVersion } from "@opencode-ai/core/installation/version" import { GlobalBus } from "@/bus/global" export async function upgrade() { + // Neuron fork: update checks are opt-in. We do not phone home by default. const config = await AppRuntime.runPromise(Config.Service.use((cfg) => cfg.getGlobal())) - if (config.autoupdate === false || Flag.OPENCODE_DISABLE_AUTOUPDATE) return + if (config.autoupdate !== true || Flag.OPENCODE_DISABLE_AUTOUPDATE) return const method = await Installation.method() const latest = await Installation.latest(method).catch(() => {}) if (!latest) return diff --git a/packages/tui/src/component/logo.tsx b/packages/tui/src/component/logo.tsx index 0f47d76ea..9e9b85b31 100644 --- a/packages/tui/src/component/logo.tsx +++ b/packages/tui/src/component/logo.tsx @@ -1,5 +1,4 @@ -import { useRenderer } from "@opentui/solid" -import { createSignal, For, onMount, type JSX } from "solid-js" +import { For, createSignal, type JSX } from "solid-js" import { RGBA, TextAttributes } from "@opentui/core" import { tint, useTheme } from "../context/theme" import { logo } from "../logo" @@ -10,24 +9,8 @@ import wordmark from "../assets/neuron-wordmark.png" with { type: "file" } // block-letter ASCII logo. export function Logo() { const { theme } = useTheme() - const renderer = useRenderer() - const [useImage, setImage] = createSignal(false) const [imageFailed, setImageFailed] = createSignal(false) - onMount(() => { - // capability info lands asynchronously after startup; only trust an - // explicit positive detection - const caps = (renderer as { capabilities?: { kitty_graphics?: boolean; iterm2?: boolean } }).capabilities - if (caps?.kitty_graphics || caps?.iterm2) { - setImage(true) - return - } - const onCaps = (next: { kitty_graphics?: boolean; iterm2?: boolean }) => { - if (next?.kitty_graphics || next?.iterm2) setImage(true) - } - renderer.on("capabilities", onCaps) - }) - const renderLine = (line: string, fg: RGBA, bold: boolean): JSX.Element[] => { const shadow = tint(theme.background, fg, 0.25) const attrs = bold ? TextAttributes.BOLD : undefined @@ -68,7 +51,7 @@ export function Logo() { }) } - if (useImage() && !imageFailed()) { + if (!imageFailed()) { return ( setImageFailed(true)} />