build(buzz-agent-core): emit the binary as buzz-agent

buzz-acp derives harness identity from the command's BASENAME
(normalize_agent_command_identity, buzz-acp/src/config.rs:600-615) and already
has a "buzz-agent" arm meaning "no extra args" (default_agent_args, :617-624).

Naming the binary `buzz-agent` makes this a drop-in swap: point
BUZZ_ACP_AGENT_COMMAND at the built path and buzz-acp cannot tell the
difference -- same identity, same args, same ACP contract, goose underneath.
That is the whole premise, so the artifact should reflect it.

Crate stays buzz-agent-core (it is workspace-excluded and owns its lockfile);
only the emitted binary is renamed. 35 tests green.

Signed-off-by: Michael Neale <michael.neale@gmail.com>
This commit is contained in:
Michael Neale
2026-07-27 16:35:20 +10:00
parent 3596e8e2a6
commit c12853ed91
7 changed files with 14 additions and 7 deletions

View File

@@ -31,8 +31,15 @@ publish = false
name = "buzz_agent_core"
path = "src/lib.rs"
# Emitted as `buzz-agent`, not `buzz-agent-core`, on purpose. buzz-acp derives
# a harness identity from the command's BASENAME
# (`normalize_agent_command_identity`, buzz-acp/src/config.rs:600-615) and
# already has a `"buzz-agent"` arm meaning "no extra args"
# (`default_agent_args`, :617-624). Naming the binary this way makes it a
# drop-in swap: point BUZZ_ACP_AGENT_COMMAND at it and buzz-acp cannot tell the
# difference.
[[bin]]
name = "buzz-agent-core"
name = "buzz-agent"
path = "src/main.rs"
# Test-only fake MCP server, copied from crates/buzz-agent. Built

View File

@@ -119,7 +119,7 @@ struct Harness {
impl Harness {
fn start(base_url: &str, home: &std::path::Path) -> Self {
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent-core"))
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent"))
.env("BUZZ_AGENT_PROVIDER", "openai-compat")
.env("BUZZ_AGENT_MODEL", "fake-model")
.env("OPENAI_COMPAT_API_KEY", "k")

View File

@@ -169,7 +169,7 @@ struct Harness {
impl Harness {
fn start(base_url: &str, home: &std::path::Path) -> Self {
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent-core"))
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent"))
.env("BUZZ_AGENT_PROVIDER", "openai-compat")
.env("BUZZ_AGENT_MODEL", "fake-model")
.env("OPENAI_COMPAT_API_KEY", "k")

View File

@@ -146,7 +146,7 @@ struct Harness {
impl Harness {
fn start(base_url: &str, home: &std::path::Path) -> Self {
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent-core"))
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent"))
.env("BUZZ_AGENT_PROVIDER", "openai-compat")
.env("BUZZ_AGENT_MODEL", "fake-model")
.env("OPENAI_COMPAT_API_KEY", "k")

View File

@@ -154,7 +154,7 @@ struct Harness {
impl Harness {
fn start(base_url: &str, home: &std::path::Path) -> Self {
let exe = env!("CARGO_BIN_EXE_buzz-agent-core");
let exe = env!("CARGO_BIN_EXE_buzz-agent");
let mut child = Command::new(exe)
// Buzz-shaped config; config.rs translates these onto GOOSE_*.
.env("BUZZ_AGENT_PROVIDER", "openai-compat")

View File

@@ -151,7 +151,7 @@ struct Harness {
impl Harness {
fn start(base_url: &str, home: &std::path::Path) -> Self {
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent-core"))
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent"))
.env("BUZZ_AGENT_PROVIDER", "openai-compat")
.env("BUZZ_AGENT_MODEL", "fake-model")
.env("OPENAI_COMPAT_API_KEY", "k")

View File

@@ -116,7 +116,7 @@ struct Harness {
impl Harness {
fn start(base_url: &str, home: &std::path::Path) -> Self {
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent-core"))
let mut child = Command::new(env!("CARGO_BIN_EXE_buzz-agent"))
.env("BUZZ_AGENT_PROVIDER", "openai-compat")
.env("BUZZ_AGENT_MODEL", "fake-model")
.env("OPENAI_COMPAT_API_KEY", "k")