Desktop invitation destinations — 2026-09-27
On this page
Opt-in two-machine SSH checkIssue #56 adds explicit same-computer, HTTPS and SSH-tunnel invitation destinations. This is unreleased desktop work following alpha.3. The shared invitation wire format and four language clients are unchanged.
Fourteen desktop tests pass, including these new checks:
- Destination previews create no grants. Insecure URLs, embedded credentials, queries/fragments and invalid tunnel ports fail before any invitation is issued.
- A real TCP loopback-forwarding fixture exchanges and reconnects through its application-side port, without changing the host listener or saved host ID. This represents an already established tunnel; it does not qualify an SSH daemon, SSH account or remote server policy.
- A generated private CA signs an HTTPS proxy's leaf certificate. A fresh Node
client with explicit CA trust pairs, reconnects and reads the provider panel
through
/driver/. An untrusted client and a trusted client using the wrong hostname are rejected before exchange. TLS verification is never disabled. - The proxy observes only invited client credentials. Destination preview and invitation creation never send the operator credential to that address.
- The isolated native desktop smoke exercises all three route controls, invalid HTTPS input, actual invitation creation, stale-invitation clearing, proxy-prefix display and both SSH command directions at wide and 390×844 viewports. The forms fit without horizontal overflow and pass the consuming application's strict style CSP.
SSH recipes follow the OpenSSH manual, explicitly
request loopback binds, use -N and fail initial forwarding setup via
ExitOnForwardFailure=yes. They are displayed for the user to run with existing
SSH access; AgenticDriver does not spawn SSH or claim the route is verified.
All data, credentials and hosts in these checks are isolated fixtures. No real provider account, model, application data, firewall, shared service or installed desktop session was changed. Prometheus runs the packaged smoke at both sizes; the issue records the final CI receipt. T3 browser interactions remain unavailable because no automation host is attached.
Opt-in two-machine SSH check
node apps/desktop/scripts/test-ssh-connection.mjs prometheus passed against the
existing pinned SSH host on 2026-09-27. A temporary mock-only desktop host ran on
the workstation. OpenSSH allocated a remote loopback port on Prometheus and
forwarded it back to that host. A Python client running on Prometheus exchanged
the invitation, read protocol 1.0 and discovered only ssh-fixture. Reusing the
invitation was rejected. Linux socket inspection confirmed a loopback-only bind.
SSH host-key verification remained required.
The check revoked its temporary grant, closed its own SSH process and host, and removed its temporary profile. It made zero model calls, wrote no provider credentials to Prometheus, changed no SSH/firewall policy and restarted no shared service. The script requires an explicit existing SSH destination and is excluded from ordinary tests/CI; do not run it against an unselected machine. This receipt qualifies the tested reverse route, not every SSH server policy or the opposite forwarding direction.