{# Panel assembly — conditionally renders each panel only if its data is present. #} {% if state.update and state.update.update_available %}

Helix Context {{ state.update.latest_version }} is available. Installed version: {{ state.update.current_version }}.

{% endif %} {% if state.needs_db_selection %}

No database selected — choose or create one in the dialog.

{% elif state.helix.start_pending %}

Helix is starting — first boot can take a minute while encoders warm up.

{% elif state.helix.availability == "unavailable" or not state.helix.running %}

Helix is stopped. Click Start to launch the server.

{% elif state.helix.availability == "degraded" %}

{{ state.helix.health_message or state.helix.next_action or "Helix is running with degraded health." }}

{% endif %} {# Switchboard + Database render even when helix is stopped — they describe the planned configuration for the next start. #} {% if state.switchboard %} {% include "components/switchboard_panel.html" %} {% endif %} {% if state.database %} {% include "components/database_panel.html" %} {% endif %} {% if state.helix.running %} {% if state.parties %} {% include "components/parties_panel.html" %} {% endif %} {% if state.participants %} {% include "components/participants_panel.html" %} {% endif %} {% if state.all_agents or state.disconnected_agents %} {% include "components/agents_panel.html" %} {% endif %} {% if state.models %} {% include "components/models_panel.html" %} {% endif %} {% if state.tools %} {% include "components/tools_panel.html" %} {% endif %} {% if state.genes %} {% include "components/genes_panel.html" %} {% endif %} {% if state.tokens %} {% include "components/tokens_panel.html" %} {% endif %} {% if state.pipeline %} {% include "components/pipeline_panel.html" %} {% endif %} {% endif %} {% if state.bench %}

Bench instance dev mode

:{{ state.bench.port }} {{ state.bench.genome }} {% if state.bench.running %} {% else %} {% endif %}

Point a subagent's bench-harness at http://127.0.0.1:{{ state.bench.port }} — primary chat stays on the main port.

{% endif %} {# Observability renders whenever the launcher owns (or expects) the sidecar — independent of helix state. #} {% if state.observability %} {% include "components/observability_panel.html" %} {% endif %} {# Diagnostics always renders — surfaces errors, orphans, and paths regardless of whether helix is up. #} {% include "components/diagnostics_panel.html" %}