Skip to content

Commit df9c73b

Browse files
committed
Warn on the deprecated Claude driver name
1 parent cbfaa0f commit df9c73b

2 files changed

Lines changed: 32 additions & 2 deletions

File tree

src/main.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,12 +325,17 @@ enum DriverCmd {
325325
argv: Vec<String>,
326326
},
327327
/// Run the Claude session-owned MCP server over stdio.
328-
// Keep the hidden alias until old Claude sessions can no longer restart their MCP child.
329-
#[command(name = "claude-mcp", alias = "claude")]
330328
ClaudeMcp {
331329
#[arg(long)]
332330
identity: String,
333331
},
332+
/// Deprecated name for the Claude MCP server.
333+
// Keep this hidden command until no rendered configuration uses the old name.
334+
#[command(hide = true)]
335+
Claude {
336+
#[arg(long)]
337+
identity: String,
338+
},
334339
/// Run Claude under the session-owned presence wrapper.
335340
ClaudeSession {
336341
#[arg(long)]
@@ -909,6 +914,12 @@ fn main() -> Result<()> {
909914
let catalog = catalog.canonicalize().unwrap_or(catalog);
910915
st2::claude_mcp::run(&catalog, &identity)
911916
}
917+
Command::Driver(DriverCmd::Claude { identity }) => {
918+
eprintln!("warning: `st2 driver claude` is deprecated; use `st2 driver claude-mcp`");
919+
let catalog = catalog_arg(None)?;
920+
let catalog = catalog.canonicalize().unwrap_or(catalog);
921+
st2::claude_mcp::run(&catalog, &identity)
922+
}
912923
Command::Driver(DriverCmd::ClaudeSession {
913924
identity,
914925
runtime_id,

tests/driver_expansion.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,25 @@ fn claude_mcp_is_canonical_and_claude_is_a_hidden_alias() {
204204
String::from_utf8_lossy(&output.stderr)
205205
);
206206
}
207+
208+
let temp = tempfile::tempdir().unwrap();
209+
let old = Command::new(env!("CARGO_BIN_EXE_st2"))
210+
.arg("--catalog")
211+
.arg(temp.path())
212+
.args(["driver", "claude", "--identity", "missing"])
213+
.output()
214+
.unwrap();
215+
let old_error = String::from_utf8(old.stderr).unwrap();
216+
assert!(old_error.contains("`st2 driver claude` is deprecated"));
217+
218+
let current = Command::new(env!("CARGO_BIN_EXE_st2"))
219+
.arg("--catalog")
220+
.arg(temp.path())
221+
.args(["driver", "claude-mcp", "--identity", "missing"])
222+
.output()
223+
.unwrap();
224+
let current_error = String::from_utf8(current.stderr).unwrap();
225+
assert!(!current_error.contains("deprecated"));
207226
}
208227

209228
#[test]

0 commit comments

Comments
 (0)