diff --git a/docs/agent-lifecycle/approvals.md b/docs/agent-lifecycle/approvals.md index 1b635c09..43e0a272 100644 --- a/docs/agent-lifecycle/approvals.md +++ b/docs/agent-lifecycle/approvals.md @@ -491,7 +491,7 @@ current config — not an editing surface. An agent without the capability sees no other agent's config at all. An agent with the `approvals` tool group submits a change the same way -it makes any other change: **clone the child's config repo from the +it makes any other change: **clone the target agent's config repo from the forge into its own state dir, commit on a branch, open a PR**, and let the operator review and approve it. By design, no second, mount-shaped path reaches the same file without the review. diff --git a/docs/tools/hivectl.md b/docs/tools/hivectl.md index feee22a6..409d462b 100644 --- a/docs/tools/hivectl.md +++ b/docs/tools/hivectl.md @@ -163,7 +163,7 @@ raw rows instead of the table. `agent restart` is the manual equivalent of the MCP `restart` tool — useful when you need to kick a container from the host without -going through the agent hierarchy. For more than one agent at once, use +going through an agent at all. For more than one agent at once, use the top-level `hivectl restart --agents` (or `--agent ` repeated) — it rides a single DAG and reports per-target failures at the end rather than aborting mid-run, instead of shelling out to `agent restart` diff --git a/docs/web-ui/dashboard.md b/docs/web-ui/dashboard.md index 2072387e..9990aa9b 100644 --- a/docs/web-ui/dashboard.md +++ b/docs/web-ui/dashboard.md @@ -56,15 +56,10 @@ surfaces, not tab panes. ## SW4RM tab -**C0NTAINERS** — live containers rendered as a flat, -alphabetically-sorted list. The renderer still walks -`ContainerView.parent` for a depth-first tree with ASCII glyphs -(`├─`, `└─`, `│ ` continuation columns), but that field no longer -exists, so every row sits at depth 0 and the renderer paints no glyph. The tree -sorts alphabetically; -roots likewise. The tree tolerates cycles in the parent graph — -it appends orphaned containers (not reachable from any root) -as roots so no agent disappears. Pulsing red banner at the top +**C0NTAINERS** — live containers as a flat list, one row per +container, sorted alphabetically by agent name. No row nests under +another, none carries an indent or a tree glyph, and every container the +rescan reports gets a row. Pulsing red banner at the top of this section if any two sub-agents hash to the same port (`port_conflicts` from `/api/state`): the operator must rename one of them and rebuild. `lifecycle::{spawn,rebuild}` also @@ -981,27 +976,11 @@ identically.) ### Topology tree -⚠️ **Dormant now that `ContainerView.parent` no longer exists:** -`buildAgentTree` now puts every container at depth 0 and the rules below are -all no-ops — the list renders flat. The walk and the prefix painting are -still in `swarm.js`; retiring them falls to the frontend owner rather -than to this removal. What follows describes what the code -still does, for whoever makes that call. - -The per-row prefix column (`.tree-prefix`) is **DOM-painted, not -text-glyph-painted**: each indent lane is its own positioned `` -so CSS can draw full-height vertical bars that bridge the gap between -sibling rows. Plain text box-drawing characters (`├─`, `└─`, `│ `) -would only paint one text-line tall and leave visible breaks between -the taller-than-one-line container cards, so CSS borders draw the -bars instead: a continuation bar runs the full height of an -ancestor's still-open subtree, and the joint at a row's own depth is -`├` (more siblings below) or `└` (last sibling — the line stops at -the row's icon midline). Exact lane widths and positioning live in -`swarm.js`'s tree-prefix rendering and its paired CSS rules — not -reproduced here since they're tuned in pixel units and will drift. -With every container at depth 0 these rules are all no-ops and the -layout reads like a plain flat list, which is what a hive renders today. +Nothing nests. `swarm.js::buildAgentTree` returns every container at +depth 0 in alphabetical order, and the row builder emits no prefix +column for a depth-0 row — so a container row carries no indent, no +joint and no continuation bar, and the SW4RM list reads as a flat +roster. The `.tree-prefix` lane rules in `dashboard.css` match nothing. ## Selection bar @@ -1032,8 +1011,7 @@ frosted-mauve bar slides up from the bottom of the viewport - `DESTR0Y` / `PURG3` — always available - The `M0V3` picker that used to sit here no longer exists — an agent - has no parent to move it to any more. + That list is the whole set — the bar offers no other bulk action. - **`✕ clear`** button + `Esc` key clear the entire selection. Every render prunes stale selections (agents destroyed while