diff --git a/.github/classifier.json b/.github/classifier.json index 1ca855d5074..32b68800113 100644 --- a/.github/classifier.json +++ b/.github/classifier.json @@ -251,7 +251,6 @@ "terminal-sticky-scroll": {"assign": ["anthonykim1"]}, "terminal-suggest": {"assign": ["meganrogge"]}, "terminal-tabs": {"assign": ["meganrogge"]}, - "terminal-winpty": {"assign": ["anthonykim1"]}, "testing": {"assign": ["connor4312"]}, "themes": {"assign": ["aeschli"]}, "timeline": {"assign": ["lramos15"]}, diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts index de82ba5410d..2e445be00e9 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts @@ -18,8 +18,6 @@ import { assertNoRpc, poll } from '../utils'; extensionContext = global.testExtensionContext; const config = workspace.getConfiguration('terminal.integrated'); - // Disable conpty in integration tests because of https://github.com/microsoft/vscode/issues/76548 - await config.update('windowsEnableConpty', false, ConfigurationTarget.Global); // Disable exit alerts as tests may trigger then and we're not testing the notifications await config.update('showExitAlert', false, ConfigurationTarget.Global); // Canvas may cause problems when running in a container @@ -70,7 +68,7 @@ import { assertNoRpc, poll } from '../utils'; r(terminal); } })); - // Use a single character to avoid winpty/conpty issues with injected sequences + // Use a single character to avoid conpty issues with injected sequences const terminal = window.createTerminal({ env: { TEST: '`' } }); @@ -978,7 +976,7 @@ function sanitizeData(data: string): string { // Strip NL/CR so terminal dimensions don't impact tests data = data.replace(/[\r\n]/g, ''); - // Strip escape sequences so winpty/conpty doesn't cause flakiness, do for all platforms for + // Strip escape sequences so conpty doesn't cause flakiness, do for all platforms for // consistency const CSI_SEQUENCE = /(:?(:?\x1b\[|\x9B)[=?>!]?[\d;:]*["$#'* ]?[a-zA-Z@^`{}|~])|(:?\x1b\].*?\x07)/g; data = data.replace(CSI_SEQUENCE, ''); diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts index 44f8fca1c83..3d4de7af0cf 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts @@ -13,8 +13,6 @@ import { assertNoRpc } from '../utils'; suiteSetup(async () => { const config = workspace.getConfiguration('terminal.integrated'); - // Disable conpty in integration tests because of https://github.com/microsoft/vscode/issues/76548 - await config.update('windowsEnableConpty', false, ConfigurationTarget.Global); // Disable exit alerts as tests may trigger then and we're not testing the notifications await config.update('showExitAlert', false, ConfigurationTarget.Global); // Canvas may cause problems when running in a container diff --git a/package-lock.json b/package-lock.json index d6d45b9c4a8..e4fef1db750 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,7 +47,7 @@ "minimist": "^1.2.8", "native-is-elevated": "0.8.0", "native-keymap": "^3.3.5", - "node-pty": "^1.2.0-beta.6", + "node-pty": "^1.2.0-beta.7", "open": "^10.1.2", "tas-client": "0.3.1", "undici": "^7.18.2", @@ -12960,9 +12960,9 @@ } }, "node_modules/node-pty": { - "version": "1.2.0-beta.6", - "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.2.0-beta.6.tgz", - "integrity": "sha512-0ArHUpsE5y6nSRSkbY36l+bjyuZNMjww0pdsBKCbiw/HTFCikJlsbUuyZc60KPdgH/9YhAiqD2BM8a0AOUVrsw==", + "version": "1.2.0-beta.7", + "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.2.0-beta.7.tgz", + "integrity": "sha512-gHvC2HkwXDTqX931r7wBas2WISl7N26g6uOPHItA1OZmPlDwWZqTCWAjO8V3UShE9CEtd+VDawRr/0c8Uf+xiQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 03c85010f01..148ebf80d72 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "minimist": "^1.2.8", "native-is-elevated": "0.8.0", "native-keymap": "^3.3.5", - "node-pty": "^1.2.0-beta.6", + "node-pty": "^1.2.0-beta.7", "open": "^10.1.2", "tas-client": "0.3.1", "undici": "^7.18.2", diff --git a/remote/package-lock.json b/remote/package-lock.json index cbaead12270..8ed8a663e27 100644 --- a/remote/package-lock.json +++ b/remote/package-lock.json @@ -38,7 +38,7 @@ "katex": "^0.16.22", "kerberos": "2.1.1", "minimist": "^1.2.8", - "node-pty": "^1.2.0-beta.6", + "node-pty": "^1.2.0-beta.7", "tas-client": "0.3.1", "vscode-oniguruma": "1.7.0", "vscode-regexpp": "^3.1.0", @@ -1053,9 +1053,9 @@ } }, "node_modules/node-pty": { - "version": "1.2.0-beta.6", - "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.2.0-beta.6.tgz", - "integrity": "sha512-0ArHUpsE5y6nSRSkbY36l+bjyuZNMjww0pdsBKCbiw/HTFCikJlsbUuyZc60KPdgH/9YhAiqD2BM8a0AOUVrsw==", + "version": "1.2.0-beta.7", + "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.2.0-beta.7.tgz", + "integrity": "sha512-gHvC2HkwXDTqX931r7wBas2WISl7N26g6uOPHItA1OZmPlDwWZqTCWAjO8V3UShE9CEtd+VDawRr/0c8Uf+xiQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/remote/package.json b/remote/package.json index 059c59c7241..8d18d28dd39 100644 --- a/remote/package.json +++ b/remote/package.json @@ -33,7 +33,7 @@ "katex": "^0.16.22", "kerberos": "2.1.1", "minimist": "^1.2.8", - "node-pty": "^1.2.0-beta.6", + "node-pty": "^1.2.0-beta.7", "tas-client": "0.3.1", "vscode-oniguruma": "1.7.0", "vscode-regexpp": "^3.1.0", diff --git a/src/vs/base/node/ps.ts b/src/vs/base/node/ps.ts index 88c3db0ef29..40fbfb442f6 100644 --- a/src/vs/base/node/ps.ts +++ b/src/vs/base/node/ps.ts @@ -49,7 +49,6 @@ export function listProcesses(rootPid: number): Promise { function findName(cmd: string): string { const UTILITY_NETWORK_HINT = /--utility-sub-type=network/i; const WINDOWS_CRASH_REPORTER = /--crashes-directory/i; - const WINPTY = /\\pipe\\winpty-control/i; const CONPTY = /conhost\.exe.+--headless/i; const TYPE = /--type=([a-zA-Z-]+)/; @@ -58,11 +57,6 @@ export function listProcesses(rootPid: number): Promise { return 'electron-crash-reporter'; } - // find winpty process - if (WINPTY.exec(cmd)) { - return 'winpty-agent'; - } - // find conpty process if (CONPTY.exec(cmd)) { return 'conpty-agent'; diff --git a/src/vs/platform/terminal/common/terminal.ts b/src/vs/platform/terminal/common/terminal.ts index f21babec2fa..eb64d646a64 100644 --- a/src/vs/platform/terminal/common/terminal.ts +++ b/src/vs/platform/terminal/common/terminal.ts @@ -91,7 +91,6 @@ export const enum TerminalSettingId { EnvironmentChangesRelaunch = 'terminal.integrated.environmentChangesRelaunch', ShowExitAlert = 'terminal.integrated.showExitAlert', SplitCwd = 'terminal.integrated.splitCwd', - WindowsEnableConpty = 'terminal.integrated.windowsEnableConpty', WindowsUseConptyDll = 'terminal.integrated.windowsUseConptyDll', WordSeparators = 'terminal.integrated.wordSeparators', EnableFileLinks = 'terminal.integrated.enableFileLinks', @@ -725,7 +724,6 @@ export interface ITerminalProcessOptions { suggestEnabled: boolean; nonce: string; }; - windowsEnableConpty: boolean; windowsUseConptyDll: boolean; environmentVariableCollections: ISerializableEnvironmentVariableCollections | undefined; workspaceFolder: IWorkspaceFolder | undefined; @@ -751,7 +749,7 @@ export interface IProcessReadyWindowsPty { /** * What pty emulation backend is being used. */ - backend: 'conpty' | 'winpty'; + backend: 'conpty'; /** * The Windows build version (eg. 19045) */ @@ -1025,9 +1023,9 @@ export const enum ShellIntegrationInjectionFailureReason { */ IgnoreShellIntegrationFlag = 'ignoreShellIntegrationFlag', /** - * Shell integration doesn't work with winpty. + * Shell integration doesn't work on older Windows builds that don't support ConPTY. */ - Winpty = 'winpty', + UnsupportedWindowsBuild = 'unsupportedWindowsBuild', /** * We're conservative whether we inject when we don't recognize the arguments used for the * shell as we would prefer launching one without shell integration than breaking their profile. diff --git a/src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts b/src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts index bfc85875cf7..f326709753a 100644 --- a/src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts +++ b/src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts @@ -207,7 +207,7 @@ const enum VSCodeOscPt { * Known properties: * * - `Cwd` - Reports the current working directory to the terminal. - * - `IsWindows` - Reports whether the shell is using a Windows backend like winpty or conpty. + * - `IsWindows` - Reports whether the shell is using a Windows backend (conpty). * This may be used to enable additional heuristics as the positioning of the shell * integration sequences are not guaranteed to be correct. Valid values: `True`, `False`. * - `ContinuationPrompt` - Reports the continuation prompt that is printed at the start of diff --git a/src/vs/platform/terminal/node/terminalEnvironment.ts b/src/vs/platform/terminal/node/terminalEnvironment.ts index 2eaf38e7e39..1d150cd6b8e 100644 --- a/src/vs/platform/terminal/node/terminalEnvironment.ts +++ b/src/vs/platform/terminal/node/terminalEnvironment.ts @@ -82,9 +82,9 @@ export async function getShellIntegrationInjection( if (shellLaunchConfig.ignoreShellIntegration) { return { type: 'failure', reason: ShellIntegrationInjectionFailureReason.IgnoreShellIntegrationFlag }; } - // Shell integration doesn't work with winpty - if (isWindows && (!options.windowsEnableConpty || getWindowsBuildNumber() < 18309)) { - return { type: 'failure', reason: ShellIntegrationInjectionFailureReason.Winpty }; + // Shell integration requires Windows 10 build 18309+ (ConPTY support) + if (isWindows && getWindowsBuildNumber() < 18309) { + return { type: 'failure', reason: ShellIntegrationInjectionFailureReason.UnsupportedWindowsBuild }; } const originalArgs = shellLaunchConfig.args; @@ -103,7 +103,7 @@ export async function getShellIntegrationInjection( const scopedDownShellEnvs = ['PATH', 'VIRTUAL_ENV', 'HOME', 'SHELL', 'PWD']; if (shellLaunchConfig.shellIntegrationEnvironmentReporting) { if (isWindows) { - const enableWindowsEnvReporting = options.windowsUseConptyDll || options.windowsEnableConpty && getWindowsBuildNumber() >= 22631 && shell !== 'bash.exe'; + const enableWindowsEnvReporting = options.windowsUseConptyDll || getWindowsBuildNumber() >= 22631 && shell !== 'bash.exe'; if (enableWindowsEnvReporting) { envMixin['VSCODE_SHELL_ENV_REPORTING'] = scopedDownShellEnvs.join(','); } diff --git a/src/vs/platform/terminal/node/terminalProcess.ts b/src/vs/platform/terminal/node/terminalProcess.ts index 52175027da8..b1117a9304c 100644 --- a/src/vs/platform/terminal/node/terminalProcess.ts +++ b/src/vs/platform/terminal/node/terminalProcess.ts @@ -150,7 +150,7 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess this._initialCwd = cwd; this._properties[ProcessPropertyType.InitialCwd] = this._initialCwd; this._properties[ProcessPropertyType.Cwd] = this._initialCwd; - const useConpty = this._options.windowsEnableConpty && process.platform === 'win32' && getWindowsBuildNumber() >= 18309; + const useConpty = process.platform === 'win32' && getWindowsBuildNumber() >= 18309; const useConptyDll = useConpty && this._options.windowsUseConptyDll; this._ptyOptions = { name, @@ -517,8 +517,8 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess if (!isNumber(cols) || !isNumber(rows)) { return; } - // Ensure that cols and rows are always >= 1, this prevents a native - // exception in winpty. + // Ensure that cols and rows are always >= 1, this prevents a native exception in winpty. + // TODO: Handle this directly on node-pty instead: https://github.com/microsoft/node-pty/issues/877 if (this._ptyProcess) { cols = Math.max(cols, 1); rows = Math.max(rows, 1); @@ -616,7 +616,7 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess getWindowsPty(): IProcessReadyWindowsPty | undefined { return isWindows ? { - backend: hasConptyOption(this._ptyOptions) && this._ptyOptions.useConpty ? 'conpty' : 'winpty', + backend: 'conpty', buildNumber: getWindowsBuildNumber() } : undefined; } diff --git a/src/vs/platform/terminal/test/node/terminalEnvironment.test.ts b/src/vs/platform/terminal/test/node/terminalEnvironment.test.ts index df66e74e185..a4d17386a22 100644 --- a/src/vs/platform/terminal/test/node/terminalEnvironment.test.ts +++ b/src/vs/platform/terminal/test/node/terminalEnvironment.test.ts @@ -6,16 +6,14 @@ /* eslint-disable local/code-no-test-async-suite */ import { deepStrictEqual, ok, strictEqual } from 'assert'; import { homedir, userInfo } from 'os'; -import { isWindows } from '../../../../base/common/platform.js'; import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js'; import { NullLogService } from '../../../log/common/log.js'; import { IProductService } from '../../../product/common/productService.js'; import { ITerminalProcessOptions } from '../../common/terminal.js'; import { getShellIntegrationInjection, getWindowsBuildNumber, IShellIntegrationConfigInjection, type IShellIntegrationInjectionFailure } from '../../node/terminalEnvironment.js'; -const enabledProcessOptions: ITerminalProcessOptions = { shellIntegration: { enabled: true, suggestEnabled: false, nonce: '' }, windowsEnableConpty: true, windowsUseConptyDll: false, environmentVariableCollections: undefined, workspaceFolder: undefined, isScreenReaderOptimized: false }; -const disabledProcessOptions: ITerminalProcessOptions = { shellIntegration: { enabled: false, suggestEnabled: false, nonce: '' }, windowsEnableConpty: true, windowsUseConptyDll: false, environmentVariableCollections: undefined, workspaceFolder: undefined, isScreenReaderOptimized: false }; -const winptyProcessOptions: ITerminalProcessOptions = { shellIntegration: { enabled: true, suggestEnabled: false, nonce: '' }, windowsEnableConpty: false, windowsUseConptyDll: false, environmentVariableCollections: undefined, workspaceFolder: undefined, isScreenReaderOptimized: false }; +const enabledProcessOptions: ITerminalProcessOptions = { shellIntegration: { enabled: true, suggestEnabled: false, nonce: '' }, windowsUseConptyDll: false, environmentVariableCollections: undefined, workspaceFolder: undefined, isScreenReaderOptimized: false }; +const disabledProcessOptions: ITerminalProcessOptions = { shellIntegration: { enabled: false, suggestEnabled: false, nonce: '' }, windowsUseConptyDll: false, environmentVariableCollections: undefined, workspaceFolder: undefined, isScreenReaderOptimized: false }; const pwshExe = process.platform === 'win32' ? 'pwsh.exe' : 'pwsh'; const repoRoot = process.platform === 'win32' ? process.cwd()[0].toLowerCase() + process.cwd().substring(1) : process.cwd(); const logService = new NullLogService(); @@ -38,11 +36,6 @@ suite('platform - terminalEnvironment', async () => { strictEqual((await getShellIntegrationInjection({ executable: pwshExe, args: ['-l', '-NoLogo'], isFeatureTerminal: true }, enabledProcessOptions, defaultEnvironment, logService, productService, true)).type, 'failure'); strictEqual((await getShellIntegrationInjection({ executable: pwshExe, args: ['-l', '-NoLogo'], isFeatureTerminal: false }, enabledProcessOptions, defaultEnvironment, logService, productService, true)).type, 'injection'); }); - if (isWindows) { - test('when on windows with conpty false', async () => { - strictEqual((await getShellIntegrationInjection({ executable: pwshExe, args: ['-l'], isFeatureTerminal: false }, winptyProcessOptions, defaultEnvironment, logService, productService, true)).type, 'failure'); - }); - } }); // These tests are only expected to work on Windows 10 build 18309 and above @@ -239,7 +232,7 @@ suite('platform - terminalEnvironment', async () => { test('should fail for unsupported shell but nonce should still be available', async () => { const customProcessOptions: ITerminalProcessOptions = { shellIntegration: { enabled: true, suggestEnabled: false, nonce: 'custom-nonce-12345' }, - windowsEnableConpty: true, + windowsUseConptyDll: false, environmentVariableCollections: undefined, workspaceFolder: undefined, diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 03975fd67f7..3a1a2c0c388 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -853,7 +853,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { await this._handleOnData(data); })); this._register(xterm.raw.onBinary(data => this._processManager.processBinary(data))); - // Init winpty compat and link handler after process creation as they rely on the + // Init conpty compat and link handler after process creation as they rely on the // underlying process OS this._register(this._processManager.onProcessReady(async (processTraits) => { // Respond to DA1 with basic conformance. Note that including this is required to avoid @@ -2255,8 +2255,9 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { !this._shellLaunchConfig.isExtensionOwnedTerminal && // Not a reconnected or revived terminal !this._shellLaunchConfig.attachPersistentProcess && - // Not a Windows remote using ConPTY (#187084) - !(this._processManager.remoteAuthority && this._terminalConfigurationService.config.windowsEnableConpty && (await this._processManager.getBackendOS()) === OperatingSystem.Windows) + // Not a Windows remote using ConPTY which cannot relaunch (#187084). ConPTY is used on + // Windows builds 18309+. + !(this._processManager.remoteAuthority && (await this._processManager.getBackendOS()) === OperatingSystem.Windows && this._processManager.processTraits?.windowsPty?.buildNumber && this._processManager.processTraits.windowsPty.buildNumber >= 18309) ) { this.relaunch(); return; diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts index 782751e3b89..02b12985084 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts @@ -68,7 +68,7 @@ const enum ProcessType { * * Internal definitions: * - Process: The process launched with the terminalProcess.ts file, or the pty as a whole - * - Pty Process: The pseudoterminal parent process (or the conpty/winpty agent process) + * - Pty Process: The pseudoterminal parent process (or the conpty agent process) * - Shell Process: The pseudoterminal child process (ie. the shell) */ export class TerminalProcessManager extends Disposable implements ITerminalProcessManager { @@ -302,7 +302,6 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce suggestEnabled: this._configurationService.getValue(TerminalContribSettingId.SuggestEnabled), nonce: this.shellIntegrationNonce }, - windowsEnableConpty: this._terminalConfigurationService.config.windowsEnableConpty, windowsUseConptyDll: this._terminalConfigurationService.config.windowsUseConptyDll ?? false, environmentVariableCollections: this._extEnvironmentVariableCollection?.collections ? serializeEnvironmentVariableCollections(this._extEnvironmentVariableCollection.collections) : undefined, workspaceFolder: this._cwdWorkspaceFolder, @@ -509,7 +508,6 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce suggestEnabled: this._configurationService.getValue(TerminalContribSettingId.SuggestEnabled), nonce: this.shellIntegrationNonce }, - windowsEnableConpty: this._terminalConfigurationService.config.windowsEnableConpty, windowsUseConptyDll: this._terminalConfigurationService.config.windowsUseConptyDll ?? false, environmentVariableCollections: this._extEnvironmentVariableCollection ? serializeEnvironmentVariableCollections(this._extEnvironmentVariableCollection.collections) : undefined, workspaceFolder: this._cwdWorkspaceFolder, diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index e725be04c1c..59d0532143f 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -178,7 +178,6 @@ export interface ITerminalConfiguration { environmentChangesRelaunch: boolean; showExitAlert: boolean; splitCwd: 'workspaceRoot' | 'initial' | 'inherited'; - windowsEnableConpty: boolean; windowsUseConptyDll?: boolean; wordSeparators: string; enableFileLinks: 'off' | 'on' | 'notRemote'; diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index d1dc45e4dfa..7431c14b493 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -490,11 +490,6 @@ const terminalConfiguration: IStringDictionary = { ], default: 'inherited' }, - [TerminalSettingId.WindowsEnableConpty]: { - description: localize('terminal.integrated.windowsEnableConpty', "Whether to use ConPTY for Windows terminal process communication (requires Windows 10 build number 18309+). Winpty will be used if this is false."), - type: 'boolean', - default: true - }, [TerminalSettingId.WordSeparators]: { markdownDescription: localize('terminal.integrated.wordSeparators', "A string containing all characters to be considered word separators when double-clicking to select word and in the fallback 'word' link detection. Since this is used for link detection, including characters such as `:` that are used when detecting links will cause the line and column part of links like `file:10:5` to be ignored."), type: 'string', diff --git a/src/vs/workbench/contrib/terminal/test/browser/terminalProcessManager.test.ts b/src/vs/workbench/contrib/terminal/test/browser/terminalProcessManager.test.ts index 514767009f8..70ed6a4426e 100644 --- a/src/vs/workbench/contrib/terminal/test/browser/terminalProcessManager.test.ts +++ b/src/vs/workbench/contrib/terminal/test/browser/terminalProcessManager.test.ts @@ -66,7 +66,7 @@ class TestTerminalInstanceService implements Partial { rows: number, unicodeVersion: '6' | '11', env: any, - windowsEnableConpty: boolean, + options: any, shouldPersist: boolean ) => new TestTerminalChildProcess(shouldPersist), getLatency: () => Promise.resolve([])