Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a7c0bcad8 | ||
|
|
d8d589ccb2 |
2 changed files with 5 additions and 2 deletions
|
|
@ -214,7 +214,7 @@ title). Its own esbuild bundle (`matrix-accounts.js`); no SSE — it reads
|
||||||
`/api/state` once for the agent picker and otherwise works off two
|
`/api/state` once for the agent picker and otherwise works off two
|
||||||
purpose-built endpoints.
|
purpose-built endpoints.
|
||||||
|
|
||||||
An agent picker (populated from `state.agents`) drives a list of that
|
An agent picker (populated from `state.containers`, the live roster) drives a list of that
|
||||||
agent's configured accounts — name, homeserver, and a token-status dot —
|
agent's configured accounts — name, homeserver, and a token-status dot —
|
||||||
read from `GET /api/matrix-accounts?agent=<name>` →
|
read from `GET /api/matrix-accounts?agent=<name>` →
|
||||||
`{ accounts: [ { name, homeserver, token_present } ] }`. The status
|
`{ accounts: [ { name, homeserver, token_present } ] }`. The status
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,10 @@ async function loadState() {
|
||||||
if (!resp.ok) return;
|
if (!resp.ok) return;
|
||||||
const s = await resp.json();
|
const s = await resp.json();
|
||||||
renderServerWarnings(s.server_warnings);
|
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))
|
.map((a) => (typeof a === 'string' ? a : a && a.name))
|
||||||
.filter(Boolean)
|
.filter(Boolean)
|
||||||
.sort();
|
.sort();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue