Repository navigation
exec-chaining: devcontainer on remote ssh - #2
Merged
Merged
Conversation
MythreyaK
force-pushed
the
exec-server
branch
2 times, most recently
from
September 4, 2026 23:33
ba812b7 to
cd181b0
Compare
- add localCtx and remoteCtx interfaces for local/remote spawn support - misc code cleanup for spawn and run opts
Add `FsCtx` and `ExecCtx` over execServer and local for a common runner interface over local and remote contexts. `RemoteExecCtx` wraps execServer. `LocalExecCtx` is just a wrapper around `vscode.workspace.fs*` for filesystem ops and native spawn when on a local machine. On remote session (say ssh), `vscode.Uri` resolves files correctly, but native spawn won't work. So explicitly request execServer into `LocalExecCtx` for spawn when on a remote. All fs and exec/spawn ops now go through `LocalExecCtx` and `RemoteExecCtx`. Window reload/create now correctly appends chain when a remote is detected.
- `getSettings` fetches remote machine's global settings through `execServer` when exec chaining because vscode's `getConfiguration` returns local global settings - update tests / simplify a little skips all the async `getSettings` logic, since they always run with local ctx. remote is TODO.
MythreyaK
force-pushed
the
exec-server
branch
from
September 21, 2026 09:22
cd181b0 to
ae5d19b
Compare
- add `fmtErr` helper for `Error`
- command to open devcontainer.json config (`showDevcontainerFile`)
file now opens it in the active workspace (say, in container)
correctly, instead of attempting to open it on the host
- config watcher improvements:
- extract config watcher to a cmd and reuse that
- set up file watcher only after workspace is ready, using
the previously added `onWorkspaceReady`
- 500ms debounce to the file watcher
- tweak imports in commands.ts
- fix LocalExecCtx's kind. was incorrectly swapped
- fix shared `TextDecoder` in `spawnRemote`. `stdout`
and `stderr` now have their own decoders
- `getRemoteserverConfiguration` fixes:
- pass hostname instead of authority to `findSSHServerInstallPath`
- SSHDestination.parse takes in just the encoded bit, without
the authority
all settings queries now happen through execCtx interface, removing a lot of bad spaghetti mamma mia 🤌
sometimes container builds take too long because of network activity or server delays
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds support for devcontainers on remote ssh machines.
SSH extension counterpart is at jeanp413/open-remote-ssh#291.
To test, download the CI build and install the SSH extension from the linked PR.
Note: Merged, but ssh extension with exec-chaining support is required to test devcontainers on a remote host.