diff options
| author | Kit Langton <[email protected]> | 2026-04-15 22:01:53 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-16 02:01:53 +0000 |
| commit | cce05c16658a39d091f658bdb53dcce1e88c66d0 (patch) | |
| tree | bedd5e0c1d9105854e4dbf8ec0c6f7e1337df4c6 /packages | |
| parent | 34213d444681a8953c5693bd01dd754c4e79a30b (diff) | |
| download | opencode-cce05c16658a39d091f658bdb53dcce1e88c66d0.tar.gz opencode-cce05c16658a39d091f658bdb53dcce1e88c66d0.zip | |
fix: clean up 49 unused variables, catch params, and stale imports (#22695)
Diffstat (limited to 'packages')
33 files changed, 27 insertions, 61 deletions
diff --git a/packages/app/src/addons/serialize.test.ts b/packages/app/src/addons/serialize.test.ts index 7f6780557..6828e60f8 100644 --- a/packages/app/src/addons/serialize.test.ts +++ b/packages/app/src/addons/serialize.test.ts @@ -180,8 +180,8 @@ describe("SerializeAddon", () => { await writeAndWait(term, input) const origLine = term.buffer.active.getLine(0) - const origFg = origLine!.getCell(0)!.getFgColor() - const origBg = origLine!.getCell(0)!.getBgColor() + const _origFg = origLine!.getCell(0)!.getFgColor() + const _origBg = origLine!.getCell(0)!.getBgColor() expect(origLine!.getCell(0)!.isBold()).toBe(1) const serialized = addon.serialize({ range: { start: 0, end: 0 } }) diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx index 35fd36cca..9983548ba 100644 --- a/packages/app/src/app.tsx +++ b/packages/app/src/app.tsx @@ -10,7 +10,7 @@ import { ThemeProvider } from "@opencode-ai/ui/theme/context" import { MetaProvider } from "@solidjs/meta" import { type BaseRouterProps, Navigate, Route, Router } from "@solidjs/router" import { QueryClient, QueryClientProvider } from "@tanstack/solid-query" -import { type Duration, Effect } from "effect" +import { Effect } from "effect" import { type Component, createMemo, @@ -156,11 +156,6 @@ export function AppBaseProviders(props: ParentProps<{ locale?: Locale }>) { ) } -const effectMinDuration = - (duration: Duration.Input) => - <A, E, R>(e: Effect.Effect<A, E, R>) => - Effect.all([e, Effect.sleep(duration)], { concurrency: "unbounded" }).pipe(Effect.map((v) => v[0])) - function ConnectionGate(props: ParentProps<{ disableHealthCheck?: boolean }>) { const server = useServer() const checkServerHealth = useCheckServerHealth() diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index e328e3f0c..32df997f7 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -433,7 +433,6 @@ export default function Page() { const isChildSession = createMemo(() => !!info()?.parentID) const diffs = createMemo(() => (params.id ? list(sync.data.session_diff[params.id]) : [])) const sessionCount = createMemo(() => Math.max(info()?.summary?.files ?? 0, diffs().length)) - const hasSessionReview = createMemo(() => sessionCount() > 0) const canReview = createMemo(() => !!sync.project) const reviewTab = createMemo(() => isDesktop()) const tabState = createSessionTabs({ @@ -443,8 +442,6 @@ export default function Page() { review: reviewTab, hasReview: canReview, }) - const contextOpen = tabState.contextOpen - const openedTabs = tabState.openedTabs const activeTab = tabState.activeTab const activeFileTab = tabState.activeFileTab const revertMessageID = createMemo(() => info()?.revert?.messageID) diff --git a/packages/app/src/pages/session/file-tabs.tsx b/packages/app/src/pages/session/file-tabs.tsx index a64dff64e..37bffcd2f 100644 --- a/packages/app/src/pages/session/file-tabs.tsx +++ b/packages/app/src/pages/session/file-tabs.tsx @@ -378,12 +378,6 @@ export function FileTabContent(props: { tab: string }) { requestAnimationFrame(() => comments.clearFocus()) }) - const cancelCommenting = () => { - const p = path() - if (p) file.setSelectedLines(p, null) - setNote("commenting", null) - } - let prev = { loaded: false, ready: false, diff --git a/packages/console/app/script/generate-sitemap.ts b/packages/console/app/script/generate-sitemap.ts index 89bca6bac..9fd3ba0f0 100755 --- a/packages/console/app/script/generate-sitemap.ts +++ b/packages/console/app/script/generate-sitemap.ts @@ -8,7 +8,6 @@ import { LOCALES, route } from "../src/lib/language.js" const __dirname = dirname(fileURLToPath(import.meta.url)) const BASE_URL = config.baseUrl const PUBLIC_DIR = join(__dirname, "../public") -const ROUTES_DIR = join(__dirname, "../src/routes") const DOCS_DIR = join(__dirname, "../../../web/src/content/docs") interface SitemapEntry { diff --git a/packages/console/app/src/routes/index.tsx b/packages/console/app/src/routes/index.tsx index e47134d2b..b5b12a84b 100644 --- a/packages/console/app/src/routes/index.tsx +++ b/packages/console/app/src/routes/index.tsx @@ -31,8 +31,6 @@ export default function Home() { const i18n = useI18n() const language = useLanguage() const githubData = createAsync(() => github()) - const release = createMemo(() => githubData()?.release) - const handleCopyClick = (event: Event) => { const button = event.currentTarget as HTMLButtonElement const text = button.textContent diff --git a/packages/console/app/src/routes/user-menu.tsx b/packages/console/app/src/routes/user-menu.tsx index fa1c1f60b..7b305d8ea 100644 --- a/packages/console/app/src/routes/user-menu.tsx +++ b/packages/console/app/src/routes/user-menu.tsx @@ -6,7 +6,7 @@ import { useI18n } from "~/context/i18n" import { useLanguage } from "~/context/language" import "./user-menu.css" -const logout = action(async () => { +const _logout = action(async () => { "use server" const auth = await useAuthSession() const event = getRequestEvent() diff --git a/packages/function/src/api.ts b/packages/function/src/api.ts index 4d8b295ec..68b2d450b 100644 --- a/packages/function/src/api.ts +++ b/packages/function/src/api.ts @@ -181,7 +181,7 @@ export default new Hono<{ Bindings: Env }>() let info const messages: Record<string, any> = {} data.forEach((d) => { - const [root, type, ...splits] = d.key.split("/") + const [root, type] = d.key.split("/") if (root !== "session") return if (type === "info") { info = d.content diff --git a/packages/opencode/src/bus/bus.ts b/packages/opencode/src/bus/bus.ts index c5e31e6c2..fe9169171 100644 --- a/packages/opencode/src/bus/bus.ts +++ b/packages/opencode/src/bus/bus.ts @@ -4,7 +4,6 @@ import { EffectBridge } from "@/effect/bridge" import { Log } from "../util/log" import { BusEvent } from "./bus-event" import { GlobalBus } from "./global" -import { WorkspaceContext } from "@/control-plane/workspace-context" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx index 2118fe98e..7ca73310b 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx @@ -111,7 +111,7 @@ export function Autocomplete(props: { const position = createMemo(() => { if (!store.visible) return { x: 0, y: 0, width: 0 } - const dims = dimensions() + dimensions() positionTick() const anchor = props.anchor() const parent = anchor.parent diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index f9fd5a9b9..9f0dfa603 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -157,10 +157,10 @@ export function Session() { const [showThinking, setShowThinking] = kv.signal("thinking_visibility", true) const [timestamps, setTimestamps] = kv.signal<"hide" | "show">("timestamps", "hide") const [showDetails, setShowDetails] = kv.signal("tool_details_visibility", true) - const [showAssistantMetadata, setShowAssistantMetadata] = kv.signal("assistant_metadata_visibility", true) + const [showAssistantMetadata, _setShowAssistantMetadata] = kv.signal("assistant_metadata_visibility", true) const [showScrollbar, setShowScrollbar] = kv.signal("scrollbar_visible", false) const [diffWrapMode] = kv.signal<"word" | "none">("diff_wrap_mode", "word") - const [animationsEnabled, setAnimationsEnabled] = kv.signal("animations_enabled", true) + const [_animationsEnabled, _setAnimationsEnabled] = kv.signal("animations_enabled", true) const [showGenericToolOutput, setShowGenericToolOutput] = kv.signal("generic_tool_output_visibility", false) const wide = createMemo(() => dimensions().width > 120) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx index e0b5002b6..ad824fe48 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx @@ -599,7 +599,7 @@ function Prompt<const T extends Record<string, string>>(props: { }) const hint = createMemo(() => (store.expanded ? "minimize" : "fullscreen")) - const renderer = useRenderer() + useRenderer() const content = () => ( <box diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/subagent-footer.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/subagent-footer.tsx index 70c6f6ea9..c857937d4 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/subagent-footer.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/subagent-footer.tsx @@ -59,7 +59,7 @@ export function SubagentFooter() { const keybind = useKeybind() const command = useCommandDialog() const [hover, setHover] = createSignal<"parent" | "prev" | "next" | null>(null) - const dimensions = useTerminalDimensions() + useTerminalDimensions() return ( <box flexShrink={0}> diff --git a/packages/opencode/src/cli/network.ts b/packages/opencode/src/cli/network.ts index 6321c056d..ea281aafb 100644 --- a/packages/opencode/src/cli/network.ts +++ b/packages/opencode/src/cli/network.ts @@ -43,8 +43,6 @@ export async function resolveNetworkOptions(args: NetworkOptions) { const hostnameExplicitlySet = process.argv.includes("--hostname") const mdnsExplicitlySet = process.argv.includes("--mdns") const mdnsDomainExplicitlySet = process.argv.includes("--mdns-domain") - const corsExplicitlySet = process.argv.includes("--cors") - const mdns = mdnsExplicitlySet ? args.mdns : (config?.server?.mdns ?? args.mdns) const mdnsDomain = mdnsDomainExplicitlySet ? args["mdns-domain"] : (config?.server?.mdnsDomain ?? args["mdns-domain"]) const port = portExplicitlySet ? args.port : (config?.server?.port ?? args.port) diff --git a/packages/opencode/src/command/index.ts b/packages/opencode/src/command/index.ts index 28fb37f27..539ae0dac 100644 --- a/packages/opencode/src/command/index.ts +++ b/packages/opencode/src/command/index.ts @@ -8,13 +8,10 @@ import z from "zod" import { Config } from "../config" import { MCP } from "../mcp" import { Skill } from "../skill" -import { Log } from "../util/log" import PROMPT_INITIALIZE from "./template/initialize.txt" import PROMPT_REVIEW from "./template/review.txt" export namespace Command { - const log = Log.create({ service: "command" }) - type State = { commands: Record<string, Info> } diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 63e41f445..58d9343ad 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -1095,7 +1095,7 @@ function patchJsonc(input: string, patch: unknown, path: string[] = []): string } function writable(info: Info) { - const { plugin_origins, ...next } = info + const { plugin_origins: _plugin_origins, ...next } = info return next } diff --git a/packages/opencode/src/control-plane/workspace.ts b/packages/opencode/src/control-plane/workspace.ts index 67583107f..4fef4f932 100644 --- a/packages/opencode/src/control-plane/workspace.ts +++ b/packages/opencode/src/control-plane/workspace.ts @@ -328,7 +328,7 @@ export namespace Workspace { try { const adaptor = await getAdaptor(info.projectID, row.type) await adaptor.remove(info) - } catch (err) { + } catch { log.error("adaptor not available when removing workspace", { type: row.type }) } Database.use((db) => db.delete(WorkspaceTable).where(eq(WorkspaceTable.id, id)).run()) @@ -404,7 +404,7 @@ export namespace Workspace { return synced(state) }, }) - } catch (error) { + } catch { if (signal?.aborted) throw signal.reason ?? new Error("Request aborted") throw new Error(`Timed out waiting for sync fence: ${JSON.stringify(state)}`) } diff --git a/packages/opencode/src/mcp/oauth-callback.ts b/packages/opencode/src/mcp/oauth-callback.ts index b5b6a7a6e..6babccd77 100644 --- a/packages/opencode/src/mcp/oauth-callback.ts +++ b/packages/opencode/src/mcp/oauth-callback.ts @@ -218,7 +218,7 @@ export namespace McpOAuthCallback { log.info("oauth callback server stopped") } - for (const [name, pending] of pendingAuths) { + for (const [_name, pending] of pendingAuths) { clearTimeout(pending.timeout) pending.reject(new Error("OAuth callback server stopped")) } diff --git a/packages/opencode/src/server/fence.ts b/packages/opencode/src/server/fence.ts index bb41bd7a4..b6dbde008 100644 --- a/packages/opencode/src/server/fence.ts +++ b/packages/opencode/src/server/fence.ts @@ -40,7 +40,7 @@ export function parse(headers: Headers) { try { data = JSON.parse(raw) - } catch (err) { + } catch { return } diff --git a/packages/opencode/src/server/instance/middleware.ts b/packages/opencode/src/server/instance/middleware.ts index 0e29daa9e..5fd1fc25e 100644 --- a/packages/opencode/src/server/instance/middleware.ts +++ b/packages/opencode/src/server/instance/middleware.ts @@ -16,8 +16,6 @@ import { AppFileSystem } from "@opencode-ai/shared/filesystem" type Rule = { method?: string; path: string; exact?: boolean; action: "local" | "forward" } -const OPENCODE_WORKSPACE = process.env.OPENCODE_WORKSPACE - const RULES: Array<Rule> = [ { path: "/session/status", action: "forward" }, { method: "GET", path: "/session", action: "local" }, diff --git a/packages/opencode/src/server/instance/provider.ts b/packages/opencode/src/server/instance/provider.ts index 8018dfbea..bbde4c955 100644 --- a/packages/opencode/src/server/instance/provider.ts +++ b/packages/opencode/src/server/instance/provider.ts @@ -10,11 +10,8 @@ import { AppRuntime } from "../../effect/app-runtime" import { mapValues } from "remeda" import { errors } from "../error" import { lazy } from "../../util/lazy" -import { Log } from "../../util/log" import { Effect } from "effect" -const log = Log.create({ service: "server" }) - export const ProviderRoutes = lazy(() => new Hono() .get( diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 4e10fdf2d..b69967689 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1825,7 +1825,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the onSuccess: (output: unknown) => void }): AITool { // Remove $schema property if present (not needed for tool input) - const { $schema, ...toolSchema } = input.schema + const { $schema: _, ...toolSchema } = input.schema return tool({ id: "StructuredOutput" as any, diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index ef55758a5..b9870d194 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -176,7 +176,7 @@ export namespace ToolRegistry { } } - const cfg = yield* config.get() + yield* config.get() const questionEnabled = ["app", "cli", "desktop"].includes(Flag.OPENCODE_CLIENT) || Flag.OPENCODE_ENABLE_QUESTION_TOOL diff --git a/packages/opencode/test/file/index.test.ts b/packages/opencode/test/file/index.test.ts index d8203ac12..877e2ae0a 100644 --- a/packages/opencode/test/file/index.test.ts +++ b/packages/opencode/test/file/index.test.ts @@ -276,7 +276,7 @@ describe("file/index Filesystem patterns", () => { test("returns empty array buffer on error for images", async () => { await using tmp = await tmpdir() - const filepath = path.join(tmp.path, "broken.png") + const _filepath = path.join(tmp.path, "broken.png") // Don't create the file await Instance.provide({ diff --git a/packages/opencode/test/fixture/lsp/fake-lsp-server.js b/packages/opencode/test/fixture/lsp/fake-lsp-server.js index 39e578801..be62f96f3 100644 --- a/packages/opencode/test/fixture/lsp/fake-lsp-server.js +++ b/packages/opencode/test/fixture/lsp/fake-lsp-server.js @@ -1,8 +1,6 @@ // Simple JSON-RPC 2.0 LSP-like fake server over stdio // Implements a minimal LSP handshake and triggers a request upon notification -const net = require("net") - let nextId = 1 function encode(message) { diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 4952a126b..0e0810d0e 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -2,8 +2,6 @@ import { describe, expect, test } from "bun:test" import { ProviderTransform } from "../../src/provider/transform" import { ModelID, ProviderID } from "../../src/provider/schema" -const OUTPUT_TOKEN_MAX = 32000 - describe("ProviderTransform.options - setCacheKey", () => { const sessionID = "test-session-123" diff --git a/packages/opencode/test/server/session-list.test.ts b/packages/opencode/test/server/session-list.test.ts index 8c86dc2f0..75adb7f9f 100644 --- a/packages/opencode/test/server/session-list.test.ts +++ b/packages/opencode/test/server/session-list.test.ts @@ -67,7 +67,7 @@ describe("session.list", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const session = await svc.create({ title: "new-session" }) + await svc.create({ title: "new-session" }) const futureStart = Date.now() + 86400000 const sessions = [...svc.list({ start: futureStart })] diff --git a/packages/opencode/test/session/llm.test.ts b/packages/opencode/test/session/llm.test.ts index e908545d4..f25ecc356 100644 --- a/packages/opencode/test/session/llm.test.ts +++ b/packages/opencode/test/session/llm.test.ts @@ -1181,7 +1181,6 @@ describe("session.llm.stream", () => { const providerID = "google" const modelID = "gemini-2.5-flash" const fixture = await loadFixture(providerID, modelID) - const provider = fixture.provider const model = fixture.model const pathSuffix = `/v1beta/models/${model.id}:streamGenerateContent` diff --git a/packages/opencode/test/session/messages-pagination.test.ts b/packages/opencode/test/session/messages-pagination.test.ts index 668918ec8..f728bd364 100644 --- a/packages/opencode/test/session/messages-pagination.test.ts +++ b/packages/opencode/test/session/messages-pagination.test.ts @@ -724,7 +724,7 @@ describe("MessageV2.filterCompacted", () => { const u1 = await addUser(session.id, "hello") await addCompactionPart(session.id, u1) - const u2 = await addUser(session.id, "world") + await addUser(session.id, "world") const result = MessageV2.filterCompacted(MessageV2.stream(session.id)) expect(result).toHaveLength(2) @@ -748,7 +748,7 @@ describe("MessageV2.filterCompacted", () => { isRetryable: true, }).toObject() as MessageV2.Assistant["error"] await addAssistant(session.id, u1, { summary: true, finish: "end_turn", error }) - const u2 = await addUser(session.id, "retry") + await addUser(session.id, "retry") const result = MessageV2.filterCompacted(MessageV2.stream(session.id)) // Error assistant doesn't add to completed, so compaction boundary never triggers @@ -770,7 +770,7 @@ describe("MessageV2.filterCompacted", () => { // summary=true but no finish await addAssistant(session.id, u1, { summary: true }) - const u2 = await addUser(session.id, "next") + await addUser(session.id, "next") const result = MessageV2.filterCompacted(MessageV2.stream(session.id)) expect(result).toHaveLength(3) @@ -892,7 +892,7 @@ describe("MessageV2 consistency", () => { directory: root, fn: async () => { const session = await svc.create({}) - const ids = await fill(session.id, 4) + await fill(session.id, 4) const filtered = MessageV2.filterCompacted(MessageV2.stream(session.id)) const all = Array.from(MessageV2.stream(session.id)).reverse() diff --git a/packages/sdk/js/src/v2/data.ts b/packages/sdk/js/src/v2/data.ts index baae6f278..776b168ad 100644 --- a/packages/sdk/js/src/v2/data.ts +++ b/packages/sdk/js/src/v2/data.ts @@ -5,7 +5,7 @@ export const message = { info: UserMessage parts: Part[] } { - const { parts, ...rest } = input + const { parts: _parts, ...rest } = input const info: UserMessage = { ...rest, diff --git a/packages/shared/test/filesystem/filesystem.test.ts b/packages/shared/test/filesystem/filesystem.test.ts index ce990d379..b49026bcb 100644 --- a/packages/shared/test/filesystem/filesystem.test.ts +++ b/packages/shared/test/filesystem/filesystem.test.ts @@ -290,7 +290,7 @@ describe("AppFileSystem", () => { it( "exists works", Effect.gen(function* () { - const fs = yield* AppFileSystem.Service + yield* AppFileSystem.Service const filesys = yield* FileSystem.FileSystem const tmp = yield* filesys.makeTempDirectoryScoped() const file = path.join(tmp, "exists.txt") @@ -304,7 +304,7 @@ describe("AppFileSystem", () => { it( "remove works", Effect.gen(function* () { - const fs = yield* AppFileSystem.Service + yield* AppFileSystem.Service const filesys = yield* FileSystem.FileSystem const tmp = yield* filesys.makeTempDirectoryScoped() const file = path.join(tmp, "delete-me.txt") diff --git a/packages/shared/test/fixture/effect-flock-worker.ts b/packages/shared/test/fixture/effect-flock-worker.ts index 7fd2e144a..c9116c2d5 100644 --- a/packages/shared/test/fixture/effect-flock-worker.ts +++ b/packages/shared/test/fixture/effect-flock-worker.ts @@ -1,5 +1,4 @@ import fs from "fs/promises" -import path from "path" import os from "os" import { Effect, Layer } from "effect" import { AppFileSystem } from "@opencode-ai/shared/filesystem" diff --git a/packages/slack/src/index.ts b/packages/slack/src/index.ts index 123710aa4..85d685129 100644 --- a/packages/slack/src/index.ts +++ b/packages/slack/src/index.ts @@ -27,7 +27,7 @@ const sessions = new Map<string, { client: any; server: any; sessionId: string; const part = event.properties.part if (part.type === "tool") { // Find the session for this tool update - for (const [sessionKey, session] of sessions.entries()) { + for (const [_sessionKey, session] of sessions.entries()) { if (session.sessionId === part.sessionID) { handleToolUpdate(part, session.channel, session.thread) break |
