diff --git a/docs/tools/bash.md b/docs/tools/bash.md index ac0d7afc..43459219 100644 --- a/docs/tools/bash.md +++ b/docs/tools/bash.md @@ -23,14 +23,14 @@ When the task completes (or times out, or the process errors), it surfaces as a todo in the agent's loose-ends (via `get_loose_ends`), carrying the exit code and a `Read()` pointer to the captured output. Handle it on a future turn — unless `wait_seconds` already -delivered the terminal result inline, in which case no todo is created -(see `status` below). +delivered the terminal result inline, in which case the daemon creates +no todo (see `status` below). - `timeout_secs` — kill the task after N seconds and mark it `timed_out`. Omit for no timeout (runs until natural exit). - `wait_seconds` — inline poll before returning (capped at 30). When the task finishes within the window the full status is - returned immediately and no todo is created; when the window expires + returned immediately and the daemon creates no todo; when the window expires the task keeps running and the daemon returns the normal `task started: id=` response. **Defaults to 3** — pass `wait_seconds: 0` to disable inline waiting and always get the immediate response. @@ -55,7 +55,7 @@ Poll the status of a task submitted with `run`. Returns: `wait_seconds` — optional inline poll (capped at 30): when the task finishes within the window the call returns the full status immediately. -Useful to avoid a separate round-trip when the task is expected to +Useful to avoid a separate round-trip when you expect the task to finish soon. Any `status` call (waited or not) that observes a terminal task clears @@ -124,14 +124,14 @@ loose-end follows. ## Relationship to the `execution` tool group -`ToolGroup::Execution` (in `AGENT_DEFAULT`) is the real gate on bash: it -controls whether the `bash` MCP server is rendered into the agent's -claude config at all (`extra_server_required_group` in -`hive-agent/src/mcp_config.rs`), suppressing every `mcp__bash__*` tool +`ToolGroup::Execution` (in `AGENT_DEFAULT`) is the real gate on bash: +`extra_server_required_group` (in `hive-agent/src/mcp_config.rs`) +controls whether the `bash` MCP server reaches the agent's claude +config at all, suppressing every `mcp__bash__*` tool when absent — not just leaving them unused. Its own `tools()` returns `&[]` and stays that way: `mcp__bash__run`/`status`/`kill` belong to a different, out-of-process MCP server (`bash`, not `hyperhive`), so they were never real entries in the `mcp__hyperhive__*` allowlist `tools()` builds — the two dead `["run", "status"]` strings it used to return -matched nothing and have been removed. Removing `execution` from an +matched nothing, so they're gone now. Removing `execution` from an agent's groups **does** remove bash availability.