Watch
0
0
Fork
You've already forked hyperhive
0

docs: drop statements about absent things, state current behaviour

This commit is contained in:
atlas 2026-10-02 09:31:43 +02:00 • committed by mara
commit 788542ba75
6 changed files with 21 additions and 37 deletions

View file

@ -412,10 +412,7 @@ Contents:
The root agent has the meta dir RO-mounted at `/meta/`. The root agent has the meta dir RO-mounted at `/meta/`.
hive-c0re renders containers onto `meta#<n>` at creation, so there is hive-c0re renders containers onto `meta#<n>` at creation.
no `.meta-migration-done` marker to guard a one-shot repoint. A stale
marker file left over from an older hive is inert and the operator can
delete it.
## Destroy vs purge ## Destroy vs purge

View file

@ -284,11 +284,8 @@ reconcile_), so there is no durable-recovery machinery to go wrong.
### Cancel, history ### Cancel, history
Every submit enqueues a fresh DAG; a multi-agent DAG has no single agent
to key a dedup on.
Cancel only applies to DAGs that are still fully queued (an in-flight nix build isn't Cancel only applies to DAGs that are still fully queued (an in-flight nix build isn't
interruptible) — each op is one DAG, so there are no child DAGs to cascade to. interruptible).
Roll-up state: `Failed` if any node failed, else `Running` / `Queued` / Roll-up state: `Failed` if any node failed, else `Running` / `Queued` /
`Cancelled` / `Done`. The snapshot retains the 50 most recent terminal `Cancelled` / `Done`. The snapshot retains the 50 most recent terminal
DAGs — a flat cap over the whole sorted list, not per template, since DAGs — a flat cap over the whole sorted list, not per template, since

View file

@ -129,8 +129,7 @@ loose-end follows.
controls whether the `bash` MCP server reaches the agent's claude controls whether the `bash` MCP server reaches the agent's claude
config at all, suppressing every `mcp__bash__*` tool config at all, suppressing every `mcp__bash__*` tool
when absent — not just leaving them unused. Its own `tools()` returns when absent — not just leaving them unused. Its own `tools()` returns
`&[]`: `mcp__bash__run`/`status`/`kill` belong to a `&[]`: `mcp__bash__run`/`status`/`kill` live on the separate `bash` MCP
different, out-of-process MCP server (`bash`, not `hyperhive`), so they server that `extra_server_required_group` gates, not on the
aren't entries in the `mcp__hyperhive__*` allowlist `tools()` `mcp__hyperhive__*` allowlist `tools()` builds. Removing `execution`
builds. Removing `execution` from an from an agent's groups **does** remove bash availability.
agent's groups **does** remove bash availability.

View file

