mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-02 00:09:30 +01:00
Don't show a terminal error when opening remote agent-host sessions (#305744)
This commit is contained in:
@@ -25,6 +25,7 @@ import { SessionsWelcomeVisibleContext } from '../../../common/contextkeys.js';
|
||||
import { IViewsService } from '../../../../workbench/services/views/common/viewsService.js';
|
||||
import { TERMINAL_VIEW_ID } from '../../../../workbench/contrib/terminal/common/terminal.js';
|
||||
import { IWorkbenchLayoutService, Parts } from '../../../../workbench/services/layout/browser/layoutService.js';
|
||||
import { AGENT_HOST_SCHEME } from '../../../../platform/agentHost/common/agentHostUri.js';
|
||||
|
||||
const SessionsTerminalViewVisibleContext = new RawContextKey<boolean>('sessionsTerminalViewVisible', false);
|
||||
|
||||
@@ -38,7 +39,11 @@ function getSessionCwd(session: ISession | undefined): URI | undefined {
|
||||
return undefined;
|
||||
}
|
||||
const repo = session.workspace.get()?.repositories[0];
|
||||
return repo?.workingDirectory ?? repo?.uri;
|
||||
const cwd = repo?.workingDirectory ?? repo?.uri;
|
||||
if (cwd?.scheme === AGENT_HOST_SCHEME) {
|
||||
return undefined;
|
||||
}
|
||||
return cwd;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,6 +14,7 @@ import { TestInstantiationService } from '../../../../../platform/instantiation/
|
||||
import { NullLogService, ILogService } from '../../../../../platform/log/common/log.js';
|
||||
import { ITerminalInstance, ITerminalService } from '../../../../../workbench/contrib/terminal/browser/terminal.js';
|
||||
import { ITerminalCapabilityStore, ICommandDetectionCapability, TerminalCapability } from '../../../../../platform/terminal/common/capabilities/capabilities.js';
|
||||
import { toAgentHostUri } from '../../../../../platform/agentHost/common/agentHostUri.js';
|
||||
import { AgentSessionProviders } from '../../../../../workbench/contrib/chat/browser/agentSessions/agentSessions.js';
|
||||
import { ISessionsChangeEvent, ISessionsManagementService } from '../../../sessions/browser/sessionsManagementService.js';
|
||||
import { IChat, ISession } from '../../../sessions/common/sessionData.js';
|
||||
@@ -665,6 +666,18 @@ suite('SessionsTerminalContribution', () => {
|
||||
// No setActiveInstance calls from visibility update since no commands were run
|
||||
assert.strictEqual(activeInstanceSet.length, activeCountBefore, 'should not call setActiveInstance when no command history exists');
|
||||
});
|
||||
|
||||
// --- Remote agent host sessions ---
|
||||
|
||||
test('falls back to home directory for a background session with a remote agent host repository', async () => {
|
||||
const remoteRepoUri = toAgentHostUri(URI.file('/Users/user/repo'), 'my-server');
|
||||
const session = makeAgentSession({ repository: remoteRepoUri, providerType: AgentSessionProviders.Background });
|
||||
activeSessionObs.set(session, undefined);
|
||||
await tick();
|
||||
|
||||
assert.strictEqual(createdTerminals.length, 1, 'should create a terminal at the home directory');
|
||||
assert.strictEqual(createdTerminals[0].cwd.fsPath, HOME_DIR.fsPath);
|
||||
});
|
||||
});
|
||||
|
||||
function tick(): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user