From d8d589ccb2afd99bfe89f1c68a6846e0d863e26b Mon Sep 17 00:00:00 2001 From: iris Date: Thu, 18 Jun 2026 09:39:34 +0200 Subject: [PATCH] dashboard(matrix-accounts): populate agent picker from state containers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The agent dropdown read a non-existent `agents` field on /api/state, so it always rendered empty ("— no agents —"). The endpoint exposes the live roster under `containers` (each entry an object with `.name`). Read that instead; the existing string-or-object map keeps it robust. --- frontend/packages/dashboard/src/matrix-accounts.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/packages/dashboard/src/matrix-accounts.js b/frontend/packages/dashboard/src/matrix-accounts.js index a71a2dd9..e180b12d 100644 --- a/frontend/packages/dashboard/src/matrix-accounts.js +++ b/frontend/packages/dashboard/src/matrix-accounts.js @@ -31,7 +31,10 @@ async function loadState() { if (!resp.ok) return; const s = await resp.json(); renderServerWarnings(s.server_warnings); - agents = (s.agents || []) + // `/api/state` exposes the live roster under `containers` (each entry an + // object carrying `.name`); there is no top-level `agents` field, so the + // picker stays compatible with both string + object shapes defensively. + agents = (s.containers || []) .map((a) => (typeof a === 'string' ? a : a && a.name)) .filter(Boolean) .sort();