From 9b1b774077795a1d94c3f76644b34ba3d6fa34c3 Mon Sep 17 00:00:00 2001 From: AI Bot Date: Wed, 24 Jun 2026 17:22:02 +0300 Subject: [PATCH] fix(cp): always show the Automations panel (empty state) so the compose form is reachable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The panel was hidden when zero automations existed — but the '+ New cross-system automation' button and operator-token field live inside it, so a first automation could never be created. Always render it, with an empty state. --- src/nilscript/controlplane/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/nilscript/controlplane/app.py b/src/nilscript/controlplane/app.py index 634909c..32b6bf7 100644 --- a/src/nilscript/controlplane/app.py +++ b/src/nilscript/controlplane/app.py @@ -1192,7 +1192,8 @@ def index() -> str: const r=await fetch('/api/automations');const {automations}=await r.json(); const wrap=document.getElementById('autoWrap'),box=document.getElementById('automations'); document.getElementById('autocount').textContent=automations.length; - wrap.style.display=automations.length?'block':'none'; + wrap.style.display='block'; // always visible — the compose form + token live here, even with 0 automations + if(!automations.length){box.innerHTML='
No automations yet
Click “+ New cross-system automation” above to build one between two systems — or ask the agent via MCP.
';return;} box.innerHTML=automations.map(a=>{ const nm=(a.name&&(a.name.en||a.name.ar))||a.automation_id; const ps=a.plan_summary||{};