{# Managed-listener panel for the IPI tab. Polled by HTMX every ~5s. Renders one card per managed listener plus a read-only card for any detected foreign listener. Empty state is quiet. #}

Managed Listener

{% if not handles and not foreign %}

No tunneled listener active — enable the tunnel toggle on the launcher to start one.

{% endif %} {% for handle in handles %}
{% if handle.state == "running" %} running {% elif handle.state == "adopted" %} adopted {% elif handle.state == "stopping" %} stopping {% elif handle.state == "crashed" %} crashed {% else %} {{ handle.state }} {% endif %} {# Scheme allowlist: only render a clickable link for http(s) URLs. Cloudflared output is trusted-but- verify; a poisoned state file publishing a javascript:/data: URL would otherwise become a browser-executable link on operator click. #} {% if handle.public_url.startswith(('http://', 'https://')) %} {{ handle.public_url }} {% else %} {{ handle.public_url }} {% endif %} {{ handle.provider }} pid {{ handle.pid }} since {{ handle.created_at }}
{% if handle.state == "crashed" %}
Listener crashed{% if handle.exit_code is not none %} (exit code {{ handle.exit_code }}){% endif %}.
{% endif %} {% if handle.state == "adopted" %}

stderr unavailable (listener was adopted from a prior server instance)

{% elif handle.stderr_tail %}
Recent stderr
{% for line in handle.stderr_tail %}{{ line }}
{% endfor %}
{% endif %}
{% if handle.state == "crashed" %} {% else %} {% endif %}
{% endfor %} {% if foreign %}
external External listener detected
{{ foreign.public_url }} {{ foreign.provider }} pid {{ foreign.pid }} manager: {{ foreign.manager or "cli" }}
{% endif %}