From 63a59e373506b5bf7a4140615264258baceaf6f2 Mon Sep 17 00:00:00 2001 From: Chummy Date: Fri, 20 Feb 2026 10:22:18 +0800 Subject: [PATCH] test(channels): assert single tool protocol block in final prompt --- src/channels/mod.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/channels/mod.rs b/src/channels/mod.rs index c90ea49..c01e47c 100644 --- a/src/channels/mod.rs +++ b/src/channels/mod.rs @@ -3546,6 +3546,26 @@ mod tests { assert!(prompt.contains("**memory_recall**")); } + #[test] + fn prompt_includes_single_tool_protocol_block_after_append() { + let ws = make_workspace(); + let tools = vec![("shell", "Run commands")]; + let mut prompt = build_system_prompt(ws.path(), "gpt-4o", &tools, &[], None, None); + + assert!( + !prompt.contains("## Tool Use Protocol"), + "build_system_prompt should not emit protocol block directly" + ); + + prompt.push_str(&build_tool_instructions(&[])); + + assert_eq!( + prompt.matches("## Tool Use Protocol").count(), + 1, + "protocol block should appear exactly once in the final prompt" + ); + } + #[test] fn prompt_injects_safety() { let ws = make_workspace();