From 18e0e8fc2bb815b4db3e30d95fcb0c8030e0f473 Mon Sep 17 00:00:00 2001 From: damocles Date: Wed, 3 Jun 2026 21:02:37 +0200 Subject: [PATCH] =?UTF-8?q?rename=20bash=20tools:=20bash=5Frun/bash=5Fstat?= =?UTF-8?q?us=20=E2=86=92=20run/status=20(#1186)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hive-ag3nt/src/mcp.rs | 2 +- hive-bash-mcp/src/bin/mcp.rs | 14 +++++++------- nix/templates/harness-base.nix | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/hive-ag3nt/src/mcp.rs b/hive-ag3nt/src/mcp.rs index edfcdfa8..702df9c0 100644 --- a/hive-ag3nt/src/mcp.rs +++ b/hive-ag3nt/src/mcp.rs @@ -2003,7 +2003,7 @@ pub const SERVER_NAME: &str = "hyperhive"; /// exist in the session. Web egress (`WebFetch`/`WebSearch`) are /// tool-group-gated (`web_tools`) — off by default. Nested agents /// (`Task`) are intentionally omitted. `Bash` is disallowed — shell -/// execution goes through `mcp__hive_bash__bash_run` (background tasks +/// execution goes through `mcp__bash__run` (background tasks /// with structured output via `hive-bash-mcp`) instead of a raw interactive shell. `TodoWrite` /// is omitted because the todo list lives in claude's in-process session /// state and silently evaporates on /compact or session reset — agents diff --git a/hive-bash-mcp/src/bin/mcp.rs b/hive-bash-mcp/src/bin/mcp.rs index 90c5a047..e69b44d8 100644 --- a/hive-bash-mcp/src/bin/mcp.rs +++ b/hive-bash-mcp/src/bin/mcp.rs @@ -142,7 +142,7 @@ struct BashRunArgs { /// `timed_out` when the limit is exceeded. #[serde(default)] timeout_secs: Option, - /// Optional inline wait: `bash_run` polls for up to `wait_seconds` + /// Optional inline wait: `run` polls for up to `wait_seconds` /// (capped at 30) before returning. When the task finishes within the /// window the full status is returned immediately and no wake is fired; /// when the timeout expires the task keeps running and the normal @@ -158,9 +158,9 @@ fn default_wait() -> Option { #[derive(Debug, Deserialize, JsonSchema)] struct BashStatusArgs { - /// Task ID returned by `bash_run`. + /// Task ID returned by `run`. id: String, - /// Optional inline wait: `bash_status` polls for up to `wait_seconds` + /// Optional inline wait: `status` polls for up to `wait_seconds` /// (capped at 30) before returning. Useful to avoid a separate /// round-trip when the task is expected to finish soon. #[serde(default)] @@ -176,7 +176,7 @@ impl BashMcp { description = "Run a shell command in the background. Returns a task ID immediately — \ do NOT wait inline. When the command finishes, the harness fires a wake with \ `from: \"bash-task-\"` and the exit code + last stdout lines in the body; \ - handle it on a future turn. Use `bash_status` to poll the task status within \ + handle it on a future turn. Use `status` to poll the task status within \ the same turn if needed. `timeout_secs` defaults to 180. Pass `wait_seconds` \ (capped at 30) to wait inline for fast commands: when the task finishes within \ the window the full status is returned immediately and no wake is fired; when \ @@ -184,7 +184,7 @@ impl BashMcp { response is returned. `wait_seconds` defaults to 3; pass `wait_seconds: 0` to \ disable inline waiting and always get the immediate response." )] - async fn bash_run(&self, Parameters(args): Parameters) -> String { + async fn run(&self, Parameters(args): Parameters) -> String { let req = DaemonRequest::BashRun { cmd: args.cmd, timeout_secs: args.timeout_secs, @@ -202,7 +202,7 @@ impl BashMcp { } #[tool( - description = "Check the status of a background bash task by its ID (from `bash_run`). \ + description = "Check the status of a background bash task by its ID (from `run`). \ Returns the current status (pending/running/done/timed_out/interrupted), exit code \ if finished, and a tail of stdout/stderr. Full output lives in \ `harness/bash-tasks/.out` / `.err`. \ @@ -210,7 +210,7 @@ impl BashMcp { task finishes within the window the full status is returned immediately. Useful to \ avoid a separate round-trip when the task is expected to finish soon." )] - async fn bash_status(&self, Parameters(args): Parameters) -> String { + async fn status(&self, Parameters(args): Parameters) -> String { let id = args.id.clone(); let req = DaemonRequest::BashStatus { id: args.id, diff --git a/nix/templates/harness-base.nix b/nix/templates/harness-base.nix index dfbcd843..0d93c698 100644 --- a/nix/templates/harness-base.nix +++ b/nix/templates/harness-base.nix @@ -134,7 +134,7 @@ in default = [ ]; description = '' Deprecated - has no effect. The built-in Bash tool is fully - disabled regardless of this list; agents use mcp__hyperhive__bash_run + disabled regardless of this list; agents use mcp__bash__run instead. Remove this option from your agent.nix. ''; visible = false; @@ -612,7 +612,7 @@ in config = { warnings = lib.optional (config.hyperhive.allowedBashPatterns != [ ]) '' hyperhive.allowedBashPatterns is deprecated and has no effect. - The built-in Bash tool is fully disabled; agents use mcp__hyperhive__bash_run instead. + The built-in Bash tool is fully disabled; agents use mcp__bash__run instead. Remove allowedBashPatterns from your agent.nix. '';