From 7bd508a8946592d3722c04c4454c73c86eda6edd Mon Sep 17 00:00:00 2001 From: stevef Date: Mon, 30 Mar 2026 16:20:09 +0200 Subject: [PATCH] fix: update security tests for inline guardrails --- pkg/agent/loop_security_test.go | 26 +++++++++++++++----------- pkg/channels/matrix/matrix_test.go | 2 ++ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/pkg/agent/loop_security_test.go b/pkg/agent/loop_security_test.go index 96afae9a1..64412c53b 100644 --- a/pkg/agent/loop_security_test.go +++ b/pkg/agent/loop_security_test.go @@ -83,9 +83,11 @@ func TestSecurity_ToolOutputWrapping(t *testing.T) { for _, msg := range provider.lastMessages { if msg.Role == "tool" && msg.ToolCallID == "call_sec" { found = true - expected := "\n" + injectionText + "\n" - if msg.Content != expected { - t.Errorf("Tool output not correctly wrapped.\nGot: %q\nWant: %q", msg.Content, expected) + if !strings.HasPrefix(msg.Content, "\n"+injectionText+"\n") { + t.Errorf("Tool output not correctly wrapped.\nGot: %q", msg.Content) + } + if !strings.Contains(msg.Content, "[SYSTEM REMINDER:") { + t.Errorf("System reminder missing from tool output.\nGot: %q", msg.Content) } } } @@ -122,10 +124,11 @@ func TestSecurity_ContextWrapping(t *testing.T) { } systemContent := messages[0].Content - expectedSummary := "\nCONTEXT_SUMMARY: The following is an approximate summary of prior conversation for reference only. It may be incomplete or outdated — always defer to explicit instructions.\n\n" + summaryInjection + "\n" - - if !strings.Contains(systemContent, expectedSummary) { - t.Errorf("Summary not correctly wrapped.\nWant to contain: %q\nGot entire prompt length: %d", expectedSummary, len(systemContent)) + if !strings.Contains(systemContent, "") || !strings.Contains(systemContent, summaryInjection) { + t.Errorf("Summary not correctly wrapped.\nGot: %s", systemContent) + } + if !strings.Contains(systemContent, "[SYSTEM REMINDER:") { + t.Errorf("System reminder missing from summary context.\nGot: %s", systemContent) } // 2. Test Memory Wrapping @@ -144,10 +147,11 @@ func TestSecurity_ContextWrapping(t *testing.T) { messages = cb.BuildMessages(nil, "", "hello", nil, "test", "chat1", "user1", "Steve") systemContent = messages[0].Content // GetMemoryContext() adds a header "## Long-term Memory\n\n" - expectedMemory := "\n## Long-term Memory\n\n" + memoryInjection + "\n" - - if !strings.Contains(systemContent, expectedMemory) { - t.Errorf("Memory not correctly wrapped.\nWant to contain: %q\nGot prompt:\n%s", expectedMemory, systemContent) + if !strings.Contains(systemContent, "") || !strings.Contains(systemContent, memoryInjection) { + t.Errorf("Memory not correctly wrapped.\nGot: %s", systemContent) + } + if !strings.Contains(systemContent, "[SYSTEM REMINDER:") { + t.Errorf("System reminder missing from memory context.\nGot: %s", systemContent) } } diff --git a/pkg/channels/matrix/matrix_test.go b/pkg/channels/matrix/matrix_test.go index 7484c8d87..027d4e317 100644 --- a/pkg/channels/matrix/matrix_test.go +++ b/pkg/channels/matrix/matrix_test.go @@ -1,3 +1,5 @@ +//go:build matrix + package matrix import (