test(channels): assert single tool protocol block in final prompt

This commit is contained in:
Chummy 2026-02-20 10:22:18 +08:00
parent 35a3520621
commit 63a59e3735

View file

@ -3546,6 +3546,26 @@ mod tests {
assert!(prompt.contains("**memory_recall**")); 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] #[test]
fn prompt_injects_safety() { fn prompt_injects_safety() {
let ws = make_workspace(); let ws = make_workspace();