helpers/tailscale_tunnel.py.dox.md
tailscale_tunnel.py helper module.tailscale_tunnel.py because this directory is intentionally flat.tailscale_tunnel.py owns the runtime implementation.tailscale_tunnel.py.dox.md owns durable notes about responsibilities, contracts, side effects, and verification for that implementation.TailscaleTunnel (CliTunnelHelper)
stop(self)tailscale_arch()tailscale_archive_url()install_tailscale(notify=...)resolve_tailscaled_binary(binary_path)notify_info(notify, message, data=...)tailscale_socket_args(socket_path=...)tailscale_command(binary_path, args, socket_path=...)tailscale_status(binary_path, socket_path=...)tailscale_funnel_help(binary_path, socket_path=...)compact_output(lines)tailscale_daemon_hint(output)tailscale_daemon_ready(binary_path, socket_path)read_recent_tailscaled_log()start_tailscaled(binary_path, notify=...)stop_managed_tailscaled()tailscale_up_failure_message(output, timed_out=...)run_tailscale_up(binary_path, notify=..., timeout=..., socket_path=...)ensure_tailscale_funnel_command(binary_path, socket_path=...)ensure_tailscale_ready(binary_path, notify=...)TAILSCALE_URL_RE, TAILSCALE_LOGIN_URL_RE, TAILSCALE_STABLE_PACKAGES_URL, TAILSCALE_UP_TIMEOUT, TAILSCALE_FUNNEL_TIMEOUT, TAILSCALE_FUNNEL_HTTPS_PORT, TAILSCALE_DAEMON_START_TIMEOUT, TAILSCALE_RUNTIME_DIR, TAILSCALE_STATE_DIR, TAILSCALE_SOCKET_PATH, TAILSCALE_DAEMON_LOG_PATH, TAILSCALE_DAEMON_PID_PATH.collections, flaredantic, helpers, helpers.cli_tunnel, json, os, pathlib, queue, re, shutil, subprocess, threading, time, urllib.parse, urllib.request.re.compile, Path, files.get_abs_path, cli_tunnel.platform_parts, tailscale_arch, pattern.search, urllib.parse.urljoin, shutil.which, tailscale_archive_url, cli_tunnel.download_file, Path.with_name, sibling.exists, callable, subprocess.run, join, output.lower, tailscale_status, compact_output, resolve_tailscaled_binary, tailscale_daemon_ready.tests/test_tunnel_remote_link.pyNo child DOX files.