mirror of
https://github.com/instructkr/claw-code.git
synced 2026-06-05 14:07:11 +08:00
fix: return typed error for unsupported MCP sub-actions
The catch-all in render_mcp_report_json_for now returns render_mcp_unsupported_action_json with ok:false and error_kind:unsupported_action instead of help JSON with exit 0. Generated with https://github.com/Yeachan-Heo/gajae-code Co-authored-by: Gajae Code <dev@gajae-code.com>
This commit is contained in:
@@ -3308,7 +3308,15 @@ fn render_mcp_report_json_for(
|
||||
"use `claw mcp show <server>` to inspect a server",
|
||||
))
|
||||
}
|
||||
Some(args) => Ok(render_mcp_usage_json(Some(args))),
|
||||
Some(args) => {
|
||||
// #681: unsupported mutation verbs (add, remove, delete, enable, disable)
|
||||
// and other unknown sub-actions return a typed error instead of help with exit 0.
|
||||
let verb = args.split_whitespace().next().unwrap_or(args);
|
||||
Ok(render_mcp_unsupported_action_json(
|
||||
args,
|
||||
&format!("`{verb}` is not a supported MCP sub-action; supported actions: list, show, help"),
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3884,7 +3884,7 @@ fn agents_plugins_mcp_unknown_subcommand_have_hint_774() {
|
||||
};
|
||||
let parsed: serde_json::Value =
|
||||
serde_json::from_str(json_str.trim()).expect("mcp bogus should emit JSON");
|
||||
assert_eq!(parsed["error_kind"], "unknown_mcp_action");
|
||||
assert_eq!(parsed["error_kind"], "unsupported_action");
|
||||
let hint = parsed["hint"].as_str().unwrap_or("");
|
||||
assert!(!hint.is_empty(), "mcp bogus hint must be non-null (#774)");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user