mirror of
https://github.com/instructkr/claude-code.git
synced 2026-05-30 09:16:44 +00:00
fix: unknown slash command emits unknown_slash_command error_kind (#827)
Both direct-slash CLI path (claw /boguscommand) and resume slash path (claw --resume session /boguscommand) previously emitted error_kind:unknown (opaque fallback). Machine consumers could not distinguish unrecognized slash commands from other error classes. Fix: - format_unknown_direct_slash_command: prefix with 'unknown_slash_command:' - format_unknown_slash_command (resume path): prefix with 'unknown_slash_command:' - Add classifier arm for 'unknown_slash_command:' prefix One new regression test: direct_unknown_slash_command_emits_typed_error_kind Uses the direct-slash CLI path (no session load needed; reproducible on CI). 572 tests pass, 1 pre-existing worker_boot failure unrelated.
This commit is contained in:
@@ -3967,3 +3967,29 @@ fn multi_word_unknown_subcommand_falls_through_to_prompt_826() {
|
||||
"multi-word fallthrough JSON must have empty stderr: {stderr:?}"
|
||||
);
|
||||
}
|
||||
|
||||
// #827: direct /unknown-slash-command must emit typed error_kind, not "unknown"
|
||||
// Uses the direct-slash CLI path (no session load needed; reproducible on CI).
|
||||
#[test]
|
||||
fn direct_unknown_slash_command_emits_typed_error_kind() {
|
||||
let root = unique_temp_dir("direct-unknown-slash-827");
|
||||
std::fs::create_dir_all(&root).expect("create temp dir");
|
||||
let output = run_claw(&root, &["--output-format", "json", "/boguscommand"], &[]);
|
||||
assert_eq!(output.status.code(), Some(1), "unknown slash should exit 1");
|
||||
let stdout = String::from_utf8_lossy(&output.stdout);
|
||||
let stderr = String::from_utf8_lossy(&output.stderr);
|
||||
let j: serde_json::Value =
|
||||
serde_json::from_str(stdout.trim()).expect("unknown slash must emit JSON (#827)");
|
||||
assert_ne!(
|
||||
j["error_kind"], "unknown",
|
||||
"direct unknown slash must not emit opaque \'unknown\' error_kind (#827): {j}"
|
||||
);
|
||||
assert_eq!(
|
||||
j["error_kind"], "unknown_slash_command",
|
||||
"direct unknown slash must emit unknown_slash_command (#827): {j}"
|
||||
);
|
||||
assert!(
|
||||
stderr.is_empty(),
|
||||
"direct unknown slash JSON must have empty stderr (#827)"
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user