feat: Add remote SSH workspace support phase 1 - #362
Merged
Conversation
Ziinc
force-pushed
the
claude/treq-pr-359-rebase-xdpq9d
branch
from
August 27, 2026 18:33
a723954 to
55ed289
Compare
Contributor
|
🚀 Web preview: https://preview-362.treq-9zy.pages.dev |
Integrate PR #359's remote SSH feature onto current main: adds a core::remote module (SSH host discovery, readiness checks, remote repo probe/clone/open) with matching Tauri commands and CLI subcommands, wires an "Open via SSH" flow through onboarding and the app menu, threads a remoteHost prop through the terminal panes so PTY sessions can be spawned over ssh, and adds docs/PRDs for the feature. The original PR's crates/treq-napi dispatch layer no longer exists on main (the NAPI crate was removed), so remote commands are exposed only through the existing Tauri command registration, matching how every other command in src-tauri/src/lib.rs is wired.
Defines the provider-neutral managed compute contracts from prds/remote-ssh.md phase 1: a ManagedComputeProvider trait with a normalized instance lifecycle enum, closed size-preset and region sets, a versioned boot manifest, and control-plane request/response types (SSH endpoint model, trusted host keys, idempotent operation envelopes) with a frontend type mirror. Adds a Supabase migration for remote_instances, remote_instance_operations (idempotency-key unique constraint), remote_endpoints, remote_endpoint_host_keys, remote_client_keys, remote_repositories, and remote_audit_events, all RLS-scoped to auth.uid(). No provider, certificate, or SSH transport logic is implemented yet; existing ~/.ssh/config alias discovery is left as-is since it already matches the PRD's discovery-only, no-implicit-trust requirement.
- pty_tests.rs: update all create_session call sites for the new shell_args parameter added to PtyManager::create_session - api-types-remote.ts: reformat OperationStatus union per biome - tauri.conf.json: drop the invalid "long" field from cli plugin arg definitions (not part of the plugin's config schema, caused a PluginInitialization panic on startup) - dialog.tsx: give the shared Dialog component proper role="dialog", aria-modal, and aria-labelledby semantics so the SSH dialog is discoverable by role, fixing the remote-ssh onboarding test timeout
Ziinc
force-pushed
the
claude/treq-pr-359-rebase-xdpq9d
branch
from
August 27, 2026 20:54
32b9f0a to
8a2eb89
Compare
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.
Integrate PR #359's remote SSH feature onto current main: adds a
core::remote module (SSH host discovery, readiness checks, remote
repo probe/clone/open) with matching Tauri commands and CLI
subcommands, wires an "Open via SSH" flow through onboarding and the
app menu, threads a remoteHost prop through the terminal panes so PTY
sessions can be spawned over ssh, and adds docs/PRDs for the feature.
The original PR's crates/treq-napi dispatch layer no longer exists on
main (the NAPI crate was removed), so remote commands are exposed only
through the existing Tauri command registration, matching how every
other command in src-tauri/src/lib.rs is wired.