Skip to content

feat: add remote SSH host support#192

Open
michidk wants to merge 6 commits intomainfrom
feat/remote-host-support
Open

feat: add remote SSH host support#192
michidk wants to merge 6 commits intomainfrom
feat/remote-host-support

Conversation

@michidk
Copy link
Copy Markdown
Owner

@michidk michidk commented Mar 29, 2026

Summary

  • address Support for remote docker hosts #3 by adding remote SSH host support for open and recent, generating vscode-remote://ssh-remote+... URIs and persisting the remote host in history
  • reuse the same launch flow for remote workspaces while keeping existing local devcontainer behavior intact
  • add a Docker-based remote SSH smoke harness and verify the flow end-to-end by opening a real VS Code SSH window through vscli

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5 issues found across 10 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tests/remote-host/smoke.sh">

<violation number="1" location="tests/remote-host/smoke.sh:44">
P2: This smoke command never exercises the remote SSH launch path: `SSH_CONFIG_FILE` is unused and `--dry-run` skips running the editor, so the test can pass without validating the temporary host setup.</violation>
</file>

<file name="src/main.rs">

<violation number="1" location="src/main.rs:87">
P2: This check misses remote/config combinations inherited from history, so `recent` can silently ignore a config when reopening a remote workspace.</violation>
</file>

<file name="tests/remote-host/docker-compose.yml">

<violation number="1" location="tests/remote-host/docker-compose.yml:9">
P2: Bind the test SSH port to localhost so the smoke harness does not expose it beyond the machine running the test.</violation>
</file>

<file name="src/workspace.rs">

<violation number="1" location="src/workspace.rs:303">
P2: Reject user-supplied `--folder-uri` in remote classic mode before appending your own.</violation>
</file>

<file name="src/launch.rs">

<violation number="1" location="src/launch.rs:165">
P1: Remote SSH launches silently ignore `--behavior force-container` and fall back to a plain remote open.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/launch.rs
Comment thread tests/remote-host/smoke.sh Outdated
Comment thread src/main.rs Outdated
Comment thread tests/remote-host/docker-compose.yml Outdated
Comment thread src/workspace.rs
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 3 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/main.rs">

<violation number="1" location="src/main.rs:193">
P1: Default remote reopens from `recent` will error on entries that were previously opened locally with the default `detect` behavior.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/main.rs Outdated
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 5 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/main.rs">

<violation number="1" location="src/main.rs:200">
P2: This now rejects `recent --remote-host` for history entries that merely have a stored `config_path`, even when the user did not pass `--config` in this invocation.</violation>
</file>

<file name="tests/remote-host/smoke.sh">

<violation number="1" location="tests/remote-host/smoke.sh:55">
P3: Assert the full fake-editor argv instead of grepping individual lines.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/main.rs
Comment thread tests/remote-host/smoke.sh
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0 issues found across 1 file (changes from recent commits).

Requires human review: Auto-approval blocked by 1 unresolved issue from previous reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant