diff --git a/crates/acp-client/src/driver.rs b/crates/acp-client/src/driver.rs index 780b49f1..2083d923 100644 --- a/crates/acp-client/src/driver.rs +++ b/crates/acp-client/src/driver.rs @@ -124,7 +124,7 @@ impl AcpDriver { is_remote: false, }) .ok_or_else(|| { - "No ACP agent found. Install Goose, Claude Code, Codex, or Pi and ensure it's on your PATH." + "No ACP agent found. Install Goose, Claude Code, Codex, Pi, or Amp and ensure it's on your PATH." .to_string() }) } diff --git a/crates/acp-client/src/types.rs b/crates/acp-client/src/types.rs index 83e465ce..105e1b47 100644 --- a/crates/acp-client/src/types.rs +++ b/crates/acp-client/src/types.rs @@ -51,6 +51,12 @@ pub(crate) const KNOWN_AGENTS: &[KnownAgent] = &[ command: "pi-acp", acp_args: &[], }, + KnownAgent { + id: "amp", + label: "Amp", + command: "amp-acp", + acp_args: &[], + }, ]; // ============================================================================= diff --git a/staged/src-tauri/src/session_commands.rs b/staged/src-tauri/src/session_commands.rs index a7bc1f48..f32d5d07 100644 --- a/staged/src-tauri/src/session_commands.rs +++ b/staged/src-tauri/src/session_commands.rs @@ -351,9 +351,10 @@ pub fn start_branch_session( } }; - // For remote branches, pass the workspace name and agent ID as the provider + // For remote branches, prefer the user's UI selection, fall back to the + // agent stored on the branch. let effective_provider = if is_remote { - branch.agent.clone() + provider.or_else(|| branch.agent.clone()) } else { provider }; diff --git a/staged/src/lib/AgentSelector.svelte b/staged/src/lib/AgentSelector.svelte index 8bb78130..87ebbc08 100644 --- a/staged/src/lib/AgentSelector.svelte +++ b/staged/src/lib/AgentSelector.svelte @@ -13,21 +13,22 @@ -{#if agentState.loaded && agentState.providers.length > 0} +{#if (remote || agentState.loaded) && agents.length > 0}