Skip to content

Commit 444bf4d

Browse files
committed
refactor: remove /openChat route and chatPanelProvider from URI handler
The /open route with an optional agentId param is the only deep link path for opening the chat panel. The standalone /openChat route and the chatPanelProvider dependency in the URI handler are no longer needed — the chat panel is opened from extension.ts after the remote-authority reload picks up the persisted agentId.
1 parent 5c933a8 commit 444bf4d

File tree

3 files changed

+2
-34
lines changed

3 files changed

+2
-34
lines changed

src/extension.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -235,12 +235,7 @@ export async function activate(ctx: vscode.ExtensionContext): Promise<void> {
235235
);
236236

237237
ctx.subscriptions.push(
238-
registerUriHandler(
239-
serviceContainer,
240-
deploymentManager,
241-
commands,
242-
chatPanelProvider,
243-
),
238+
registerUriHandler(serviceContainer, deploymentManager, commands),
244239
vscode.commands.registerCommand(
245240
"coder.login",
246241
commands.login.bind(commands),

src/uri/uriHandler.ts

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,19 @@ import { CALLBACK_PATH } from "../oauth/utils";
88
import { maybeAskUrl } from "../promptUtils";
99
import { toSafeHost } from "../util";
1010
import { vscodeProposed } from "../vscodeProposed";
11-
import { type ChatPanelProvider } from "../webviews/chat/chatPanelProvider";
1211

1312
interface UriRouteContext {
1413
params: URLSearchParams;
1514
serviceContainer: ServiceContainer;
1615
deploymentManager: DeploymentManager;
1716
commands: Commands;
18-
chatPanelProvider: ChatPanelProvider;
1917
}
2018

2119
type UriRouteHandler = (ctx: UriRouteContext) => Promise<void>;
2220

2321
const routes: Readonly<Record<string, UriRouteHandler>> = {
2422
"/open": handleOpen,
2523
"/openDevContainer": handleOpenDevContainer,
26-
"/openChat": handleOpenChat,
2724
[CALLBACK_PATH]: handleOAuthCallback,
2825
};
2926

@@ -34,20 +31,13 @@ export function registerUriHandler(
3431
serviceContainer: ServiceContainer,
3532
deploymentManager: DeploymentManager,
3633
commands: Commands,
37-
chatPanelProvider: ChatPanelProvider,
3834
): vscode.Disposable {
3935
const output = serviceContainer.getLogger();
4036

4137
return vscode.window.registerUriHandler({
4238
handleUri: async (uri) => {
4339
try {
44-
await routeUri(
45-
uri,
46-
serviceContainer,
47-
deploymentManager,
48-
commands,
49-
chatPanelProvider,
50-
);
40+
await routeUri(uri, serviceContainer, deploymentManager, commands);
5141
} catch (error) {
5242
const message = errToStr(error, "No error message was provided");
5343
output.warn(`Failed to handle URI ${uri.toString()}: ${message}`);
@@ -66,7 +56,6 @@ async function routeUri(
6656
serviceContainer: ServiceContainer,
6757
deploymentManager: DeploymentManager,
6858
commands: Commands,
69-
chatPanelProvider: ChatPanelProvider,
7059
): Promise<void> {
7160
const handler = routes[uri.path];
7261
if (!handler) {
@@ -78,7 +67,6 @@ async function routeUri(
7867
serviceContainer,
7968
deploymentManager,
8069
commands,
81-
chatPanelProvider,
8270
});
8371
}
8472

@@ -201,17 +189,6 @@ async function setupDeployment(
201189
});
202190
}
203191

204-
async function handleOpenChat(ctx: UriRouteContext): Promise<void> {
205-
const { params, serviceContainer, deploymentManager, chatPanelProvider } =
206-
ctx;
207-
208-
const agentId = getRequiredParam(params, "agentId");
209-
210-
await setupDeployment(params, serviceContainer, deploymentManager);
211-
212-
chatPanelProvider.openChat(agentId);
213-
}
214-
215192
async function handleOAuthCallback(ctx: UriRouteContext): Promise<void> {
216193
const { params, serviceContainer } = ctx;
217194
const logger = serviceContainer.getLogger();

test/unit/uri/uriHandler.test.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { SecretsManager } from "@/core/secretsManager";
66
import { CALLBACK_PATH } from "@/oauth/utils";
77
import { maybeAskUrl } from "@/promptUtils";
88
import { registerUriHandler } from "@/uri/uriHandler";
9-
import { type ChatPanelProvider } from "@/webviews/chat/chatPanelProvider";
109

1110
import {
1211
createMockLogger,
@@ -99,13 +98,10 @@ function createTestContext() {
9998
.mocked(vscode.window.showErrorMessage)
10099
.mockResolvedValue(undefined);
101100

102-
const chatPanelProvider = {} as unknown as ChatPanelProvider;
103-
104101
registerUriHandler(
105102
container,
106103
deploymentManager as unknown as DeploymentManager,
107104
commands as unknown as Commands,
108-
chatPanelProvider,
109105
);
110106

111107
return {

0 commit comments

Comments
 (0)