From b9fe0894a6da4994f534885b874787b4e912ca2e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 31 May 2026 08:15:59 +0100 Subject: [PATCH] chore(lint): enable additional cleanup rules --- .oxlintrc.json | 3 +++ .../browser/src/browser/cdp.internal.test.ts | 8 ++----- .../browser/src/browser/pw-role-snapshot.ts | 8 +++++-- extensions/browser/src/browser/pw-session.ts | 1 - .../realtime-transcription-provider.ts | 3 +-- extensions/diagnostics-otel/src/service.ts | 18 ++++---------- .../diagnostics-prometheus/src/service.ts | 14 +++++++---- .../src/monitor/gateway-plugin.test.ts | 8 ++----- .../discord/src/monitor/gateway-supervisor.ts | 1 - .../src/monitor/model-picker-preferences.ts | 4 +--- .../discord/src/monitor/provider.deploy.ts | 1 - .../realtime-transcription-provider.ts | 1 - extensions/feishu/src/docx-batch-insert.ts | 4 ++-- extensions/feishu/src/docx-table-ops.ts | 8 +++---- .../feishu/src/sequential-queue.test.ts | 6 +---- extensions/google-meet/index.test.ts | 12 +++++----- extensions/google/realtime-voice-provider.ts | 4 ---- .../mattermost/src/mattermost/monitor.ts | 1 - extensions/memory-core/src/cli.test.ts | 2 +- .../src/memory/manager-sync-control.ts | 1 - .../qmd-manager.slugified-paths.test.ts | 7 +----- .../src/memory/qmd-manager.test.ts | 7 +----- .../src/memory/search-manager.test.ts | 2 +- .../memory-core/src/tools.citations.test.ts | 2 +- extensions/minimax/onboard.ts | 8 +++---- .../realtime-transcription-provider.ts | 3 +-- .../msteams/src/reply-dispatcher.test.ts | 2 +- .../msteams/src/reply-stream-controller.ts | 1 - .../nextcloud-talk/src/monitor-runtime.ts | 1 - extensions/nostr/src/metrics.ts | 6 +---- .../openai-chatgpt-oauth-flow.runtime.ts | 2 +- .../openai/realtime-transcription-provider.ts | 2 -- extensions/openai/realtime-voice-provider.ts | 2 -- extensions/phone-control/index.ts | 3 --- .../engine/messaging/outbound-media-send.ts | 2 +- extensions/qqbot/src/engine/utils/audio.ts | 8 +++---- .../src/monitor.tool-result.autostart.test.ts | 1 - extensions/slack/src/blocks.test-helpers.ts | 4 +--- .../src/monitor/message-handler/dispatch.ts | 4 ---- .../message-handler/preview-finalize.ts | 1 - extensions/slack/src/monitor/replies.test.ts | 8 +++---- extensions/talk-voice/index.test.ts | 6 +---- extensions/talk-voice/index.ts | 2 +- extensions/telegram/src/draft-stream.ts | 1 - extensions/tlon/src/monitor/index.ts | 8 ++----- extensions/tlon/src/urbit/story.ts | 7 +----- extensions/twitch/src/send.ts | 2 +- .../whatsapp/src/auto-reply.test-harness.ts | 1 - .../group-gating.allowlist-warn.test.ts | 5 +--- ...x.streams-inbound-messages.test-support.ts | 24 +++++-------------- .../xai/realtime-transcription-provider.ts | 3 +-- .../compaction/branch-summarization.ts | 2 +- packages/agent-core/src/harness/env/nodejs.ts | 2 +- scripts/dev/gateway-smoke.ts | 4 +--- scripts/e2e/kitchen-sink-rpc-walk.mjs | 4 +++- .../doctor-install-switch/write-wrapper.mjs | 4 ++-- scripts/e2e/telegram-user-crabbox-proof.ts | 4 +--- scripts/process-warning-filter.mjs | 1 - src/acp/client.ts | 2 -- src/agents/btw.test.ts | 2 +- src/agents/cli-output.ts | 1 - ...nt-runner.sanitize-session-history.test.ts | 4 +--- .../model.test-harness.ts | 2 +- .../embedded-agent-subscribe.handlers.ts | 3 --- .../interactive/components/visual-truncate.ts | 2 +- src/agents/modes/interactive/theme/theme.ts | 4 ++-- src/agents/openclaw-gateway-tool.test.ts | 2 +- src/agents/sessions/package-manager.ts | 4 +--- src/agents/sessions/resource-loader.ts | 2 +- src/agents/sessions/session-manager.ts | 4 ++-- src/agents/tool-search.test.ts | 10 +++++--- src/agents/tools/music-generate-tool.ts | 3 --- src/agents/tools/session-status-tool.ts | 3 ++- src/agents/utils/tools-manager.ts | 5 +--- src/auto-reply/reply/block-reply-pipeline.ts | 2 +- .../plugins-core.loader.contract.test.ts | 1 - src/cli/daemon-cli/lifecycle-core.ts | 1 - src/cli/system-cli.test.ts | 4 ++-- src/commands/configure.gateway-auth.ts | 2 +- src/commands/doctor-sandbox.ts | 7 +----- src/commands/reset.ts | 1 - src/config/io.compat.test.ts | 2 +- src/config/zod-schema.agents.ts | 1 - src/daemon/launchd.test.ts | 1 - src/daemon/program-args.test.ts | 1 - src/gateway/client.test.ts | 2 -- .../bundled/session-memory/transcript.ts | 4 ++-- src/infra/approval-handler-runtime.ts | 3 +-- src/infra/exec-approvals-allowlist.ts | 2 +- src/infra/exec-approvals.ts | 1 - src/infra/run-node.test.ts | 4 +--- src/infra/warning-filter.ts | 1 - src/logging/diagnostic-run-activity.ts | 3 +-- src/media-understanding/image.test.ts | 6 ++--- src/media/store.ts | 2 +- src/plugins/discovery.ts | 1 - .../websocket-session.ts | 1 - src/secrets/runtime-config-collectors-tts.ts | 1 - src/talk/turn-context-tracker.ts | 1 - src/wizard/setup.ts | 5 +--- test/scripts/oxlint-config.test.ts | 3 +++ ui/src/ui/app-render.ts | 2 -- ui/src/ui/app-settings.ts | 2 -- ui/src/ui/chat/realtime-talk-gateway-relay.ts | 9 ++----- ui/src/ui/chat/realtime-talk-webrtc.ts | 3 +-- .../slash-commands.browser-import.test.ts | 2 +- ui/src/ui/gateway.ts | 1 - ui/src/ui/text-direction.ts | 2 +- 108 files changed, 134 insertions(+), 267 deletions(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index d62def0e065..769406c9cca 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -33,6 +33,7 @@ "eslint/no-useless-concat": "error", "eslint/no-useless-constructor": "error", "eslint/no-useless-rename": "error", + "eslint/no-useless-return": "error", "eslint/no-unused-vars": "off", "eslint/no-warning-comments": "error", "eslint/no-unmodified-loop-condition": "error", @@ -72,6 +73,7 @@ "typescript/no-extraneous-class": "error", "typescript/no-import-type-side-effects": "error", "typescript/no-meaningless-void-operator": "error", + "typescript/no-inferrable-types": "error", "typescript/no-non-null-asserted-nullish-coalescing": "error", "typescript/no-unnecessary-qualifier": "error", "typescript/no-unnecessary-type-assertion": "error", @@ -112,6 +114,7 @@ "unicorn/no-new-buffer": "error", "unicorn/no-thenable": "error", "unicorn/no-typeof-undefined": "error", + "unicorn/no-unreadable-array-destructuring": "error", "unicorn/no-unnecessary-array-flat-depth": "error", "unicorn/no-unnecessary-array-splice-count": "error", "unicorn/no-unnecessary-slice-end": "error", diff --git a/extensions/browser/src/browser/cdp.internal.test.ts b/extensions/browser/src/browser/cdp.internal.test.ts index 4e970c5b4a2..651e9b68c52 100644 --- a/extensions/browser/src/browser/cdp.internal.test.ts +++ b/extensions/browser/src/browser/cdp.internal.test.ts @@ -223,9 +223,7 @@ describe("cdp internal", () => { ); return; } - if (replyToViewportCommandOrScreenshot(msg, socket, "FULL")) { - return; - } + replyToViewportCommandOrScreenshot(msg, socket, "FULL"); }); wss = server.wss; const buf = await captureScreenshot({ wsUrl: server.wsUrl, fullPage: true }); @@ -1060,9 +1058,7 @@ describe("cdp internal", () => { socket.send(JSON.stringify({ id: msg.id, result: { result: { value: {} } } })); return; } - if (replyToViewportCommandOrScreenshot(msg, socket, "C")) { - return; - } + replyToViewportCommandOrScreenshot(msg, socket, "C"); }); wss = server.wss; const buf = await captureScreenshot({ wsUrl: server.wsUrl, fullPage: true }); diff --git a/extensions/browser/src/browser/pw-role-snapshot.ts b/extensions/browser/src/browser/pw-role-snapshot.ts index e2238718ac8..8facdfb6586 100644 --- a/extensions/browser/src/browser/pw-role-snapshot.ts +++ b/extensions/browser/src/browser/pw-role-snapshot.ts @@ -53,7 +53,9 @@ function matchInteractiveSnapshotLine( if (!match) { return null; } - const [, , roleRaw, name, suffix] = match; + const roleRaw = match[2]; + const name = match[3]; + const suffix = match[4]; if (roleRaw.startsWith("/")) { return null; } @@ -384,7 +386,9 @@ export function buildRoleSnapshotFromAiSnapshot( out.push(line); continue; } - const [, , roleRaw, name, suffix] = match; + const roleRaw = match[2]; + const name = match[3]; + const suffix = match[4]; if (roleRaw.startsWith("/")) { out.push(line); continue; diff --git a/extensions/browser/src/browser/pw-session.ts b/extensions/browser/src/browser/pw-session.ts index cbd2d668941..48774233ea3 100644 --- a/extensions/browser/src/browser/pw-session.ts +++ b/extensions/browser/src/browser/pw-session.ts @@ -1806,7 +1806,6 @@ export async function focusPageByTargetIdViaPlaywright(opts: { await send("Page.bringToFront"); }, }); - return; } catch { throw err; } diff --git a/extensions/deepgram/realtime-transcription-provider.ts b/extensions/deepgram/realtime-transcription-provider.ts index 7c60d68d84e..25b20ba963a 100644 --- a/extensions/deepgram/realtime-transcription-provider.ts +++ b/extensions/deepgram/realtime-transcription-provider.ts @@ -186,9 +186,8 @@ function createDeepgramRealtimeTranscriptionSession( case "Error": case "error": config.onError?.(new Error(readErrorDetail(event.error ?? event.message))); - return; + default: - return; } }; diff --git a/extensions/diagnostics-otel/src/service.ts b/extensions/diagnostics-otel/src/service.ts index 366cd405c9b..a5c2b6b00f7 100644 --- a/extensions/diagnostics-otel/src/service.ts +++ b/extensions/diagnostics-otel/src/service.ts @@ -898,11 +898,7 @@ function assignOtelModelContentAttributes( ); } if (policy.systemPrompt) { - assignOtelContentAttribute( - attributes, - "openclaw.content.system_prompt", - content?.systemPrompt, - ); + assignOtelContentAttribute(attributes, "openclaw.content.system_prompt", content?.systemPrompt); } } @@ -1475,13 +1471,10 @@ export function createDiagnosticsOtelService(): OpenClawPluginService { description: "Tool execution duration", }, ); - const toolExecutionBlockedCounter = meter.createCounter( - "openclaw.tool.execution.blocked", - { - unit: "1", - description: "Tool executions blocked by policy or sandbox diagnostics", - }, - ); + const toolExecutionBlockedCounter = meter.createCounter("openclaw.tool.execution.blocked", { + unit: "1", + description: "Tool executions blocked by policy or sandbox diagnostics", + }); const execProcessDurationHistogram = meter.createHistogram("openclaw.exec.duration_ms", { unit: "ms", description: "Exec process duration", @@ -3208,7 +3201,6 @@ export function createDiagnosticsOtelService(): OpenClawPluginService { return; case "model.failover": recordModelFailover(evt, metadata); - return; } } catch (err) { ctx.logger.error( diff --git a/extensions/diagnostics-prometheus/src/service.ts b/extensions/diagnostics-prometheus/src/service.ts index 0ffbe74429e..710e1430079 100644 --- a/extensions/diagnostics-prometheus/src/service.ts +++ b/extensions/diagnostics-prometheus/src/service.ts @@ -334,7 +334,9 @@ function modelCallLabels(evt: { }; } -function modelFailoverLabels(evt: Extract): LabelSet { +function modelFailoverLabels( + evt: Extract, +): LabelSet { return { from_model: lowCardinalityLabel(evt.fromModel), from_provider: lowCardinalityLabel(evt.fromProvider), @@ -429,7 +431,9 @@ function webhookLabels( }; } -function sessionStuckLabels(evt: Extract): LabelSet { +function sessionStuckLabels( + evt: Extract, +): LabelSet { return { reason: lowCardinalityLabel(evt.reason, "none"), state: evt.state, @@ -463,7 +467,9 @@ function livenessLabels( }; } -function payloadLargeLabels(evt: Extract): LabelSet { +function payloadLargeLabels( + evt: Extract, +): LabelSet { return { action: evt.action, channel: lowCardinalityLabel(evt.channel, "none"), @@ -981,9 +987,7 @@ function recordDiagnosticEvent( numericValue(evt.bytes), BYTE_BUCKETS, ); - return; default: - return; } } diff --git a/extensions/discord/src/monitor/gateway-plugin.test.ts b/extensions/discord/src/monitor/gateway-plugin.test.ts index 30502142b8e..51d1124373d 100644 --- a/extensions/discord/src/monitor/gateway-plugin.test.ts +++ b/extensions/discord/src/monitor/gateway-plugin.test.ts @@ -35,7 +35,7 @@ const { GatewayIntents, GatewayPlugin } = vi.hoisted(() => { options: unknown; gatewayInfo: unknown; emitter = new TestEmitter(); - isConnecting: boolean = false; + isConnecting = false; heartbeatInterval?: NodeJS.Timeout; firstHeartbeatTimeout?: NodeJS.Timeout; ws?: unknown; @@ -46,11 +46,7 @@ const { GatewayIntents, GatewayPlugin } = vi.hoisted(() => { async registerClient(clientForTest: unknown): Promise {} - connect(_resume = false): void { - if (this.isConnecting) { - return; - } - } + connect(_resume = false): void {} } return { GatewayIntents, GatewayPlugin }; diff --git a/extensions/discord/src/monitor/gateway-supervisor.ts b/extensions/discord/src/monitor/gateway-supervisor.ts index ceec6dffbb2..364809d2fb1 100644 --- a/extensions/discord/src/monitor/gateway-supervisor.ts +++ b/extensions/discord/src/monitor/gateway-supervisor.ts @@ -166,7 +166,6 @@ export function createDiscordGatewaySupervisor(params: { return; case "buffering": pending.push(event); - return; } }; emitter.on("error", onGatewayError); diff --git a/extensions/discord/src/monitor/model-picker-preferences.ts b/extensions/discord/src/monitor/model-picker-preferences.ts index eda1e7010c9..10c7c602c51 100644 --- a/extensions/discord/src/monitor/model-picker-preferences.ts +++ b/extensions/discord/src/monitor/model-picker-preferences.ts @@ -347,7 +347,5 @@ export async function recordDiscordModelPickerRecentModel(params: { ) .toSorted(comparePreferenceEntries); await Promise.all(scopedEntries.slice(limit).map((entry) => store.delete(entry.key))); - } catch { - return; - } + } catch {} } diff --git a/extensions/discord/src/monitor/provider.deploy.ts b/extensions/discord/src/monitor/provider.deploy.ts index e738b956a4d..36ca94369b6 100644 --- a/extensions/discord/src/monitor/provider.deploy.ts +++ b/extensions/discord/src/monitor/provider.deploy.ts @@ -139,7 +139,6 @@ async function deployDiscordCommands(params: { try { try { await params.client.deployCommands({ mode: "reconcile" }); - return; } catch (err) { if (isDiscordDeployDailyCreateLimit(err)) { params.runtime.log?.( diff --git a/extensions/elevenlabs/realtime-transcription-provider.ts b/extensions/elevenlabs/realtime-transcription-provider.ts index fcc4fbd7aec..9b5bda18232 100644 --- a/extensions/elevenlabs/realtime-transcription-provider.ts +++ b/extensions/elevenlabs/realtime-transcription-provider.ts @@ -224,7 +224,6 @@ function createElevenLabsRealtimeTranscriptionSession( if (event.message_type?.includes("error")) { config.onError?.(new Error(readErrorDetail(event))); } - return; } }; diff --git a/extensions/feishu/src/docx-batch-insert.ts b/extensions/feishu/src/docx-batch-insert.ts index 845647072d7..1c0c0244fcf 100644 --- a/extensions/feishu/src/docx-batch-insert.ts +++ b/extensions/feishu/src/docx-batch-insert.ts @@ -90,7 +90,7 @@ async function insertBatch( blocks: FeishuDocxBlock[], firstLevelBlockIds: string[], parentBlockId: string = docToken, - index: number = -1, + index = -1, ): Promise { const descendants = cleanBlocksForDescendant(blocks); @@ -137,7 +137,7 @@ export async function insertBlocksInBatches( firstLevelBlockIds: string[], logger?: Logger, parentBlockId: string = docToken, - startIndex: number = -1, + startIndex = -1, ): Promise<{ children: FeishuDocxBlockChild[]; skipped: string[] }> { const allChildren: FeishuDocxBlockChild[] = []; diff --git a/extensions/feishu/src/docx-table-ops.ts b/extensions/feishu/src/docx-table-ops.ts index 1acef669fad..79e047c6d72 100644 --- a/extensions/feishu/src/docx-table-ops.ts +++ b/extensions/feishu/src/docx-table-ops.ts @@ -222,7 +222,7 @@ export async function insertTableRow( client: Lark.Client, docToken: string, blockId: string, - rowIndex: number = -1, + rowIndex = -1, ) { const res = await client.docx.documentBlock.patch({ path: { document_id: docToken, block_id: blockId }, @@ -238,7 +238,7 @@ export async function insertTableColumn( client: Lark.Client, docToken: string, blockId: string, - columnIndex: number = -1, + columnIndex = -1, ) { const res = await client.docx.documentBlock.patch({ path: { document_id: docToken, block_id: blockId }, @@ -255,7 +255,7 @@ export async function deleteTableRows( docToken: string, blockId: string, rowStart: number, - rowCount: number = 1, + rowCount = 1, ) { const res = await client.docx.documentBlock.patch({ path: { document_id: docToken, block_id: blockId }, @@ -272,7 +272,7 @@ export async function deleteTableColumns( docToken: string, blockId: string, columnStart: number, - columnCount: number = 1, + columnCount = 1, ) { const res = await client.docx.documentBlock.patch({ path: { document_id: docToken, block_id: blockId }, diff --git a/extensions/feishu/src/sequential-queue.test.ts b/extensions/feishu/src/sequential-queue.test.ts index 02f3593f6f4..3916cde2ead 100644 --- a/extensions/feishu/src/sequential-queue.test.ts +++ b/extensions/feishu/src/sequential-queue.test.ts @@ -88,11 +88,7 @@ describe("createSequentialQueue", () => { await new Promise((resolve) => setImmediate(resolve)); expect(unhandled).toStrictEqual([]); - await expect( - enqueue("feishu:default:chat-1", async () => { - return; - }), - ).resolves.toBeUndefined(); + await expect(enqueue("feishu:default:chat-1", async () => {})).resolves.toBeUndefined(); } finally { process.off("unhandledRejection", onUnhandledRejection); } diff --git a/extensions/google-meet/index.test.ts b/extensions/google-meet/index.test.ts index baa78d7b4f1..99d26c91bd6 100644 --- a/extensions/google-meet/index.test.ts +++ b/extensions/google-meet/index.test.ts @@ -2272,7 +2272,7 @@ describe("google-meet plugin", () => { expectRespondedOk(respond); expect(runCommandWithTimeout).not.toHaveBeenCalled(); const openCall = callGatewayFromCli.mock.calls.find( - ([, , request]) => requireRecord(request, "browser request").path === "/tabs/open", + (call) => requireRecord(call[2], "browser request").path === "/tabs/open", ); if (!openCall) { throw new Error("Expected browser /tabs/open request"); @@ -2287,7 +2287,7 @@ describe("google-meet plugin", () => { expect(openCall[3]).toEqual({ progress: false }); expect( callGatewayFromCli.mock.calls.some( - ([, , request]) => (request as { path?: string }).path === "/permissions/grant", + (call) => (call[2] as { path?: string }).path === "/permissions/grant", ), ).toBe(false); const payload = requireRespondPayload(respond, "join response payload"); @@ -2305,7 +2305,7 @@ describe("google-meet plugin", () => { expect(transcriptLine.speaker).toBe("Alice"); expect(transcriptLine.text).toBe("Can everyone hear the agent?"); const actCall = callGatewayFromCli.mock.calls.find( - ([, , request]) => (request as { path?: string }).path === "/act", + (call) => (call[2] as { path?: string }).path === "/act", ); expect(String((actCall?.[2] as { body?: { fn?: string } } | undefined)?.body?.fn)).toContain( "const allowMicrophone = false", @@ -2351,7 +2351,7 @@ describe("google-meet plugin", () => { expectRespondedOk(respond); const grantCall = callGatewayFromCli.mock.calls.find( - ([, , request]) => requireRecord(request, "browser request").path === "/permissions/grant", + (call) => requireRecord(call[2], "browser request").path === "/permissions/grant", ); if (!grantCall) { throw new Error("Expected browser /permissions/grant request"); @@ -2643,7 +2643,7 @@ describe("google-meet plugin", () => { expect(status.session?.chrome?.health?.transcriptLines).toBe(1); expect(status.session?.chrome?.health?.lastCaptionText).toBe("Please capture this."); const focusCall = callGatewayFromCli.mock.calls.find( - ([, , request]) => requireRecord(request, "browser request").path === "/tabs/focus", + (call) => requireRecord(call[2], "browser request").path === "/tabs/focus", ); if (!focusCall) { throw new Error("Expected browser /tabs/focus request"); @@ -3447,7 +3447,7 @@ describe("google-meet plugin", () => { expect(browser.manualActionRequired).toBe(true); expect(browser.manualActionReason).toBe("meet-admission-required"); const focusCall = callGatewayFromCli.mock.calls.find( - ([, , request]) => requireRecord(request, "browser request").path === "/tabs/focus", + (call) => requireRecord(call[2], "browser request").path === "/tabs/focus", ); if (!focusCall) { throw new Error("Expected browser /tabs/focus request"); diff --git a/extensions/google/realtime-voice-provider.ts b/extensions/google/realtime-voice-provider.ts index 0954866d271..034a202f2dd 100644 --- a/extensions/google/realtime-voice-provider.ts +++ b/extensions/google/realtime-voice-provider.ts @@ -770,10 +770,6 @@ class GoogleRealtimeVoiceBridge implements RealtimeVoiceBridge { this.config.onTranscript?.("assistant", part.text, content.turnComplete ?? false); } } - - if (!emittedAssistantText && content.turnComplete && content.waitingForInput === false) { - return; - } } private handleToolCall(toolCall: LiveServerToolCall): void { diff --git a/extensions/mattermost/src/mattermost/monitor.ts b/extensions/mattermost/src/mattermost/monitor.ts index 2e3e2487997..8250f24bd1e 100644 --- a/extensions/mattermost/src/mattermost/monitor.ts +++ b/extensions/mattermost/src/mattermost/monitor.ts @@ -1955,7 +1955,6 @@ export async function monitorMattermostProvider(opts: MonitorMattermostOpts = {} logVerboseMessage( `mattermost: drop post (dedupe account=${account.accountId} ids=${allMessageIds.length})`, ); - return; } }; diff --git a/extensions/memory-core/src/cli.test.ts b/extensions/memory-core/src/cli.test.ts index b0dff7f4d31..f468e0b08a3 100644 --- a/extensions/memory-core/src/cli.test.ts +++ b/extensions/memory-core/src/cli.test.ts @@ -1978,7 +1978,7 @@ describe("memory cli", () => { }); }); - async function waitFor(task: () => Promise, timeoutMs: number = 1500): Promise { + async function waitFor(task: () => Promise, timeoutMs = 1500): Promise { let value: T | undefined; await vi.waitFor( async () => { diff --git a/extensions/memory-core/src/memory/manager-sync-control.ts b/extensions/memory-core/src/memory/manager-sync-control.ts index bef7d05d43f..5bab24c552e 100644 --- a/extensions/memory-core/src/memory/manager-sync-control.ts +++ b/extensions/memory-core/src/memory/manager-sync-control.ts @@ -91,7 +91,6 @@ export async function runMemorySyncWithReadonlyRecovery( ): Promise { try { await state.runSync(params); - return; } catch (err) { if (!isMemoryReadonlyDbError(err) || state.closed) { throw err; diff --git a/extensions/memory-core/src/memory/qmd-manager.slugified-paths.test.ts b/extensions/memory-core/src/memory/qmd-manager.slugified-paths.test.ts index 91a8fed7d01..1a0f6ee3a0b 100644 --- a/extensions/memory-core/src/memory/qmd-manager.slugified-paths.test.ts +++ b/extensions/memory-core/src/memory/qmd-manager.slugified-paths.test.ts @@ -36,12 +36,7 @@ function createMockChild(params?: { autoClose?: boolean }): MockChild { return child; } -function emitAndClose( - child: MockChild, - stream: "stdout" | "stderr", - data: string, - code: number = 0, -) { +function emitAndClose(child: MockChild, stream: "stdout" | "stderr", data: string, code = 0) { queueMicrotask(() => { child[stream].emit("data", data); child.closeWith(code); diff --git a/extensions/memory-core/src/memory/qmd-manager.test.ts b/extensions/memory-core/src/memory/qmd-manager.test.ts index fd94a391745..f836001672c 100644 --- a/extensions/memory-core/src/memory/qmd-manager.test.ts +++ b/extensions/memory-core/src/memory/qmd-manager.test.ts @@ -84,12 +84,7 @@ function createMockChild(params?: { autoClose?: boolean; closeDelayMs?: number } return child; } -function emitAndClose( - child: MockChild, - stream: "stdout" | "stderr", - data: string, - code: number = 0, -) { +function emitAndClose(child: MockChild, stream: "stdout" | "stderr", data: string, code = 0) { queueMicrotask(() => { child[stream].emit("data", data); child.closeWith(code); diff --git a/extensions/memory-core/src/memory/search-manager.test.ts b/extensions/memory-core/src/memory/search-manager.test.ts index 3f619a74144..958ae5c5ca2 100644 --- a/extensions/memory-core/src/memory/search-manager.test.ts +++ b/extensions/memory-core/src/memory/search-manager.test.ts @@ -147,7 +147,7 @@ type SearchManager = NonNullable; function createQmdCfg( agentId: string, - workspace: string = "/tmp/workspace", + workspace = "/tmp/workspace", qmd: Record = {}, ): OpenClawConfig { return { diff --git a/extensions/memory-core/src/tools.citations.test.ts b/extensions/memory-core/src/tools.citations.test.ts index 991d1507f01..e854d396a51 100644 --- a/extensions/memory-core/src/tools.citations.test.ts +++ b/extensions/memory-core/src/tools.citations.test.ts @@ -38,7 +38,7 @@ function collectWikiResultPaths(results: readonly { corpus: string; path: string return paths; } -async function waitFor(task: () => Promise, timeoutMs: number = 1500): Promise { +async function waitFor(task: () => Promise, timeoutMs = 1500): Promise { let value: T | undefined; await vi.waitFor( async () => { diff --git a/extensions/minimax/onboard.ts b/extensions/minimax/onboard.ts index 86ece4348cd..b4779f43fd5 100644 --- a/extensions/minimax/onboard.ts +++ b/extensions/minimax/onboard.ts @@ -61,7 +61,7 @@ function applyMinimaxApiConfigWithBaseUrl( export function applyMinimaxApiProviderConfig( cfg: OpenClawConfig, - modelId: string = "MiniMax-M2.7", + modelId = "MiniMax-M2.7", ): OpenClawConfig { return applyMinimaxApiProviderConfigWithBaseUrl(cfg, { providerId: "minimax", @@ -72,7 +72,7 @@ export function applyMinimaxApiProviderConfig( export function applyMinimaxApiConfig( cfg: OpenClawConfig, - modelId: string = "MiniMax-M2.7", + modelId = "MiniMax-M2.7", ): OpenClawConfig { return applyMinimaxApiConfigWithBaseUrl(cfg, { providerId: "minimax", @@ -83,7 +83,7 @@ export function applyMinimaxApiConfig( export function applyMinimaxApiProviderConfigCn( cfg: OpenClawConfig, - modelId: string = "MiniMax-M2.7", + modelId = "MiniMax-M2.7", ): OpenClawConfig { return applyMinimaxApiProviderConfigWithBaseUrl(cfg, { providerId: "minimax", @@ -94,7 +94,7 @@ export function applyMinimaxApiProviderConfigCn( export function applyMinimaxApiConfigCn( cfg: OpenClawConfig, - modelId: string = "MiniMax-M2.7", + modelId = "MiniMax-M2.7", ): OpenClawConfig { return applyMinimaxApiConfigWithBaseUrl(cfg, { providerId: "minimax", diff --git a/extensions/mistral/realtime-transcription-provider.ts b/extensions/mistral/realtime-transcription-provider.ts index 101067503d4..df1a8d24b1f 100644 --- a/extensions/mistral/realtime-transcription-provider.ts +++ b/extensions/mistral/realtime-transcription-provider.ts @@ -200,9 +200,8 @@ function createMistralRealtimeTranscriptionSession( return; case "error": config.onError?.(new Error(readErrorDetail(event))); - return; + default: - return; } }; diff --git a/extensions/msteams/src/reply-dispatcher.test.ts b/extensions/msteams/src/reply-dispatcher.test.ts index 2232ebf58a8..d61b5bf13dc 100644 --- a/extensions/msteams/src/reply-dispatcher.test.ts +++ b/extensions/msteams/src/reply-dispatcher.test.ts @@ -108,7 +108,7 @@ describe("createMSTeamsReplyDispatcher", () => { let lastStreamMock: StreamMock | undefined; function createDispatcher( - conversationType: string = "personal", + conversationType = "personal", msteamsConfig: Record = {}, extraParams: { onSentMessageIds?: (ids: string[]) => void } = {}, ) { diff --git a/extensions/msteams/src/reply-stream-controller.ts b/extensions/msteams/src/reply-stream-controller.ts index 0a104395f28..36c879e9459 100644 --- a/extensions/msteams/src/reply-stream-controller.ts +++ b/extensions/msteams/src/reply-stream-controller.ts @@ -151,7 +151,6 @@ export function createTeamsReplyStreamController(params: { // Starting a reply is not enough to decide that native streaming should // own delivery. Wait for text tokens or explicit progress work so // no-token replies keep the normal block-delivery path. - return; }, onPartialReply(payload: { text?: string }): void { diff --git a/extensions/nextcloud-talk/src/monitor-runtime.ts b/extensions/nextcloud-talk/src/monitor-runtime.ts index b4954536022..da55a221b14 100644 --- a/extensions/nextcloud-talk/src/monitor-runtime.ts +++ b/extensions/nextcloud-talk/src/monitor-runtime.ts @@ -110,7 +110,6 @@ export async function monitorNextcloudTalkProvider( logger.warn( `[nextcloud-talk:${account.accountId}] replayed webhook ignored room=${message.roomToken} messageId=${message.messageId}`, ); - return; } }, onMessage: async () => {}, diff --git a/extensions/nostr/src/metrics.ts b/extensions/nostr/src/metrics.ts index ca494a0a77a..7f243d13318 100644 --- a/extensions/nostr/src/metrics.ts +++ b/extensions/nostr/src/metrics.ts @@ -218,11 +218,7 @@ export function createMetrics(onMetric?: OnMetricCallback): NostrMetrics { return relay; } - function emit( - name: MetricName, - value: number = 1, - labels?: Record, - ): void { + function emit(name: MetricName, value = 1, labels?: Record): void { // Fire callback if provided if (onMetric) { onMetric({ diff --git a/extensions/openai/openai-chatgpt-oauth-flow.runtime.ts b/extensions/openai/openai-chatgpt-oauth-flow.runtime.ts index eacd1bc3a5a..14519118d2b 100644 --- a/extensions/openai/openai-chatgpt-oauth-flow.runtime.ts +++ b/extensions/openai/openai-chatgpt-oauth-flow.runtime.ts @@ -296,7 +296,7 @@ async function refreshAccessToken( } async function createAuthorizationFlow( - originator: string = "openclaw", + originator = "openclaw", ): Promise<{ verifier: string; redirectUri: string; state: string; url: string }> { const [{ verifier, challenge }, runtime] = await Promise.all([ generatePKCE(), diff --git a/extensions/openai/realtime-transcription-provider.ts b/extensions/openai/realtime-transcription-provider.ts index 5a2594fdc0d..9e319aae579 100644 --- a/extensions/openai/realtime-transcription-provider.ts +++ b/extensions/openai/realtime-transcription-provider.ts @@ -199,11 +199,9 @@ function createOpenAIRealtimeTranscriptionSession( } else { config.onError?.(error); } - return; } default: - return; } }; diff --git a/extensions/openai/realtime-voice-provider.ts b/extensions/openai/realtime-voice-provider.ts index 28fc62f15e3..d0f4776be83 100644 --- a/extensions/openai/realtime-voice-provider.ts +++ b/extensions/openai/realtime-voice-provider.ts @@ -1161,11 +1161,9 @@ class OpenAIRealtimeVoiceBridge implements RealtimeVoiceBridge { return; } this.config.onError?.(new Error(detail)); - return; } default: - return; } } diff --git a/extensions/phone-control/index.ts b/extensions/phone-control/index.ts index 331d40e87dd..17b7cc9c16b 100644 --- a/extensions/phone-control/index.ts +++ b/extensions/phone-control/index.ts @@ -375,15 +375,12 @@ export default definePluginEntry({ tick().catch(() => {}); }, 15_000); expiryInterval.unref?.(); - - return; }, stop: async () => { if (expiryInterval) { clearInterval(expiryInterval); expiryInterval = null; } - return; }, }; diff --git a/extensions/qqbot/src/engine/messaging/outbound-media-send.ts b/extensions/qqbot/src/engine/messaging/outbound-media-send.ts index 89068eb04d2..a601e621fde 100644 --- a/extensions/qqbot/src/engine/messaging/outbound-media-send.ts +++ b/extensions/qqbot/src/engine/messaging/outbound-media-send.ts @@ -303,7 +303,7 @@ export async function sendVoice( ctx: MediaTargetContext, voicePath: string, directUploadFormats?: string[], - transcodeEnabled: boolean = true, + transcodeEnabled = true, ): Promise { const resolvedMediaPath = resolveOutboundMediaPath(voicePath, "voice", { allowMissingLocalPath: true, diff --git a/extensions/qqbot/src/engine/utils/audio.ts b/extensions/qqbot/src/engine/utils/audio.ts index b374ebc67ff..90f2232bdb9 100644 --- a/extensions/qqbot/src/engine/utils/audio.ts +++ b/extensions/qqbot/src/engine/utils/audio.ts @@ -37,8 +37,8 @@ function loadSilkWasm(): Promise { export function pcmToWav( pcmData: Uint8Array, sampleRate: number, - channels: number = 1, - bitsPerSample: number = 16, + channels = 1, + bitsPerSample = 16, ): Buffer { const byteRate = sampleRate * channels * (bitsPerSample / 8); const blockAlign = channels * (bitsPerSample / 8); @@ -275,8 +275,8 @@ export async function audioFileToSilkBase64( */ export async function waitForFile( filePath: string, - timeoutMs: number = 30000, - pollMs: number = 500, + timeoutMs = 30000, + pollMs = 500, ): Promise { const start = Date.now(); let lastSize = -1; diff --git a/extensions/signal/src/monitor.tool-result.autostart.test.ts b/extensions/signal/src/monitor.tool-result.autostart.test.ts index a0bc686a474..23b3fe851cf 100644 --- a/extensions/signal/src/monitor.tool-result.autostart.test.ts +++ b/extensions/signal/src/monitor.tool-result.autostart.test.ts @@ -38,7 +38,6 @@ function createAutoAbortController() { const abortController = new AbortController(); streamMock.mockImplementation(async () => { abortController.abort(); - return; }); return abortController; } diff --git a/extensions/slack/src/blocks.test-helpers.ts b/extensions/slack/src/blocks.test-helpers.ts index 0efdb2912ad..61f11f9979b 100644 --- a/extensions/slack/src/blocks.test-helpers.ts +++ b/extensions/slack/src/blocks.test-helpers.ts @@ -35,9 +35,7 @@ vi.mock("./accounts.js", async () => { }); // Kept for compatibility with existing tests; mocks install at module evaluation. -export function installSlackBlockTestMocks() { - return; -} +export function installSlackBlockTestMocks() {} export function createSlackEditTestClient(): SlackEditTestClient { return { diff --git a/extensions/slack/src/monitor/message-handler/dispatch.ts b/extensions/slack/src/monitor/message-handler/dispatch.ts index 9b93c2920fa..4bdfcb4073e 100644 --- a/extensions/slack/src/monitor/message-handler/dispatch.ts +++ b/extensions/slack/src/monitor/message-handler/dispatch.ts @@ -1245,10 +1245,6 @@ export async function dispatchPreparedSlackMessage(prepared: PreparedSlackMessag }); }, }); - - if (result.kind === "preview-finalized") { - return; - } }; const onSlackDeliveryError = (err: unknown, info: { kind: string }) => { runtime.error?.(danger(`slack ${info.kind} reply failed: ${formatSlackError(err)}`)); diff --git a/extensions/slack/src/monitor/message-handler/preview-finalize.ts b/extensions/slack/src/monitor/message-handler/preview-finalize.ts index 50d1cda02c8..df522cde5ad 100644 --- a/extensions/slack/src/monitor/message-handler/preview-finalize.ts +++ b/extensions/slack/src/monitor/message-handler/preview-finalize.ts @@ -105,7 +105,6 @@ export async function finalizeSlackPreviewEdit(params: { client: params.client, ...(params.blocks?.length ? { blocks: params.blocks } : {}), }); - return; } catch (err) { try { const applied = await didSlackPreviewEditApplyAfterError({ diff --git a/extensions/slack/src/monitor/replies.test.ts b/extensions/slack/src/monitor/replies.test.ts index 4db667c8366..2f2469ed2c3 100644 --- a/extensions/slack/src/monitor/replies.test.ts +++ b/extensions/slack/src/monitor/replies.test.ts @@ -53,7 +53,7 @@ describe("deliverReplies identity passthrough", () => { await deliverReplies(baseParams({ identity })); expect(sendMock).toHaveBeenCalledOnce(); - const [, , options] = requireSendCall(); + const options = requireSendCall()[2]; expect(options.identity).toBe(identity); }); @@ -68,7 +68,7 @@ describe("deliverReplies identity passthrough", () => { ); expect(sendMock).toHaveBeenCalledOnce(); - const [, , options] = requireSendCall(); + const options = requireSendCall()[2]; expect(options.identity).toBe(identity); }); @@ -77,7 +77,7 @@ describe("deliverReplies identity passthrough", () => { await deliverReplies(baseParams()); expect(sendMock).toHaveBeenCalledOnce(); - const [, , options] = requireSendCall(); + const options = requireSendCall()[2]; expect(options).not.toHaveProperty("identity"); }); @@ -142,7 +142,7 @@ describe("deliverReplies identity passthrough", () => { ); expect(sendMock).toHaveBeenCalledOnce(); - const [, , options] = requireSendCall(); + const options = requireSendCall()[2]; const blocks = options.blocks as Array<{ type?: string; elements?: Array<{ action_id?: string; style?: string; value?: string }>; diff --git a/extensions/talk-voice/index.test.ts b/extensions/talk-voice/index.test.ts index 0984540bead..5b30985a77f 100644 --- a/extensions/talk-voice/index.test.ts +++ b/extensions/talk-voice/index.test.ts @@ -48,11 +48,7 @@ function createHarness(config: Record) { return { command, runtime }; } -function createCommandContext( - args: string, - channel: string = "discord", - gatewayClientScopes?: string[], -) { +function createCommandContext(args: string, channel = "discord", gatewayClientScopes?: string[]) { return { args, channel, diff --git a/extensions/talk-voice/index.ts b/extensions/talk-voice/index.ts index 3da92e9bea9..50a1f5fd96b 100644 --- a/extensions/talk-voice/index.ts +++ b/extensions/talk-voice/index.ts @@ -9,7 +9,7 @@ import { import { resolveActiveTalkProviderConfig } from "openclaw/plugin-sdk/talk-config-runtime"; import { definePluginEntry, type OpenClawPluginApi } from "./api.js"; -function mask(s: string, keep: number = 6): string { +function mask(s: string, keep = 6): string { const trimmed = s.trim(); if (trimmed.length <= keep) { return "***"; diff --git a/extensions/telegram/src/draft-stream.ts b/extensions/telegram/src/draft-stream.ts index 9762d095c27..eef79aa9aa1 100644 --- a/extensions/telegram/src/draft-stream.ts +++ b/extensions/telegram/src/draft-stream.ts @@ -350,7 +350,6 @@ export function createTelegramDraftStream(params: { } catch (err) { params.warn?.(`telegram stream preview cleanup failed: ${formatErrorMessage(err)}`); } - return; } }; diff --git a/extensions/tlon/src/monitor/index.ts b/extensions/tlon/src/monitor/index.ts index c2abd928a69..0610e2a8daa 100644 --- a/extensions/tlon/src/monitor/index.ts +++ b/extensions/tlon/src/monitor/index.ts @@ -889,9 +889,7 @@ export async function monitorTlonProvider(opts: MonitorTlonOpts = {}): Promise { const { diff --git a/extensions/whatsapp/src/auto-reply.test-harness.ts b/extensions/whatsapp/src/auto-reply.test-harness.ts index c83edbd43f7..3a4ddda171b 100644 --- a/extensions/whatsapp/src/auto-reply.test-harness.ts +++ b/extensions/whatsapp/src/auto-reply.test-harness.ts @@ -136,7 +136,6 @@ async function rmDirWithRetries( maxRetries: attempts, retryDelay: delayMs, }); - return; } catch { // Fall back for older Node implementations (or unexpected retry behavior). for (let attempt = 0; attempt < attempts; attempt += 1) { diff --git a/extensions/whatsapp/src/auto-reply/monitor/group-gating.allowlist-warn.test.ts b/extensions/whatsapp/src/auto-reply/monitor/group-gating.allowlist-warn.test.ts index fdec0d865ba..21d1875776d 100644 --- a/extensions/whatsapp/src/auto-reply/monitor/group-gating.allowlist-warn.test.ts +++ b/extensions/whatsapp/src/auto-reply/monitor/group-gating.allowlist-warn.test.ts @@ -12,10 +12,7 @@ import { type GroupHistoryEntry, } from "./group-gating.js"; -function makeUnregisteredGroupMsg( - conversationId: string, - accountId: string = "default", -): WebInboundMsg { +function makeUnregisteredGroupMsg(conversationId: string, accountId = "default"): WebInboundMsg { return { id: `msg-${conversationId}`, from: conversationId, diff --git a/extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts b/extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts index efc242bad0a..8f7cb60ca94 100644 --- a/extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts +++ b/extensions/whatsapp/src/monitor-inbox.streams-inbound-messages.test-support.ts @@ -345,9 +345,7 @@ describe("web monitor inbox", () => { it("keeps group inbound alive with cached metadata after reconnect-time metadata fetch failures", async () => { const groupMetadataCache: NonNullable = new Map(); - const onMessage = vi.fn(async (_msg: Parameters[0]) => { - return; - }); + const onMessage = vi.fn(async (_msg: Parameters[0]) => {}); const firstSock = getSock(); firstSock.groupFetchAllParticipating.mockResolvedValueOnce({ @@ -463,9 +461,7 @@ describe("web monitor inbox", () => { resolveHydration = () => resolve({}); }); sock.groupFetchAllParticipating.mockImplementationOnce(() => pendingHydration); - const onMessage = vi.fn(async () => { - return; - }); + const onMessage = vi.fn(async () => {}); const { listener } = await startInboxMonitor(onMessage as InboxOnMessage); sock.ev.emit( @@ -813,9 +809,7 @@ describe("web monitor inbox", () => { }); it("deduplicates redelivered messages by id", async () => { - const onMessage = vi.fn(async () => { - return; - }); + const onMessage = vi.fn(async () => {}); const { listener, sock } = await startInboxMonitor(onMessage as InboxOnMessage); const upsert = buildNotifyMessageUpsert({ @@ -867,9 +861,7 @@ describe("web monitor inbox", () => { }); it("resolves LID JIDs using Baileys LID mapping store", async () => { - const onMessage = vi.fn(async () => { - return; - }); + const onMessage = vi.fn(async () => {}); const { listener, sock } = await startInboxMonitor(onMessage as InboxOnMessage); const getPNForLID = vi.spyOn(sock.signalRepository.lidMapping, "getPNForLID"); @@ -895,9 +887,7 @@ describe("web monitor inbox", () => { }); it("resolves LID JIDs via authDir mapping files", async () => { - const onMessage = vi.fn(async () => { - return; - }); + const onMessage = vi.fn(async () => {}); fsSync.writeFileSync( path.join(getAuthDir(), "lid-mapping-555_reverse.json"), JSON.stringify("1555"), @@ -926,9 +916,7 @@ describe("web monitor inbox", () => { }); it("resolves group participant LID JIDs via Baileys mapping", async () => { - const onMessage = vi.fn(async () => { - return; - }); + const onMessage = vi.fn(async () => {}); const { listener, sock } = await startInboxMonitor(onMessage as InboxOnMessage); const getPNForLID = vi.spyOn(sock.signalRepository.lidMapping, "getPNForLID"); diff --git a/extensions/xai/realtime-transcription-provider.ts b/extensions/xai/realtime-transcription-provider.ts index a7ff39bffb2..d1c31939c19 100644 --- a/extensions/xai/realtime-transcription-provider.ts +++ b/extensions/xai/realtime-transcription-provider.ts @@ -194,9 +194,8 @@ function createXaiRealtimeTranscriptionSession( } case "error": config.onError?.(new Error(readErrorDetail(event.error ?? event.message))); - return; + default: - return; } }; diff --git a/packages/agent-core/src/harness/compaction/branch-summarization.ts b/packages/agent-core/src/harness/compaction/branch-summarization.ts index 318c1ce370c..ecf26a15a42 100644 --- a/packages/agent-core/src/harness/compaction/branch-summarization.ts +++ b/packages/agent-core/src/harness/compaction/branch-summarization.ts @@ -161,7 +161,7 @@ function getMessageFromEntry(entry: SessionTreeEntry): AgentMessage | undefined /** Prepare branch entries for summarization within an optional token budget. */ export function prepareBranchEntries( entries: SessionTreeEntry[], - tokenBudget: number = 0, + tokenBudget = 0, ): BranchPreparation { const messages: AgentMessage[] = []; const fileOps = createFileOps(); diff --git a/packages/agent-core/src/harness/env/nodejs.ts b/packages/agent-core/src/harness/env/nodejs.ts index 366d22b8fd3..c42f205a00e 100644 --- a/packages/agent-core/src/harness/env/nodejs.ts +++ b/packages/agent-core/src/harness/env/nodejs.ts @@ -582,7 +582,7 @@ export class NodeExecutionEnv implements ExecutionEnv { } } - async createTempDir(prefix: string = "tmp-"): Promise> { + async createTempDir(prefix = "tmp-"): Promise> { try { return ok(await mkdtemp(join(tmpdir(), prefix))); } catch (error) { diff --git a/scripts/dev/gateway-smoke.ts b/scripts/dev/gateway-smoke.ts index d38cc00f1bb..c64657ebc85 100644 --- a/scripts/dev/gateway-smoke.ts +++ b/scripts/dev/gateway-smoke.ts @@ -30,9 +30,7 @@ async function main() { url: url.toString(), onEvent: (evt) => { // Ignore noisy connect handshakes. - if (evt.event === "connect.challenge") { - return; - } + void evt; }, }); diff --git a/scripts/e2e/kitchen-sink-rpc-walk.mjs b/scripts/e2e/kitchen-sink-rpc-walk.mjs index 40aa1d6bcd4..adbefe6abe9 100644 --- a/scripts/e2e/kitchen-sink-rpc-walk.mjs +++ b/scripts/e2e/kitchen-sink-rpc-walk.mjs @@ -1182,7 +1182,9 @@ async function sampleWindowsPidWithTasklist(pid, run) { if (!line) { return null; } - const [, processIdRaw, , , memoryRaw] = parseTasklistCsvLine(line); + const tasklistFields = parseTasklistCsvLine(line); + const processIdRaw = tasklistFields[1]; + const memoryRaw = tasklistFields[4]; const processId = Number.parseInt(processIdRaw ?? "", 10); const memoryKiB = Number.parseInt((memoryRaw ?? "").replace(/[^\d]/gu, ""), 10); if (!Number.isFinite(memoryKiB)) { diff --git a/scripts/e2e/lib/doctor-install-switch/write-wrapper.mjs b/scripts/e2e/lib/doctor-install-switch/write-wrapper.mjs index 8e92f955708..265abc72f5f 100644 --- a/scripts/e2e/lib/doctor-install-switch/write-wrapper.mjs +++ b/scripts/e2e/lib/doctor-install-switch/write-wrapper.mjs @@ -1,8 +1,8 @@ #!/usr/bin/env node import fs from "node:fs"; -const [, , wrapperPath, npmBin, logPath = `${process.env.HOME}/openclaw-wrapper-argv.log`] = - process.argv; +const [wrapperPath, npmBin, logPath = `${process.env.HOME}/openclaw-wrapper-argv.log`] = + process.argv.slice(2); if (!wrapperPath || !npmBin || !logPath || logPath.startsWith("undefined/")) { console.error("usage: write-wrapper.mjs [log-path]"); diff --git a/scripts/e2e/telegram-user-crabbox-proof.ts b/scripts/e2e/telegram-user-crabbox-proof.ts index 5be442e4e4d..cd0a97de7c3 100644 --- a/scripts/e2e/telegram-user-crabbox-proof.ts +++ b/scripts/e2e/telegram-user-crabbox-proof.ts @@ -724,9 +724,7 @@ function killPidTree(pid: number | undefined) { } catch { try { process.kill(pid, "SIGTERM"); - } catch { - return; - } + } catch {} } } diff --git a/scripts/process-warning-filter.mjs b/scripts/process-warning-filter.mjs index 60eb543e13a..04bd6ed99e6 100644 --- a/scripts/process-warning-filter.mjs +++ b/scripts/process-warning-filter.mjs @@ -26,7 +26,6 @@ export function installProcessWarningFilter() { } Reflect.apply(originalEmitWarning, process, args); - return; }; globalThis[warningFilterKey] = { installed: true }; diff --git a/src/acp/client.ts b/src/acp/client.ts index fa03bf4ec46..50734b09068 100644 --- a/src/acp/client.ts +++ b/src/acp/client.ts @@ -97,10 +97,8 @@ function printSessionUpdate(notification: SessionNotification): void { if (names) { console.log(`\n[commands] ${names}`); } - return; } default: - return; } } diff --git a/src/agents/btw.test.ts b/src/agents/btw.test.ts index 6ff9eb15bb1..a23e6299919 100644 --- a/src/agents/btw.test.ts +++ b/src/agents/btw.test.ts @@ -1009,7 +1009,7 @@ describe("runBtwSideQuestion", () => { expect(result).toEqual({ text: "Bedrock answer." }); expect(requireApiKeyMock).not.toHaveBeenCalled(); - const [, , options] = streamSimpleMock.mock.calls.at(-1) ?? []; + const options = streamSimpleMock.mock.calls.at(-1)?.[2]; expect((options as { apiKey?: string } | undefined)?.apiKey).toBeUndefined(); }); diff --git a/src/agents/cli-output.ts b/src/agents/cli-output.ts index d733c4de1ad..339a2b00cd9 100644 --- a/src/agents/cli-output.ts +++ b/src/agents/cli-output.ts @@ -606,7 +606,6 @@ function dispatchClaudeCliStreamingToolEvent(params: { params.onToolResult, ); } - return; } } diff --git a/src/agents/embedded-agent-runner.sanitize-session-history.test.ts b/src/agents/embedded-agent-runner.sanitize-session-history.test.ts index 7777e8414ac..959d967d38a 100644 --- a/src/agents/embedded-agent-runner.sanitize-session-history.test.ts +++ b/src/agents/embedded-agent-runner.sanitize-session-history.test.ts @@ -171,9 +171,7 @@ describe("sanitizeSessionHistory", () => { const getAssistantContentTypes = (messages: AgentMessage[]) => getAssistantMessage(messages).content.map((block: { type: string }) => block.type); - const makeThinkingAndTextAssistantMessages = ( - thinkingSignature: string = "some_sig", - ): AgentMessage[] => { + const makeThinkingAndTextAssistantMessages = (thinkingSignature = "some_sig"): AgentMessage[] => { const user: UserMessage = { role: "user", content: "hello", diff --git a/src/agents/embedded-agent-runner/model.test-harness.ts b/src/agents/embedded-agent-runner/model.test-harness.ts index 67fe0971b6c..18a66021545 100644 --- a/src/agents/embedded-agent-runner/model.test-harness.ts +++ b/src/agents/embedded-agent-runner/model.test-harness.ts @@ -50,7 +50,7 @@ export function mockOpenAICodexTemplateModel(discoverModelsMock: DiscoverModelsM } export function buildOpenAICodexForwardCompatExpectation( - id: string = "gpt-5.3-codex", + id = "gpt-5.3-codex", ): Partial & { provider: string; id: string; diff --git a/src/agents/embedded-agent-subscribe.handlers.ts b/src/agents/embedded-agent-subscribe.handlers.ts index 9697bcb329e..19bdc25a98d 100644 --- a/src/agents/embedded-agent-subscribe.handlers.ts +++ b/src/agents/embedded-agent-subscribe.handlers.ts @@ -33,7 +33,6 @@ export function createEmbeddedAgentSessionEventHandler(ctx: EmbeddedAgentSubscri return handler(); } catch (err) { ctx.log.debug(`${evt.type} handler failed: ${String(err)}`); - return; } }; @@ -136,9 +135,7 @@ export function createEmbeddedAgentSessionEventHandler(ctx: EmbeddedAgentSubscri scheduleEvent(evt, () => { return handleAgentEnd(ctx); }); - return; default: - return; } }; } diff --git a/src/agents/modes/interactive/components/visual-truncate.ts b/src/agents/modes/interactive/components/visual-truncate.ts index 43a359a0cad..a6c242ffc4f 100644 --- a/src/agents/modes/interactive/components/visual-truncate.ts +++ b/src/agents/modes/interactive/components/visual-truncate.ts @@ -28,7 +28,7 @@ export function truncateToVisualLines( text: string, maxVisualLines: number, width: number, - paddingX: number = 0, + paddingX = 0, ): VisualTruncateResult { if (!text) { return { visualLines: [], skippedCount: 0 }; diff --git a/src/agents/modes/interactive/theme/theme.ts b/src/agents/modes/interactive/theme/theme.ts index 264394c2ce0..edbbd866718 100644 --- a/src/agents/modes/interactive/theme/theme.ts +++ b/src/agents/modes/interactive/theme/theme.ts @@ -806,7 +806,7 @@ export function setRegisteredThemes(themes: Theme[]): void { } } -export function initTheme(themeName?: string, enableWatcher: boolean = false): void { +export function initTheme(themeName?: string, enableWatcher = false): void { const name = themeName ?? getDefaultTheme(); currentThemeName = name; try { @@ -824,7 +824,7 @@ export function initTheme(themeName?: string, enableWatcher: boolean = false): v export function setTheme( name: string, - enableWatcher: boolean = false, + enableWatcher = false, ): { success: boolean; error?: string } { currentThemeName = name; try { diff --git a/src/agents/openclaw-gateway-tool.test.ts b/src/agents/openclaw-gateway-tool.test.ts index b1890f468a4..51474d56919 100644 --- a/src/agents/openclaw-gateway-tool.test.ts +++ b/src/agents/openclaw-gateway-tool.test.ts @@ -65,7 +65,7 @@ function expectGatewayCallFields( method: string, expectedParams: Record, ): Record { - const [, , params] = gatewayCall(method); + const params = gatewayCall(method)[2]; if (params === undefined) { throw new Error(`Expected gateway call params for ${method}`); } diff --git a/src/agents/sessions/package-manager.ts b/src/agents/sessions/package-manager.ts index 7a1a122733e..615cf990b4f 100644 --- a/src/agents/sessions/package-manager.ts +++ b/src/agents/sessions/package-manager.ts @@ -951,9 +951,7 @@ export class DefaultPackageManager implements PackageManager { this.addResource(accumulator.extensions, resolved, metadata, true); } } - } catch { - return; - } + } catch {} } private parseSource(source: string): ParsedSource { diff --git a/src/agents/sessions/resource-loader.ts b/src/agents/sessions/resource-loader.ts index 3c86c8c8534..b52db911198 100644 --- a/src/agents/sessions/resource-loader.ts +++ b/src/agents/sessions/resource-loader.ts @@ -781,7 +781,7 @@ export class DefaultResourceLoader implements ResourceLoader { private loadThemes( paths: string[], - includeDefaults: boolean = true, + includeDefaults = true, ): { themes: Theme[]; diagnostics: ResourceDiagnostic[]; diff --git a/src/agents/sessions/session-manager.ts b/src/agents/sessions/session-manager.ts index 4f1aeaf89bf..932afcf3236 100644 --- a/src/agents/sessions/session-manager.ts +++ b/src/agents/sessions/session-manager.ts @@ -685,12 +685,12 @@ async function listSessionsFromDir( * handles compaction summaries and follows the path from root to current leaf. */ export class SessionManager { - private sessionId: string = ""; + private sessionId = ""; private sessionFile: string | undefined; private sessionDir: string; private cwd: string; private shouldPersist: boolean; - private flushed: boolean = false; + private flushed = false; private fileEntries: FileEntry[] = []; private byId: Map = new Map(); private labelsById: Map = new Map(); diff --git a/src/agents/tool-search.test.ts b/src/agents/tool-search.test.ts index 892ed4f2acb..fbe3bd18c39 100644 --- a/src/agents/tool-search.test.ts +++ b/src/agents/tool-search.test.ts @@ -182,12 +182,13 @@ describe("Tool Search", () => { runId: "run-b", }); - const [, , , runACallTool] = createToolSearchTools({ + const runATools = createToolSearchTools({ sessionId: "session-overlap", sessionKey: "agent:main:main", runId: "run-a", config, }); + const runACallTool = runATools[3]; await runACallTool.execute("call-run-a", { id: "fake_run_a", args: { value: "A" }, @@ -230,12 +231,13 @@ describe("Tool Search", () => { sessionId: "session-catalog-ref", }); - const [, , , callTool] = createToolSearchTools({ + const tools = createToolSearchTools({ sessionId: "session-catalog-ref", runId: "run-local-ref", catalogRef: localRef, config, }); + const callTool = tools[3]; await callTool.execute("call-local-ref", { id: "fake_local_ref", args: { value: "local" }, @@ -454,13 +456,15 @@ describe("Tool Search", () => { sessionKey: "agent:main:main", }); - const [runtimeCodeTool, , , runtimeCallTool] = createToolSearchTools({ + const runtimeTools = createToolSearchTools({ sessionId: "session-lifecycle", sessionKey: "agent:main:main", config: {}, abortSignal: abortController.signal, executeTool, }); + const runtimeCodeTool = runtimeTools[0]; + const runtimeCallTool = runtimeTools[3]; await runtimeCodeTool.execute( "call-lifecycle", { diff --git a/src/agents/tools/music-generate-tool.ts b/src/agents/tools/music-generate-tool.ts index 2c42e9cfeb7..91f4a3b4341 100644 --- a/src/agents/tools/music-generate-tool.ts +++ b/src/agents/tools/music-generate-tool.ts @@ -238,9 +238,6 @@ function validateMusicGenerationCapabilities(params: { ); } } - if (!caps) { - return; - } } type MusicGenerateSandboxConfig = { diff --git a/src/agents/tools/session-status-tool.ts b/src/agents/tools/session-status-tool.ts index c33ed6455e5..4465cd88f1d 100644 --- a/src/agents/tools/session-status-tool.ts +++ b/src/agents/tools/session-status-tool.ts @@ -172,7 +172,8 @@ function listImplicitDefaultDirectFallbackKeys(params: { if (parts.length < 4 || parts[1] !== "default" || parts[2] !== "direct") { return []; } - const [channel, , , ...peerParts] = parts; + const channel = parts[0]; + const peerParts = parts.slice(3); if (!channel || peerParts.length === 0) { return []; } diff --git a/src/agents/utils/tools-manager.ts b/src/agents/utils/tools-manager.ts index c2530cc9668..54312dbc391 100644 --- a/src/agents/utils/tools-manager.ts +++ b/src/agents/utils/tools-manager.ts @@ -376,10 +376,7 @@ const TERMUX_PACKAGES: Record = { // Ensure a tool is available, downloading if necessary // Returns the path to the tool, or null if unavailable -export async function ensureTool( - tool: "fd" | "rg", - silent: boolean = false, -): Promise { +export async function ensureTool(tool: "fd" | "rg", silent = false): Promise { const existingPath = getToolPath(tool); if (existingPath) { return existingPath; diff --git a/src/auto-reply/reply/block-reply-pipeline.ts b/src/auto-reply/reply/block-reply-pipeline.ts index 354d0969594..c6b8b2c0f99 100644 --- a/src/auto-reply/reply/block-reply-pipeline.ts +++ b/src/auto-reply/reply/block-reply-pipeline.ts @@ -121,7 +121,7 @@ export function createBlockReplyPipeline(params: { void coalescer?.flush({ force: true }); }; - const sendPayload = (payload: ReplyPayload, bypassSeenCheck: boolean = false) => { + const sendPayload = (payload: ReplyPayload, bypassSeenCheck = false) => { if (aborted) { return; } diff --git a/src/channels/plugins/contracts/plugins-core.loader.contract.test.ts b/src/channels/plugins/contracts/plugins-core.loader.contract.test.ts index 93f8fff7959..ff0259e6b47 100644 --- a/src/channels/plugins/contracts/plugins-core.loader.contract.test.ts +++ b/src/channels/plugins/contracts/plugins-core.loader.contract.test.ts @@ -170,7 +170,6 @@ describe("channel plugin loader", () => { return; case "missing-outbound": await expectOutboundAdapterMissingCase(testCase.registry); - return; } }); }); diff --git a/src/cli/daemon-cli/lifecycle-core.ts b/src/cli/daemon-cli/lifecycle-core.ts index e626f10f2ba..a37870e5792 100644 --- a/src/cli/daemon-cli/lifecycle-core.ts +++ b/src/cli/daemon-cli/lifecycle-core.ts @@ -367,7 +367,6 @@ export async function runServiceStart(params: { } catch (err) { const hints = params.renderStartHints(); fail(`${params.serviceNoun} start failed: ${String(err)}`, hints); - return; } } diff --git a/src/cli/system-cli.test.ts b/src/cli/system-cli.test.ts index 69d69381ae0..ad69e8bb760 100644 --- a/src/cli/system-cli.test.ts +++ b/src/cli/system-cli.test.ts @@ -101,7 +101,7 @@ describe("system-cli", () => { await runCli(["system", "event", "--text", "ping"]); expect(callGatewayFromCli).toHaveBeenCalledTimes(1); - const [, , params] = gatewayCall(); + const params = gatewayCall()[2]; expect(params).not.toHaveProperty("sessionKey"); }); @@ -109,7 +109,7 @@ describe("system-cli", () => { await runCli(["system", "event", "--text", "ping", "--session-key", " "]); expect(callGatewayFromCli).toHaveBeenCalledTimes(1); - const [, , params] = gatewayCall(); + const params = gatewayCall()[2]; expect(params).not.toHaveProperty("sessionKey"); }); diff --git a/src/commands/configure.gateway-auth.ts b/src/commands/configure.gateway-auth.ts index a375c17add6..664932b7db8 100644 --- a/src/commands/configure.gateway-auth.ts +++ b/src/commands/configure.gateway-auth.ts @@ -183,7 +183,7 @@ export async function promptAuthConfig( prompter: WizardPrompter, ): Promise { let next = cfg; - let authChoice: string = "skip"; + let authChoice = "skip"; let preferredProvider: string | undefined; while (true) { authChoice = await promptAuthChoiceGrouped({ diff --git a/src/commands/doctor-sandbox.ts b/src/commands/doctor-sandbox.ts index de6f2e0a285..90de425ef72 100644 --- a/src/commands/doctor-sandbox.ts +++ b/src/commands/doctor-sandbox.ts @@ -255,20 +255,15 @@ async function handleMissingSandboxImage( : "Build or pull it first."; note(`Sandbox ${params.kind} image missing: ${params.image}. ${buildHint}`, "Sandbox"); - let built = false; if (params.buildScript) { const build = await prompter.confirmRuntimeRepair({ message: `Build ${params.kind} sandbox image now?`, initialValue: true, }); if (build) { - built = await runSandboxScript(params.buildScript, runtime); + await runSandboxScript(params.buildScript, runtime); } } - - if (built) { - return; - } } export async function maybeRepairSandboxImages( diff --git a/src/commands/reset.ts b/src/commands/reset.ts index fe7aca07170..142d04c76e8 100644 --- a/src/commands/reset.ts +++ b/src/commands/reset.ts @@ -149,6 +149,5 @@ export async function resetCommand(runtime: RuntimeEnv, opts: ResetOptions) { ); await removeWorkspaceDirs(workspaceDirs, runtime, { dryRun }); runtime.log(`Next: ${formatCliCommand("openclaw onboard --install-daemon")}`); - return; } } diff --git a/src/config/io.compat.test.ts b/src/config/io.compat.test.ts index a2065725ecd..33eb727de90 100644 --- a/src/config/io.compat.test.ts +++ b/src/config/io.compat.test.ts @@ -21,7 +21,7 @@ async function writeConfig( home: string, dirname: ".openclaw", port: number, - filename: string = "openclaw.json", + filename = "openclaw.json", ) { const dir = path.join(home, dirname); await fs.mkdir(dir, { recursive: true }); diff --git a/src/config/zod-schema.agents.ts b/src/config/zod-schema.agents.ts index 8572457be08..d93e2d0f058 100644 --- a/src/config/zod-schema.agents.ts +++ b/src/config/zod-schema.agents.ts @@ -83,7 +83,6 @@ const AcpBindingSchema = z path: ["match", "peer"], message: "ACP bindings require match.peer.id to target a concrete conversation.", }); - return; } }); diff --git a/src/daemon/launchd.test.ts b/src/daemon/launchd.test.ts index 3bd2f523870..f6ce790a493 100644 --- a/src/daemon/launchd.test.ts +++ b/src/daemon/launchd.test.ts @@ -97,7 +97,6 @@ async function runStopLaunchAgentWithFakeTimers(args: Parameters { if (target === indexPath || target === indexMjsPath) { throw new Error("missing"); } - return; }); const result = await resolveGatewayProgramArguments({ port: 18789 }); diff --git a/src/gateway/client.test.ts b/src/gateway/client.test.ts index 1ee537c9996..5abbe0f38f7 100644 --- a/src/gateway/client.test.ts +++ b/src/gateway/client.test.ts @@ -100,9 +100,7 @@ class MockWebSocket { return; case "error": this.errorHandlers.push(handler as WsEventHandlers["error"]); - return; default: - return; } } diff --git a/src/hooks/bundled/session-memory/transcript.ts b/src/hooks/bundled/session-memory/transcript.ts index fb8c80d8122..d4080258017 100644 --- a/src/hooks/bundled/session-memory/transcript.ts +++ b/src/hooks/bundled/session-memory/transcript.ts @@ -23,7 +23,7 @@ function extractTextMessageContent(content: unknown): string | undefined { export async function getRecentSessionContent( sessionFilePath: string, - messageCount: number = 15, + messageCount = 15, ): Promise { try { const content = await fs.readFile(sessionFilePath, "utf-8"); @@ -63,7 +63,7 @@ export async function getRecentSessionContent( export async function getRecentSessionContentWithResetFallback( sessionFilePath: string, - messageCount: number = 15, + messageCount = 15, ): Promise { const primary = await getRecentSessionContent(sessionFilePath, messageCount); if (primary) { diff --git a/src/infra/approval-handler-runtime.ts b/src/infra/approval-handler-runtime.ts index 79f020cd0aa..e130342b40b 100644 --- a/src/infra/approval-handler-runtime.ts +++ b/src/infra/approval-handler-runtime.ts @@ -176,9 +176,8 @@ async function applyApprovalFinalAction(params: { entry: params.wrapped.entry, phase: params.phase, }); - return; + case "leave": - return; } } diff --git a/src/infra/exec-approvals-allowlist.ts b/src/infra/exec-approvals-allowlist.ts index f8e512995a5..58c866a4d17 100644 --- a/src/infra/exec-approvals-allowlist.ts +++ b/src/infra/exec-approvals-allowlist.ts @@ -590,7 +590,7 @@ function evaluateShellWrapperInlineCommand(params: { function evaluateSegments( segments: ExecCommandSegment[], params: ExecAllowlistContext, - inlineDepth: number = 0, + inlineDepth = 0, ): { satisfied: boolean; matches: ExecAllowlistEntry[]; diff --git a/src/infra/exec-approvals.ts b/src/infra/exec-approvals.ts index c1369293b07..0ba1505e6d6 100644 --- a/src/infra/exec-approvals.ts +++ b/src/infra/exec-approvals.ts @@ -560,7 +560,6 @@ function copyExecApprovalsFallback(tempPath: string, filePath: string): void { function renameExecApprovalsWithFallback(tempPath: string, filePath: string): void { try { fs.renameSync(tempPath, filePath); - return; } catch (err) { const code = (err as NodeJS.ErrnoException).code; // Windows can reject rename-overwrite when another process has a transient diff --git a/src/infra/run-node.test.ts b/src/infra/run-node.test.ts index da236b4642e..95659d2f26b 100644 --- a/src/infra/run-node.test.ts +++ b/src/infra/run-node.test.ts @@ -127,9 +127,7 @@ function createFakeProcess() { } // Launcher plumbing tests do not need the real runtime artifact copier. -async function skipRuntimePostBuild(): Promise { - return; -} +async function skipRuntimePostBuild(): Promise {} async function syncBundledPluginMetadata(params?: { cwd?: string; diff --git a/src/infra/warning-filter.ts b/src/infra/warning-filter.ts index efd9a39449b..f085aa7aac3 100644 --- a/src/infra/warning-filter.ts +++ b/src/infra/warning-filter.ts @@ -92,7 +92,6 @@ export function installProcessWarningFilter(): void { return; } Reflect.apply(originalEmitWarning, process, args); - return; }) as typeof process.emitWarning; process.emitWarning = wrappedEmitWarning; diff --git a/src/logging/diagnostic-run-activity.ts b/src/logging/diagnostic-run-activity.ts index a85936b6114..6f94ee5b373 100644 --- a/src/logging/diagnostic-run-activity.ts +++ b/src/logging/diagnostic-run-activity.ts @@ -377,9 +377,8 @@ function registerDiagnosticRunActivityListener(): void { return; case "run.completed": recordRunCompleted(event); - return; + default: - return; } }); } diff --git a/src/media-understanding/image.test.ts b/src/media-understanding/image.test.ts index 8bc0f4e743f..d7d7a7b8eb3 100644 --- a/src/media-understanding/image.test.ts +++ b/src/media-understanding/image.test.ts @@ -1029,7 +1029,7 @@ describe("describeImageWithModel", () => { await vi.advanceTimersByTimeAsync(25); await assertion; const firstCall = requireFirstMockCall(completeMock, "timed image completion"); - const [, , options] = firstCall; + const options = firstCall[2]; if (!options?.signal) { throw new Error("Expected image completion abort signal"); } @@ -1322,7 +1322,7 @@ describe("describeImageWithModel", () => { timeoutMs: 1000, }); - const [, , options] = requireFirstMockCall(completeMock, "image completion"); + const options = requireFirstMockCall(completeMock, "image completion")[2]; expect(options.maxTokens).toBe(4096); }); @@ -1359,7 +1359,7 @@ describe("describeImageWithModel", () => { timeoutMs: 1000, }); - const [, , options] = requireFirstMockCall(completeMock, "image completion"); + const options = requireFirstMockCall(completeMock, "image completion")[2]; expect(options.maxTokens).toBe(1024); }); }); diff --git a/src/media/store.ts b/src/media/store.ts index 521420bf6de..504b3fdf4bb 100644 --- a/src/media/store.ts +++ b/src/media/store.ts @@ -722,7 +722,7 @@ export async function readMediaBuffer( * @param id The media ID as returned by SavedMedia.id. * @param subdir The subdirectory the file was saved into (default "inbound"). */ -export async function deleteMediaBuffer(id: string, subdir: "inbound" = "inbound"): Promise { +export async function deleteMediaBuffer(id: string, subdir = "inbound"): Promise { const relativePath = resolveMediaRelativePath(id, subdir, "deleteMediaBuffer"); await openMediaStore().remove(relativePath); } diff --git a/src/plugins/discovery.ts b/src/plugins/discovery.ts index 92df3b698d8..3fad2e20c7a 100644 --- a/src/plugins/discovery.ts +++ b/src/plugins/discovery.ts @@ -1420,7 +1420,6 @@ function discoverFromPath(params: { ...(params.managedPluginDirs ? { managedPluginDirs: params.managedPluginDirs } : {}), ...(params.skipRootDirKeys ? { skipRootDirKeys: params.skipRootDirKeys } : {}), }); - return; } } diff --git a/src/realtime-transcription/websocket-session.ts b/src/realtime-transcription/websocket-session.ts index bb88bbca0fe..57f5e67a1c9 100644 --- a/src/realtime-transcription/websocket-session.ts +++ b/src/realtime-transcription/websocket-session.ts @@ -358,7 +358,6 @@ class WebSocketRealtimeTranscriptionSession implements RealtimeTranscript if (!this.closed) { this.reconnecting = false; await this.attemptReconnect(); - return; } } finally { this.reconnecting = false; diff --git a/src/secrets/runtime-config-collectors-tts.ts b/src/secrets/runtime-config-collectors-tts.ts index 295ac9bf244..32eff5fd09d 100644 --- a/src/secrets/runtime-config-collectors-tts.ts +++ b/src/secrets/runtime-config-collectors-tts.ts @@ -52,6 +52,5 @@ export function collectTtsApiKeyAssignments(params: { inactiveReason: params.inactiveReason, }); } - return; } } diff --git a/src/talk/turn-context-tracker.ts b/src/talk/turn-context-tracker.ts index effb1b6d64d..07834b8e69b 100644 --- a/src/talk/turn-context-tracker.ts +++ b/src/talk/turn-context-tracker.ts @@ -143,7 +143,6 @@ export function createRealtimeVoiceTurnContextTracker< if (!turns.includes(handle)) { turns.push(handle); prune(); - return; } }, close(handle) { diff --git a/src/wizard/setup.ts b/src/wizard/setup.ts index 3c7db48f108..92d9cd105a8 100644 --- a/src/wizard/setup.ts +++ b/src/wizard/setup.ts @@ -865,7 +865,7 @@ export async function runSetupWizard( }); const { finalizeSetupWizard } = await import("./setup.finalize.js"); - const { launchedTui } = await finalizeSetupWizard({ + await finalizeSetupWizard({ flow: wizardFlow, opts, baseConfig, @@ -875,7 +875,4 @@ export async function runSetupWizard( prompter, runtime, }); - if (launchedTui) { - return; - } } diff --git a/test/scripts/oxlint-config.test.ts b/test/scripts/oxlint-config.test.ts index 04ed4bc88b0..0e2b03140d9 100644 --- a/test/scripts/oxlint-config.test.ts +++ b/test/scripts/oxlint-config.test.ts @@ -24,6 +24,7 @@ const ZERO_BASELINE_RULES = [ "eslint/no-var", "eslint/no-implicit-coercion", "eslint/no-useless-rename", + "eslint/no-useless-return", "eslint/no-new-wrappers", "eslint/no-else-return", "eslint/no-lonely-if", @@ -42,6 +43,7 @@ const ZERO_BASELINE_RULES = [ "typescript/adjacent-overload-signatures", "typescript/ban-tslint-comment", "typescript/no-import-type-side-effects", + "typescript/no-inferrable-types", "typescript/no-non-null-asserted-nullish-coalescing", "typescript/no-unnecessary-qualifier", "typescript/prefer-find", @@ -58,6 +60,7 @@ const ZERO_BASELINE_RULES = [ "unicorn/no-negation-in-equality-check", "unicorn/no-new-buffer", "unicorn/no-typeof-undefined", + "unicorn/no-unreadable-array-destructuring", "unicorn/no-useless-error-capture-stack-trace", "unicorn/no-zero-fractions", "unicorn/prefer-array-flat", diff --git a/ui/src/ui/app-render.ts b/ui/src/ui/app-render.ts index 55dd57a6e9b..410f4a00ea3 100644 --- a/ui/src/ui/app-render.ts +++ b/ui/src/ui/app-render.ts @@ -1685,11 +1685,9 @@ export function renderApp(state: AppViewState) { case "tools": void loadToolsCatalog(state, agentId); void refreshVisibleToolsEffectiveForCurrentSession(state); - return; case "overview": case "channels": case "cron": - return; } }; const refreshAgentsPanelSupplementalData = (panel: AppViewState["agentsPanel"]) => { diff --git a/ui/src/ui/app-settings.ts b/ui/src/ui/app-settings.ts index d277c7229a1..6ccfc606ff8 100644 --- a/ui/src/ui/app-settings.ts +++ b/ui/src/ui/app-settings.ts @@ -392,11 +392,9 @@ async function refreshAgentsTab(host: SettingsHost, app: SettingsAppHost) { return; case "cron": void loadCron(host); - return; case "overview": case "tools": case undefined: - return; } } diff --git a/ui/src/ui/chat/realtime-talk-gateway-relay.ts b/ui/src/ui/chat/realtime-talk-gateway-relay.ts index 15affbc171c..e6d79be8986 100644 --- a/ui/src/ui/chat/realtime-talk-gateway-relay.ts +++ b/ui/src/ui/chat/realtime-talk-gateway-relay.ts @@ -209,9 +209,8 @@ export class GatewayRelayRealtimeTalkTransport implements RealtimeTalkTransport ); this.stopLocal(); } - return; + default: - return; } } @@ -233,11 +232,7 @@ export class GatewayRelayRealtimeTalkTransport implements RealtimeTalkTransport 1000, ), ); - window.setTimeout(() => { - if (this.closed) { - return; - } - }, delayMs); + window.setTimeout(() => {}, delayMs); } private async handleToolCall(event: Extract) { diff --git a/ui/src/ui/chat/realtime-talk-webrtc.ts b/ui/src/ui/chat/realtime-talk-webrtc.ts index 33784c586b5..b8c315ddbfc 100644 --- a/ui/src/ui/chat/realtime-talk-webrtc.ts +++ b/ui/src/ui/chat/realtime-talk-webrtc.ts @@ -228,9 +228,8 @@ export class WebRtcSdpRealtimeTalkTransport implements RealtimeTalkTransport { final: true, payload: { message: this.extractErrorDetail(event.error) }, }); - return; + default: - return; } } diff --git a/ui/src/ui/chat/slash-commands.browser-import.test.ts b/ui/src/ui/chat/slash-commands.browser-import.test.ts index 163317af830..6b0a2c4817d 100644 --- a/ui/src/ui/chat/slash-commands.browser-import.test.ts +++ b/ui/src/ui/chat/slash-commands.browser-import.test.ts @@ -3,7 +3,7 @@ import { readFile } from "node:fs/promises"; import { describe, expect, it } from "vitest"; type SlashCommandsModule = typeof import("./slash-commands.js"); -const browserImportPath: string = "./slash-commands.ts?browser-import"; +const browserImportPath = "./slash-commands.ts?browser-import"; function importDeclarations(source: string): string[] { return (source.match(/^import[\s\S]*?;$/gmu) ?? []).map((declaration) => diff --git a/ui/src/ui/gateway.ts b/ui/src/ui/gateway.ts index 9715cd16977..4f8fe6ff858 100644 --- a/ui/src/ui/gateway.ts +++ b/ui/src/ui/gateway.ts @@ -828,7 +828,6 @@ export class GatewayBrowserClient { }), ); } - return; } } diff --git a/ui/src/ui/text-direction.ts b/ui/src/ui/text-direction.ts index 8af675f7ec8..fecff940914 100644 --- a/ui/src/ui/text-direction.ts +++ b/ui/src/ui/text-direction.ts @@ -15,7 +15,7 @@ const RTL_CHAR_REGEX = */ export function detectTextDirection( text: string | null, - skipPattern: RegExp = /[\s\p{P}\p{S}]/u, + skipPattern = /[\s\p{P}\p{S}]/u, ): "rtl" | "ltr" { if (!text) { return "ltr";