Existing issues
KiroCrew version
0.5.0 desktop package (exact build stamp unknown)
Release channel
Insider
How is it installed?
Desktop app
Platform
Not platform-specific
What happened
In the Electron desktop app, submitting a public URL such as https://google.com/ in the Browser panel works for the local dashboard and opens the interactive native browser surface. The same URL submitted from an embedded remote-instance pane instead falls back to the preview iframe and reports Preview server not reachable.
Expected: an Electron-hosted remote pane should use the same interactive native Browser surface as Local Mode for public HTTP(S) URLs.
Steps to reproduce
- Open the Kiro Crew Electron desktop app.
- Connect a remote Kiro Crew instance and select its embedded pane.
- Open a Browser panel in a remote session.
- Submit
https://google.com/ or another public HTTP(S) URL.
- Observe Preview server not reachable instead of the live interactive page.
- Switch to Local Mode and submit the same URL; it opens in Browser — live.
Relevant log output
The remote child frame has no window.browserAPI preload bridge. It attempts the ordinary preview iframe, which is intentionally blocked for arbitrary public origins by the gateway CSP.
Anything else
The remote dashboard is a cross-origin iframe inside InstancesViewport, so Electron preload APIs are unavailable in that child frame. Widening CSP is not the right fix.
A narrow, versioned parent/child lifecycle relay can preserve the trust boundary by requiring both the known warm tunnel origin and the exact iframe contentWindow, namespacing native panel IDs per instance, and allowing only the active pane to open or navigate. Agent commands, CDP, control ownership, and remote session tracking should remain on the remote gateway's Playwright transport.
Scope limitation: this gives public URLs Local/remote parity. Services bound to the remote VPS loopback still require an SSH port forward.
Existing issues
KiroCrew version
0.5.0 desktop package (exact build stamp unknown)
Release channel
Insider
How is it installed?
Desktop app
Platform
Not platform-specific
What happened
In the Electron desktop app, submitting a public URL such as
https://google.com/in the Browser panel works for the local dashboard and opens the interactive native browser surface. The same URL submitted from an embedded remote-instance pane instead falls back to the preview iframe and reports Preview server not reachable.Expected: an Electron-hosted remote pane should use the same interactive native Browser surface as Local Mode for public HTTP(S) URLs.
Steps to reproduce
https://google.com/or another public HTTP(S) URL.Relevant log output
Anything else
The remote dashboard is a cross-origin iframe inside
InstancesViewport, so Electron preload APIs are unavailable in that child frame. Widening CSP is not the right fix.A narrow, versioned parent/child lifecycle relay can preserve the trust boundary by requiring both the known warm tunnel origin and the exact iframe
contentWindow, namespacing native panel IDs per instance, and allowing only the active pane to open or navigate. Agent commands, CDP, control ownership, and remote session tracking should remain on the remote gateway's Playwright transport.Scope limitation: this gives public URLs Local/remote parity. Services bound to the remote VPS loopback still require an SSH port forward.