docs: add running field to get_agent_meta, document stopped-container display (follow-up to #433)

This commit is contained in:
lexis 2026-05-26 00:07:00 +02:00 committed by Mara
commit 04e67aaa03
2 changed files with 39 additions and 22 deletions

View file

@ -227,12 +227,17 @@ it as a stdio child via `--mcp-config`. The hyperhive socket name is
`{state_dir}/hyperhive-status`; survives harness restarts. Pass `{state_dir}/hyperhive-status`; survives harness restarts. Pass
an empty string to clear. an empty string to clear.
- `get_agent_meta(name?)` — fetch identity + status metadata for - `get_agent_meta(name?)` — fetch identity + status metadata for
an agent: `{ name, role, hyperhive_rev, status_text, an agent: `{ name, role, hyperhive_rev, running, status_text,
status_set_at }`. Pass `name` to query a peer (e.g. check status_set_at }`. Pass `name` to query a peer (e.g. check
whether a sub-agent is idle before sending it work). Omit whether a sub-agent is idle before sending it work). Omit
`name` to get your own identity stamp — replaces the previous `name` to get your own identity stamp — replaces the previous
`whoami` tool. Status fields are `None` when the target has `whoami` tool. `running` is `true` when the container is up.
never called `set_status` or has cleared it. When `running` is `false` the host clears live-only sentinel
fields (`status_text`, `status_set_at`, `needs_login`,
`rate_limited`, `ctx_tokens`) before serving the response, so
stale on-disk state never reaches the caller. Status fields are
also `None` when the target has never called `set_status` or
has cleared it.
- `request_next_turn()` — ask the harness to start another turn - `request_next_turn()` — ask the harness to start another turn
immediately after this one ends, even if the inbox is empty. Use for immediately after this one ends, even if the inbox is empty. Use for
multi-turn tasks (long builds, sequential steps) where you want to multi-turn tasks (long builds, sequential steps) where you want to

View file

@ -254,25 +254,37 @@ guess from container state.
the single source of truth. The frontend resolves each the single source of truth. The frontend resolves each
`AgentLink.kind` (`container``http://host:<container.port>`, `AgentLink.kind` (`container``http://host:<container.port>`,
`forge``http://host:3000`, `external` → already absolute). `forge``http://host:3000`, `external` → already absolute).
Status badges follow — `⊘ rate limited` (red, while the harness **When the container is stopped** (`ContainerView.running = false`),
is parked after a 429), `needs login`, `needs update` — in-flight the host clears live-only fields before emitting the state, so
`◐ pending-state…` pill (replaces buttons during operator-initiated the dashboard never renders stale data: the badge chain is
start / stop / restart / rebuild / destroy). Additionally, when a replaced by a single muted `■ not running` badge, the nav-strip
rebuild-queue entry for this agent is `queued` or `running` but no fetch is skipped (the agent web server is down), and the
operator-initiated transient is set, the card surfaces a `building…` / self-reported status text is suppressed. The agent icon goes
`meta-updating…` badge sourced from `rebuildQueueState` (#398) — straight to the dimmed `/favicon.svg` fallback instead of
so the SW4RM tab shows the same rebuild progress visible on the attempting a doomed load from the container's URL. Static fields
SYST3M tab's R3BU1LD QU3U3. Container name + port, and a `needs_update`, `deployed_sha`, `pending_reminders`, `parent`,
`ctx · Nk` chip showing the agent's last-turn context size `config` link — remain visible regardless of run state.
(from `ContainerView.ctx_tokens`, read from the turn-stats When the container is running, status badges follow — `⊘ rate
sqlite on each `build_all` sweep; absent until the first turn). limited` (red, while the harness is parked after a 429), `needs
The chip colour (green / yellow / red) is keyed off the model's login`, `needs update` — in-flight `◐ pending-state…` pill
real context window: `build_all` resolves the last turn's model (replaces buttons during operator-initiated start / stop /
against the host's per-model `contextWindowTokens` config and restart / rebuild / destroy). Additionally, when a rebuild-queue
exposes it as `ContainerView.context_window_tokens`; the badge entry for this agent is `queued` or `running` but no
goes yellow ≥ 50% and red ≥ 75% of that window (the harness operator-initiated transient is set, the card surfaces a
compaction watermarks). When the window can't be resolved the `building…` / `meta-updating…` badge sourced from
badge falls back to fixed 100k / 150k thresholds. (issue #66) `rebuildQueueState` (#398) — so the SW4RM tab shows the same
rebuild progress visible on the SYST3M tab's R3BU1LD QU3U3.
Container name + port, and a `ctx · Nk` chip showing the
agent's last-turn context size (from `ContainerView.ctx_tokens`,
read from the turn-stats sqlite on each `build_all` sweep;
absent until the first turn). The chip colour (green / yellow /
red) is keyed off the model's real context window: `build_all`
resolves the last turn's model against the host's per-model
`contextWindowTokens` config and exposes it as
`ContainerView.context_window_tokens`; the badge goes yellow
≥ 50% and red ≥ 75% of that window (the harness compaction
watermarks). When the window can't be resolved the badge falls
back to fixed 100k / 150k thresholds. (issue #66)
- Line 2: action buttons — `↻ R3BU1LD` always, `DESTR0Y` + `PURG3` - Line 2: action buttons — `↻ R3BU1LD` always, `DESTR0Y` + `PURG3`
on sub-agents, `↺ R3ST4RT` + (sub-agents) `■ ST0P` when running, on sub-agents, `↺ R3ST4RT` + (sub-agents) `■ ST0P` when running,
`▶ ST4RT` when stopped. Buttons dim + disable while a transient `▶ ST4RT` when stopped. Buttons dim + disable while a transient