From 0a24946c1e810e73c085b223d48b48415b68898b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?m=C3=BCde?= Date: Fri, 15 May 2026 16:05:51 +0200 Subject: [PATCH 1/2] send form: submit via fetch so live view stays put --- hive-ag3nt/src/web_ui.rs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/hive-ag3nt/src/web_ui.rs b/hive-ag3nt/src/web_ui.rs index d4f22ea9..1997265e 100644 --- a/hive-ag3nt/src/web_ui.rs +++ b/hive-ag3nt/src/web_ui.rs @@ -104,11 +104,27 @@ async fn index(State(state): State) -> Html { fn render_online(label: &str) -> String { format!( "

▓█▓▒░ harness alive — turn loop running ▓█▓▒░

\n\ -
\n \ - \n \ + \n \ + \n \ \n\
\n\

enqueued with from: operator on this agent's inbox; the next turn picks it up.

\n\ + \n\ {LIVE_PANEL}", ) } From cb62e15d4f56ddf9444be2780c7155e8e5630ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?m=C3=BCde?= Date: Fri, 15 May 2026 16:06:32 +0200 Subject: [PATCH 2/2] containers: install bashInteractive + set SHELL for claude's Bash tool --- nix/templates/agent-base.nix | 10 +++++++++- nix/templates/manager.nix | 13 ++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/nix/templates/agent-base.nix b/nix/templates/agent-base.nix index 17262a7c..4683023a 100644 --- a/nix/templates/agent-base.nix +++ b/nix/templates/agent-base.nix @@ -7,9 +7,12 @@ environment.systemPackages = with pkgs; [ hyperhive claude-code + bashInteractive git coreutils-full ]; + # claude's Bash tool refuses to run without a POSIX shell + $SHELL set. + environment.variables.SHELL = "${pkgs.bashInteractive}/bin/bash"; systemd.services.hive-ag3nt = { description = "hive-ag3nt harness"; @@ -18,7 +21,12 @@ # The harness shells out to `claude` (turn loop + login flow). systemd # units get a minimal PATH by default, so we have to put claude-code on # it explicitly even though it's in environment.systemPackages above. - path = [ pkgs.claude-code ]; + # bash is on PATH so claude's Bash tool can spawn `$SHELL`. + path = [ + pkgs.claude-code + pkgs.bashInteractive + ]; + environment.SHELL = "${pkgs.bashInteractive}/bin/bash"; serviceConfig = { ExecStart = "${pkgs.hyperhive}/bin/hive-ag3nt serve"; Restart = "on-failure"; diff --git a/nix/templates/manager.nix b/nix/templates/manager.nix index 13ad1919..0859e0b1 100644 --- a/nix/templates/manager.nix +++ b/nix/templates/manager.nix @@ -7,9 +7,12 @@ environment.systemPackages = with pkgs; [ hyperhive claude-code + bashInteractive git coreutils-full ]; + # claude's Bash tool refuses to run without a POSIX shell + $SHELL set. + environment.variables.SHELL = "${pkgs.bashInteractive}/bin/bash"; environment.etc."gitconfig".text = '' [user] @@ -27,9 +30,13 @@ HIVE_PORT = "8000"; HIVE_LABEL = "hm1nd"; }; - # See note in agent-base.nix — `claude` has to be on the service PATH - # explicitly for the harness to shell out to it. - path = [ pkgs.claude-code ]; + # See note in agent-base.nix — `claude` and a POSIX shell have to be on + # the service PATH explicitly for the harness + claude's Bash tool. + path = [ + pkgs.claude-code + pkgs.bashInteractive + ]; + environment.SHELL = "${pkgs.bashInteractive}/bin/bash"; serviceConfig = { ExecStart = "${pkgs.hyperhive}/bin/hive-m1nd serve"; Restart = "on-failure";