Skip to content

fix(mesh): run relay-mesh agents on sprout-agent, not goose#847

Merged
tlongwell-block merged 1 commit into
eva-mesh-restart-resolvefrom
eva/mesh-use-sprout-agent
Jun 4, 2026
Merged

fix(mesh): run relay-mesh agents on sprout-agent, not goose#847
tlongwell-block merged 1 commit into
eva-mesh-restart-resolvefrom
eva/mesh-use-sprout-agent

Conversation

@tlongwell-block

Copy link
Copy Markdown
Collaborator

What

Relay-mesh agents now run on the sprout-agent runtime instead of goose.

mesh_llm::agent_preset set agent_command = DEFAULT_AGENT_COMMAND (goose) and mcp_command = DEFAULT_MCP_COMMAND (sprout-mcp-server) while emitting SPROUT_AGENT_PROVIDER=openai + OPENAI_COMPAT_* env vars. Goose ignores those vars and falls back to its own configured provider, so mesh agents never used the local mesh endpoint.

The env set was already correct — it's exactly what crates/sprout-agent/src/config.rs reads. It was just being handed to the wrong runtime.

Change

  • agent_command / mcp_command now sourced from the sprout-agent provider catalog entry (known_acp_provider_exact) → sprout-agent / sprout-dev-mcp, with consts as fallbacks. Can't drift from the provider definition.
  • Env vars / base_url / model / api_key: unchanged (already correct for sprout-agent).
  • Extracted the preset into a sibling preset.rs via the existing #[path] pattern — mod.rs was at 495 lines (the 500-line budget ceiling); this keeps it under and isolates preset logic. Reads as: mod.rs −48 (move-out), preset.rs +69 (move-in + the fix), mod_tests.rs +32 (regression test).
  • Added regression test agent_preset_runs_on_sprout_agent_not_goose.

Matches the frontend applyMeshAgentPreset.test.mjs contract, which already expected agentCommand: sprout-agent / mcpCommand: sprout-dev-mcp.

Verification

  • Full cargo test -p sprout-desktop --features mesh-llm --lib: 441 pass + new regression test
  • No-feature gates (pre-push parity, run sequentially): desktop-tauri-clippy, desktop-tauri-test, workspace clippy, test-unit — all green
  • Frontend preset tests 10/10
  • fmt + clippy clean

Stacked on #846.

@tlongwell-block tlongwell-block requested a review from a team as a code owner June 4, 2026 15:04
The "Run on relay mesh" preset handed the agent the global default
runtime (goose) while setting SPROUT_AGENT_PROVIDER + OPENAI_COMPAT_*
env vars. Goose ignores those and falls back to its own configured
provider, so mesh agents never used the local mesh endpoint.

Source the agent command and MCP from the sprout-agent provider catalog
entry, which reads those env vars (crates/sprout-agent/src/config.rs).
This matches the frontend preset contract (agentCommand: sprout-agent,
mcpCommand: sprout-dev-mcp) the JS test fixture already documented.

Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co>
@tlongwell-block tlongwell-block force-pushed the eva/mesh-use-sprout-agent branch from b2d2079 to f40c010 Compare June 4, 2026 15:06
@tlongwell-block tlongwell-block merged commit 291d938 into eva-mesh-restart-resolve Jun 4, 2026
15 checks passed
@tlongwell-block tlongwell-block deleted the eva/mesh-use-sprout-agent branch June 4, 2026 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant