coder / coder/vscode-coder

Deep links do not work when the URI is handled by an agent window

Open
#1,087 1 comment 0 reactions 0 assignees View on GitHub
bug upstream
Dominant language
TypeScript
Stars
130
Forks
48
Avg merge
3d 3h
Merged PRs (30d)
15

Description

## Summary

`coder://` / `vscode://coder.coder-remote/open?...` deep links silently do nothing when the editor routes the URI to an "agent window" (VS Code Agents window, Cursor Agents window / Glass). These windows run a restricted extension host that does not load third-party extensions, so the extension is never activated and its registered `vscode.window.registerUriHandler` callback is never invoked.

The renderer logs the URI as handled, so no error is surfaced. The link appears to do nothing.

## Reproduction (as reported for Cursor)

1. Install `coder.coder-remote` 1.15.2.
2. Start Cursor 3.14.7 on Linux with a clean `HOME` and the default `~/.cursor/extensions` directory.
3. Open `cursor://coder.coder-remote/open?workspace=test&url=https://coder.example.com`.
4. Repeat after initialization completes.

Observed: `renderer.log` records the URI as handled, but extension-host initialization does not include `coder.coder-remote`, and there is no activation or URI-handler entry. On the repeat attempt, Cursor invokes `workbench.extensions.installExtension` even though the extension is already installed.

Expected: the installed extension is loaded and its `onUri` handler is invoked.

## Upstream reports

- Cursor forum report and vendor response: https://forum.cursor.com/t/installed-extensions-onuri-handler-is-not-invoked-for-custom-uri/167316
- Cursor confirmed this is a known issue in 3.14.7: `cursor://` links for third-party extensions can be handled in the Agents window, where the extension does not load, so `onUri` does not fire. A fix was said to be prepared.
- Stated workaround: make a normal IDE window active before opening the link. If only the Agents window is open, open a new editor window first, then click the link again.
- Related Cursor reports about extensions not loading in the Agents window:
- https://forum.cursor.com/t/extensions-in-agent-window/156603
- https://forum.cursor.com/t/cursor-3-agents-windows-cannot-load-wsl-extension/156778
- https://forum.cursor.com/t/swift-extension-does-not-activate-in-the-glass-mode/166987
- VS Code has shipped its own Agents window
(https://code.visualstudio.com/docs/agents/run/agents-window), which has the same restricted extension host. Related upstream issues:
- microsoft/vscode#315776 "Can extensions detect that they are running in the agents window"
- microsoft/vscode#315637 "Add a 'Enable in Agent window' in extensions view"
- microsoft/vscode#317460 "Agents Window: MCP server contributed by extension is not available"

## Why this matters

Deep links are the primary entry point from the Coder dashboard ("Open in VS Code" / "Open in Cursor"). If the user's active or only window is an agent window, the flow fails with no feedback.

## Scope

Tracking. The root cause is in the editor, not in this extension, so the work here is likely limited to:

1. Confirming which editors and versions are affected (VS Code stable/insiders, Cursor, Devin, VSCodium).
2. Confirming whether the Cursor fix has shipped and in which version.
3. Deciding whether to document the workaround in the README or in the Coder docs deep-link section.
4. Investigating whether anything in `package.json` (for example an explicit `onUri` activation event, or extension kind metadata) changes whether the extension is loaded in these windows.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.