From 6d6a2bdbae9f8849eb2f04e52982c04b23e88c00 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 17:56:37 +0000 Subject: [PATCH] Guard Electron service registrations with isWeb check The registerSingleton override from void.web.services.ts was not taking effect because the compiled JS file may not load correctly in dev mode. Instead, skip registering the Electron-only service implementations (that depend on IMainProcessService) when running in web mode. The web stubs from void.web.services.ts then become the only registrations for these 5 services. Co-Authored-By: Danial Piterson --- src/vs/workbench/contrib/void/browser/voidSCMService.ts | 5 ++++- src/vs/workbench/contrib/void/common/mcpService.ts | 5 ++++- src/vs/workbench/contrib/void/common/metricsService.ts | 5 ++++- .../workbench/contrib/void/common/sendLLMMessageService.ts | 5 ++++- src/vs/workbench/contrib/void/common/voidUpdateService.ts | 5 ++++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/contrib/void/browser/voidSCMService.ts b/src/vs/workbench/contrib/void/browser/voidSCMService.ts index e93c4882..02342513 100644 --- a/src/vs/workbench/contrib/void/browser/voidSCMService.ts +++ b/src/vs/workbench/contrib/void/browser/voidSCMService.ts @@ -21,6 +21,7 @@ import { generateUuid } from '../../../../base/common/uuid.js' import { ThrottledDelayer } from '../../../../base/common/async.js' import { CancellationError, isCancellationError } from '../../../../base/common/errors.js' import { registerSingleton, InstantiationType } from '../../../../platform/instantiation/common/extensions.js' +import { isWeb } from '../../../../base/common/platform.js' import { createDecorator, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js' import { Disposable } from '../../../../base/common/lifecycle.js' import { INotificationService } from '../../../../platform/notification/common/notification.js' @@ -227,4 +228,6 @@ class LoadingGenerateCommitMessageAction extends Action2 { registerAction2(GenerateCommitMessageAction) registerAction2(LoadingGenerateCommitMessageAction) -registerSingleton(IGenerateCommitMessageService, GenerateCommitMessageService, InstantiationType.Delayed) +if (!isWeb) { + registerSingleton(IGenerateCommitMessageService, GenerateCommitMessageService, InstantiationType.Delayed) +} diff --git a/src/vs/workbench/contrib/void/common/mcpService.ts b/src/vs/workbench/contrib/void/common/mcpService.ts index 1b559571..3c70309a 100644 --- a/src/vs/workbench/contrib/void/common/mcpService.ts +++ b/src/vs/workbench/contrib/void/common/mcpService.ts @@ -6,6 +6,7 @@ import { URI } from '../../../../base/common/uri.js'; import { Disposable } from '../../../../base/common/lifecycle.js'; import { registerSingleton, InstantiationType } from '../../../../platform/instantiation/common/extensions.js'; +import { isWeb } from '../../../../base/common/platform.js'; import { createDecorator } from '../../../../platform/instantiation/common/instantiation.js'; import { IFileService } from '../../../../platform/files/common/files.js'; import { IPathService } from '../../../services/path/common/pathService.js'; @@ -357,4 +358,6 @@ class MCPService extends Disposable implements IMCPService { // } } -registerSingleton(IMCPService, MCPService, InstantiationType.Eager); +if (!isWeb) { + registerSingleton(IMCPService, MCPService, InstantiationType.Eager); +} diff --git a/src/vs/workbench/contrib/void/common/metricsService.ts b/src/vs/workbench/contrib/void/common/metricsService.ts index 853ca955..389ed43d 100644 --- a/src/vs/workbench/contrib/void/common/metricsService.ts +++ b/src/vs/workbench/contrib/void/common/metricsService.ts @@ -6,6 +6,7 @@ import { createDecorator, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js'; import { ProxyChannel } from '../../../../base/parts/ipc/common/ipc.js'; import { registerSingleton, InstantiationType } from '../../../../platform/instantiation/common/extensions.js'; +import { isWeb } from '../../../../base/common/platform.js'; import { IMainProcessService } from '../../../../platform/ipc/common/mainProcessService.js'; import { localize2 } from '../../../../nls.js'; import { registerAction2, Action2 } from '../../../../platform/actions/common/actions.js'; @@ -50,7 +51,9 @@ export class MetricsService implements IMetricsService { } } -registerSingleton(IMetricsService, MetricsService, InstantiationType.Eager); +if (!isWeb) { + registerSingleton(IMetricsService, MetricsService, InstantiationType.Eager); +} // debugging action diff --git a/src/vs/workbench/contrib/void/common/sendLLMMessageService.ts b/src/vs/workbench/contrib/void/common/sendLLMMessageService.ts index 7618e736..5f74d0c1 100644 --- a/src/vs/workbench/contrib/void/common/sendLLMMessageService.ts +++ b/src/vs/workbench/contrib/void/common/sendLLMMessageService.ts @@ -7,6 +7,7 @@ import { EventLLMMessageOnTextParams, EventLLMMessageOnErrorParams, EventLLMMess import { createDecorator } from '../../../../platform/instantiation/common/instantiation.js'; import { registerSingleton, InstantiationType } from '../../../../platform/instantiation/common/extensions.js'; +import { isWeb } from '../../../../base/common/platform.js'; import { IChannel } from '../../../../base/parts/ipc/common/ipc.js'; import { IMainProcessService } from '../../../../platform/ipc/common/mainProcessService.js'; import { generateUuid } from '../../../../base/common/uuid.js'; @@ -195,5 +196,7 @@ export class LLMMessageService extends Disposable implements ILLMMessageService } } -registerSingleton(ILLMMessageService, LLMMessageService, InstantiationType.Eager); +if (!isWeb) { + registerSingleton(ILLMMessageService, LLMMessageService, InstantiationType.Eager); +} diff --git a/src/vs/workbench/contrib/void/common/voidUpdateService.ts b/src/vs/workbench/contrib/void/common/voidUpdateService.ts index fbf72b54..28006c52 100644 --- a/src/vs/workbench/contrib/void/common/voidUpdateService.ts +++ b/src/vs/workbench/contrib/void/common/voidUpdateService.ts @@ -5,6 +5,7 @@ import { ProxyChannel } from '../../../../base/parts/ipc/common/ipc.js'; import { registerSingleton, InstantiationType } from '../../../../platform/instantiation/common/extensions.js'; +import { isWeb } from '../../../../base/common/platform.js'; import { createDecorator } from '../../../../platform/instantiation/common/instantiation.js'; import { IMainProcessService } from '../../../../platform/ipc/common/mainProcessService.js'; import { VoidCheckUpdateRespose } from './voidUpdateServiceTypes.js'; @@ -41,6 +42,8 @@ export class VoidUpdateService implements IVoidUpdateService { } } -registerSingleton(IVoidUpdateService, VoidUpdateService, InstantiationType.Eager); +if (!isWeb) { + registerSingleton(IVoidUpdateService, VoidUpdateService, InstantiationType.Eager); +}