Problem
When using Copilot Chat with agent skills over Remote SSH (Windows client -> Linux remote), the agent receives the skill file path resolved using the client OS convention (Windows path), not the remote host filesystem path. The file read fails silently, and the agent falls back to degraded behavior without the skill context.
Reproduction
- Install a Copilot agent plugin that defines a skill (e.g., via
external.json in an extension pack -- no OS-specific paths in the definition)
- Connect to a Linux remote host via Remote SSH from a Windows client
- The skill/plugin is installed on the remote at
~/.copilot/installed-plugins/_direct/<publisher>--<name>/skills/<skill-name>/SKILL.md
- Invoke the skill in Copilot Chat
Expected
The agent receives the skill file path relative to the remote host filesystem, e.g.:
/home/<user>/.copilot/installed-plugins/_direct/microsoft--Build-CLI/skills/microsoft-build/SKILL.md
Actual
The agent receives a Windows client path:
c:/Users/<user>/.vscode/agent-plugins/github.com/microsoft/Build-CLI/skills/microsoft-build/SKILL.md
This path does not exist on the Linux remote. The file read fails. The agent does not recover (no fallback search for the file on disk), and proceeds without the skill context.
Impact
The skill loaded by name and appeared in the available skills list, but its instructions were never read. In this case it was a Build session catalog skill -- the agent fell back to docs-only search and missed the entire session catalog (the primary output of the skill). The same file was read successfully by Copilot CLI running directly on the same Linux host.
Environment
- VS Code with Remote SSH extension
- Client: Windows
- Remote: Linux
- Copilot Chat with agent mode
- Plugin defined via
external.json (no OS-specific paths in the plugin definition)
Problem
When using Copilot Chat with agent skills over Remote SSH (Windows client -> Linux remote), the agent receives the skill file path resolved using the client OS convention (Windows path), not the remote host filesystem path. The file read fails silently, and the agent falls back to degraded behavior without the skill context.
Reproduction
external.jsonin an extension pack -- no OS-specific paths in the definition)~/.copilot/installed-plugins/_direct/<publisher>--<name>/skills/<skill-name>/SKILL.mdExpected
The agent receives the skill file path relative to the remote host filesystem, e.g.:
Actual
The agent receives a Windows client path:
This path does not exist on the Linux remote. The file read fails. The agent does not recover (no fallback search for the file on disk), and proceeds without the skill context.
Impact
The skill loaded by name and appeared in the available skills list, but its instructions were never read. In this case it was a Build session catalog skill -- the agent fell back to docs-only search and missed the entire session catalog (the primary output of the skill). The same file was read successfully by Copilot CLI running directly on the same Linux host.
Environment
external.json(no OS-specific paths in the plugin definition)