@ -281,9 +281,7 @@ to discover valid label names before triaging or to audit the label set.
falling back. `--job` selects the job (0-based, default 0); falling back. `--job` selects the job (0-based, default 0);
`--attempt` picks the run attempt for the durable path (default 1; `--attempt` picks the run attempt for the durable path (default 1;
re-runs increment it). `--json` wraps the output. re-runs increment it). `--json` wraps the output.
- `ci-rerun` re-runs CI without pushing an empty commit. Forgejo has no token-usable - `ci-rerun` re-runs CI without pushing an empty commit: it dispatches a
REST endpoint to re-run an _existing_ run (the run-page rerun buttons
are CSRF-gated web routes a token POST 404s), so this dispatches a
**fresh** run of the workflow via the workflow-dispatch API **fresh** run of the workflow via the workflow-dispatch API
(`POST …/actions/workflows/<workflow>/dispatches {"ref":"<branch>"}`). (`POST …/actions/workflows/<workflow>/dispatches {"ref":"<branch>"}`).
Resolve the branch with `--run <n>` (the same run number `ci-log` / Resolve the branch with `--run <n>` (the same run number `ci-log` /

View file

@ -101,8 +101,7 @@ there is no such identity to hold a file open for, so the daemon omits
`--append-system-prompt-file` altogether rather than pointing it at `--append-system-prompt-file` altogether rather than pointing it at
anything task-shaped. anything task-shaped.
⚠️ This applies to every dispatch, not just role-bearing ones — no agent ⚠️ This applies to every dispatch, not just role-bearing ones.
ships roles yet, so today it's the only path in real use.
### A role with no file refuses the call ### A role with no file refuses the call
@ -235,9 +234,8 @@ early exit — and on this box both land inside a second, so a `continue`
that works answers about as fast as it did before. A five-second cap that works answers about as fast as it did before. A five-second cap
bounds the one case neither covers: a child that neither speaks nor bounds the one case neither covers: a child that neither speaks nor
exits, reported as started, with the end-of-turn todo left to say how it exits, reported as started, with the end-of-turn todo left to say how it
goes. That todo still carries every failure that happens later in the goes. That todo carries every failure that happens later in the turn,
turn; it doesn't repeat the miss `continue` already handed the caller starting after the miss `continue` already handed the caller directly.
directly.
## A killed turn ## A killed turn
@ -353,8 +351,7 @@ Everything else in claude's built-in set is absent, in particular the
tools that let a session act outside the run for which it began: peer and tools that let a session act outside the run for which it began: peer and
operator messaging, nested agents (including the stop verb, which takes operator messaging, nested agents (including the stop verb, which takes
an _agent_ id rather than a session), schedule and webhook creation, and an _agent_ id rather than a session), schedule and webhook creation, and
worktree switching. `--allowedTools` would not achieve this exclusion on worktree switching.
its own: it approves prompts in advance rather than restricting anything.
One rule worth knowing before editing any of this: **the daemon never One rule worth knowing before editing any of this: **the daemon never
emits an empty `--tools` value**, and asserts rather than doing so. Not emits an empty `--tools` value**, and asserts rather than doing so. Not

View file

@ -12,9 +12,8 @@ panel for flyouts and long content.
Preact component tree (`Header.tsx` + `StatusChips.tsx` + Preact component tree (`Header.tsx` + `StatusChips.tsx` +
`MetaNav.tsx` + `HeaderPill.tsx`, wired together in `Root.tsx`) — see `MetaNav.tsx` + `HeaderPill.tsx`, wired together in `Root.tsx`) — see
`frontend/packages/agent/src/components/`. This `frontend/packages/agent/src/components/`. This section describes the
section describes the rendered result, not DOM ids — every element is rendered component tree: every element is Preact component output.
Preact component output, not something a selector reaches by id.
**Fixed-overlay header** (`<header class="agent-header">`): frosted **Fixed-overlay header** (`<header class="agent-header">`): frosted
glass — `backdrop-filter: blur` lets scrolled terminal rows show glass — `backdrop-filter: blur` lets scrolled terminal rows show
@ -43,8 +42,7 @@ at a given viewport width. Two columns:
layout choice reintroduces it). layout choice reintroduces it).
- **Pills cluster** (`.agent-header-pills`, right-aligned): status - **Pills cluster** (`.agent-header-pills`, right-aligned): status
badges (`StatusChips.tsx`) and flyout triggers together in one row, badges (`StatusChips.tsx`) and flyout triggers together in one row,
so the header reads as one identity zone + one status/actions zone so the header reads as one identity zone + one status/actions zone:
rather than multiple separate clusters:
- **Alive badge**: `● alive` (green) / `⊘ rate limited` (red) / - **Alive badge**: `● alive` (green) / `⊘ rate limited` (red) /
`◌ needs login` / `◌ logging in` / `○ offline` / `… connecting`. `◌ needs login` / `◌ logging in` / `○ offline` / `… connecting`.
- **State badge**: `💤 idle` / `🧠 thinking` / `📦 compacting` / - **State badge**: `💤 idle` / `🧠 thinking` / `📦 compacting` /
@ -52,8 +50,8 @@ at a given viewport width. Two columns:
- **Model badge** (`model · <name> ▾`): a real picker — selecting it opens - **Model badge** (`model · <name> ▾`): a real picker — selecting it opens
a `Dropdown` of `state.available_models`, selecting one POSTs a `Dropdown` of `state.available_models`, selecting one POSTs
`/api/model` immediately (same endpoint the `/model <name>` slash `/api/model` immediately (same endpoint the `/model <name>` slash
command uses). A visible header badge, not tucked inside a menu — command uses). A header badge: the control and its display sit
control and its display sit together. together.
- **Effort badge** (`effort · <level> ▾`): same shape, `/api/effort`, - **Effort badge** (`effort · <level> ▾`): same shape, `/api/effort`,
shown when `state.available_efforts` is non-empty. shown when `state.available_efforts` is non-empty.
- On an ACP agent both pickers list what its session offers (its - On an ACP agent both pickers list what its session offers (its
@ -84,11 +82,10 @@ at a given viewport width. Two columns:
(`GET /api/state`'s `links` field) also feeds (`GET /api/state`'s `links` field) also feeds
`DashboardState.links` for the dashboard card's icon strip — `DashboardState.links` for the dashboard card's icon strip —
`agent_links()` in hive-agent is the single source of truth for `agent_links()` in hive-agent is the single source of truth for
both. No overflow (`⋯`) menu exists: the dashboard link lives in both. The dashboard link lives in this 🔗 popover; the model/effort
this 🔗 popover; the model/effort pickers are real badges above; pickers are real badges above; and `/new-session` / `/logout` are
and `/new-session` / `/logout` are typed slash commands with their typed slash commands with their own type-twice confirm (see
own type-twice confirm (see below) — a modal doesn't fit a below).
text-input flow.
- `/cancel` (slash command, below) is the only cancel-turn path; the - `/cancel` (slash command, below) is the only cancel-turn path; the
turn-loop state badge already shows `thinking` as the turn-loop state badge already shows `thinking` as the
discoverability cue. discoverability cue.
@ -164,8 +161,7 @@ the checked ids to `POST /api/todos/mark-done`, which dismisses them
from the harness-local store (same effect as `cancel_loose_end(kind: from the harness-local store (same effect as `cancel_loose_end(kind:
"todo")`, just from the web UI instead of the agent's own tool calls). "todo")`, just from the web UI instead of the agent's own tool calls).
The todos flyout is the only per-agent flyout — there is no separate The todos flyout is the only per-agent flyout.
"loose-ends" or "tasks" list.
## Live view ## Live view