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 <danial.samiei@gmail.com>
This commit is contained in:
Devin AI 2026-02-16 17:56:37 +00:00
parent 784c058177
commit 6d6a2bdbae
5 changed files with 20 additions and 5 deletions

View file

@ -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)
}

View file

@ -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);
}

View file

@ -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

View file

@ -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);
}

View file

@ -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);
}