Subagents (C4): the tree in the activity panel, read-only sessions, findings, stop; agent chats' setting
ci / ui (push) Waiting to run
ci / check (push) Failing after 3s
ci / start (push) Failing after 3s

On the server's /api/v2 (3.4.0, server dev 5d7b79c):
- The activity panel reads GET /chats/{chat}/tree beside the activity and
  draws ui/js/tree.js's rows in a Subagents section, the server panel's words
  and layout: nested by parent, position, phase, context %, state, model,
  mode + request options, messages and the last one, open slots, the ended
  ones folded and dimmed. A team's members are no longer drawn again among
  the tasks. The stream's `tree` frame redraws it.
- A subagent's conversation (/subagents/{id}/transcript, read again every 3 s
  while it works) and its findings open read-only in the panel; Stop asks,
  then POSTs /stop. With an agent chat's device away: the kept tree with the
  server's note, and its 409 sentence for the rest.
- A new agent chat's Subagents chip from /models?kind=agent&device= (each
  model's `subagents`, `agent_subagents.offered` and `device_runs`); an open
  agent chat's from its own `subagents`, as before.
- An approval item's `subagent` names it on the card.
- Progress keys are the spec's own ({{field}}), as the server's catalogues
  have them; SERVER_PENDING is gone, every sentence is translated.

tests/ui reads the server's contract fixtures (scripts/fetch-fixtures.sh ->
tests/ui/fixtures, SOURCE says the commit): status frames, tree, tree frame,
transcript, findings, models?kind=agent, a subagent's approval; six C4 cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
HomerandClaude Opus 5.5 committed 2026-11-10 10:44:35 +00:00
1 parent 89c769c806
commit 4b5b22c7d4
22 files changed
+1400 -181

No files matched your search

+13 -1
View File
@@ -40,7 +40,19 @@ All notable changes to LLeMbas Desktop. The format follows
speed), running a tool and what it runs, waiting for you, waiting for subagents, compacting,
retrying (counting down), stopped or failed -- each with how long it has lasted, kept moving
every second. From a server that sends no such line (before 2.0.0-beta.8), the app shows the
server's own words as before. Translations come with the server's.
server's own words as before. In every language the server has.
- **Subagents, the whole tree** (harness spec 3.4.0, needs the server's 2.0.0-beta.8). The
activity panel shows the main agent and every subagent under the one it reports to: its name and
id, its position, what it is doing right now, how full its context is, its state, model and
mode (with what it may ask for), its messages in the room and the last one, how many slots are
still open, and the ones that ended -- dimmed, with how they ended. Any subagent's conversation
opens read-only, live while it works and after it ended, and so do its findings; a working one
can be stopped (it and those under it). An agent chat's tree comes from its computer; while that
computer is away the panel shows the tree as it last was and says the rest is kept there.
- **Subagents for agent chats.** A new agent chat offers the Subagents setting where the server
says this computer can run them, and an open agent chat where the server offers it for that
chat.
- **A subagent's approval names it**: "Subagent parser (s1), reviews the parser, asks:".
- `tests/ui/`: the page under a headless browser against a stand-in for the app's bridge, with
the server's answers as a table (`node tests/ui/run.mjs`, needs Playwright and a Chromium). CI
runs it on every push (the `ui` job), with Playwright and its Chromium installed for the run.