Skip to content

Networking/tunnel footprint review: what does agentwire own, and should it? #420

@dotdevdotdev

Description

@dotdevdotdev

Umbrella: shed the service-router tunnel business

Owner-approved 2026-06-18. Review (comment) established: agentwire ships zero tunnel-provider code. The phone→portal "from anywhere" path is already 100% bring-your-own (cloudflared/tailscale, docs-only). The only "tunnel" code is an internal SSH service-router (agentwire tunnels * / tunnels.py) — outbound ssh -L port-forwards auto-spawned at portal startup to reach a service on another box. It only ever served remote-GPU TTS/STT, which is now unused (TTS default = browser/OS voice, STT default = in-process shim). It's inert on single-box installs.

Target posture

agentwire owns the portal's local security boundary (127.0.0.1 default, token-gated LAN opt-in, self-signed TLS — see #396) and SSH-based remote session management (machines list, /api/sessions/remote, ssh -t … tmux attach). It does not own internet exposure or service-routing tunnels — those are bring-your-own, documented but never code.

KEEP (untouched): portal bind/token/TLS (#396); machine add/remove/list; cross-machine sessions + remote terminal-attach (plain SSH, independent of tunnels.py).

Follow-ups

  • Cut the SSH service-router auto-spawn — remove ensure_tunnels from portal startup (__main__.py:802); delete-vs-thin-helper for agentwire tunnels * / tunnels.py / network.py tunnel paths
  • Reframe docs/wiki/deployment/remote-access.md as provider-agnostic BYO-tunnel guide; strip personal solodev.dev specifics; state agentwire ships no tunnel code
  • Strip reverse-tunnel guidance (autossh -R, ~/.local/bin/agentwire-tunnels) from machine add/remove output — keep pure session management
  • Scope network status / network_status to read-only diagnostics (decouple from tunnel management)
  • Single "Exposing the portal" posture doc — what agentwire owns (local boundary) vs BYO (internet exposure), linked from quickstart

Verification

After the cut: a single-box portal starts with no auto-spawned ssh processes; cross-machine session listing + remote terminal-attach still work; docs state the BYO posture plainly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions