[desktop] 🤖 feat: add remote server connections - #4101
Conversation
Keep the local backend running while a separate window connects to a remote server. --- _Generated with `xum` • Model: `openai:gpt-6-astra` • Thinking: `high` • Cost: `$26.87`_ <!-- mux-attribution: model=openai:gpt-6-astra thinking=high costs=26.87 --> Co-authored-by: Mux <noreply@coder.com>
|
@codex review |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 45af351d59
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Preserve app-proxy paths for connection identity and reconnects. Redirect unavailable remote settings routes. --- _Generated with `xum` • Model: `openai:gpt-6-astra` • Thinking: `high` • Cost: `$49.68`_ <!-- mux-attribution: model=openai:gpt-6-astra thinking=high costs=49.68 --> Co-authored-by: Mux <noreply@coder.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Security Review
Here are some automated security review suggestions for this pull request.
Reviewed commit: 63dc72efcd
ℹ️ About Codex security reviews in GitHub
This is an experimental Codex feature. Security reviews are triggered when:
- You comment "@codex security review"
- A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review
Once complete, Codex will leave suggestions, or a comment if no findings are found.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 63dc72efcd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Use unique editor frame names so remote wrappers reject unsupported launches before recording. Keep browser launch and rollback behavior unchanged. --- _Generated with `xum` • Model: `openai:gpt-6-astra` • Thinking: `high` • Cost: `$29.57`_ <!-- mux-attribution: model=openai:gpt-6-astra thinking=high costs=29.57 -->
Keep app pop-outs and attachments inside the remote session. Reject editor placeholders before the renderer records an editor open. Destroy every remote child window when the connection ends. --- _Generated with `xum` • Model: `openai:gpt-6-astra` • Thinking: `high` • Cost: `$69.72`_ <!-- mux-attribution: model=openai:gpt-6-astra thinking=high costs=69.72 -->
b4b2b23 to
446c42c
Compare
|
@codex review The three popup findings now have fixes and regression coverage. |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This comment has been minimized.
This comment has been minimized.
Keep HTTP available for trusted encrypted tunnels. Explain token exposure and browser secure-context limits before connecting. Leave microphone permission changes for separate work. --- _Generated with `xum` • Model: `openai:gpt-6-astra` • Thinking: `high` • Cost: `$83.84`_ <!-- mux-attribution: model=openai:gpt-6-astra thinking=high costs=83.84 -->
|
@codex review The user chooses warning-only HTTP support to preserve encrypted-tunnel workflows. |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Add a separate Remote Connection settings tab to the Electron app.
Users enter an HTTP(S) server URL and open the remote interface in an isolated window.
Background
Users can run Xum headlessly over SSH and access it through Tailscale.
They also need a desktop client without stopping their local backend or interrupting local tasks.
Behavior
Keep local services and renderer state alive while the remote window runs.
Restore the local interface when the remote window closes or the user disconnects.
Provide Return to Local in the native menu and through Ctrl/Cmd+Shift+L.
Remember the server URL and its app-proxy path without saving URL tokens. Do not connect automatically.
Use the remote server's browser interface and existing authentication flow.
Isolate remote sessions from local credentials and privileged IPC.
Keep terminal and desktop pop-outs inside the isolated remote session.
Support attachment windows, authentication popups, and user-triggered clipboard actions.
Reject built-in editor launches before the updated renderer records an editor-open marker.
Warn before HTTP connections without blocking them. Explain token exposure and secure-context limitations.
Risks
This change affects Electron window lifecycle, navigation guards, clipboard permissions, and local IPC authorization.
Remote windows use sandboxing without the local preload.
The local backend keeps its existing lifecycle.
The user chooses warning-only HTTP support for trusted encrypted tunnels.
Xum does not verify the tunnel. HTTP traffic outside a tunnel can expose authentication tokens and data.
Remote microphone permissions remain separate work.
Generated with
xum• Model:openai:gpt-6-astra• Thinking:high• Cost:$83.84