fix(#2465): render multi-agent DAG nodes as per-agent subgraph lines

renderQueueEntry flattened entry.nodes into one arrow-joined chain
regardless of which agent each node belongs to. A multi-agent DAG
(e.g. hivectl restart --graceful with several agents) runs independent
per-agent subgraphs concurrently, no cross-agent deps, so joining them
all into one sequential-looking chain misrepresented the actual DAG
shape (mara's report: 'expected one dag that forks after the start
node into the per agent sub dags').

Group nodes by n.agent (stable, first-seen order) and render one
.rqe-nodes line per agent, with a small agent-label chip when the DAG
spans more than one. Single-agent DAGs (the common case) collapse back
to exactly the prior one-line render — no visible change there.
This commit is contained in:
iris 2026-07-15 01:18:15 +02:00 committed by mara
commit 45cdd62116
2 changed files with 47 additions and 18 deletions

View file

@ -161,6 +161,10 @@
.rqe-node-cancelled { opacity: 0.55; text-decoration: line-through; }
.rqe-node-arrow { color: var(--muted); }
.rqe-node-log { margin-left: 0.1em; text-decoration: none; }
/* Per-agent subgraph label, shown only when a DAG's nodes span more than
one agent (independent concurrent subgraphs, one `.rqe-nodes` line each
see renderQueueEntry in builds.js). */
.rqe-node-agent-label { color: var(--amber); margin-right: 0.3em; }
.rqe-step {
flex-basis: 100%;
margin: 0.1em 0 0 1.8em;