diff --git a/codeagent-wrapper/parser.go b/codeagent-wrapper/parser.go index 0718d21..1d37563 100644 --- a/codeagent-wrapper/parser.go +++ b/codeagent-wrapper/parser.go @@ -271,8 +271,8 @@ func parseJSONStreamInternal(r io.Reader, warnFn func(string), infoFn func(strin continue } - // Unknown event format - warnFn(fmt.Sprintf("Unknown event format: %s", truncateBytes(line, 100))) + // Unknown event format from other backends (turn.started/assistant/user); ignore. + continue } switch { diff --git a/codeagent-wrapper/parser_unknown_event_test.go b/codeagent-wrapper/parser_unknown_event_test.go new file mode 100644 index 0000000..386d921 --- /dev/null +++ b/codeagent-wrapper/parser_unknown_event_test.go @@ -0,0 +1,33 @@ +package main + +import ( + "strings" + "testing" +) + +func TestBackendParseJSONStream_UnknownEventsAreSilent(t *testing.T) { + input := strings.Join([]string{ + `{"type":"turn.started"}`, + `{"type":"assistant","text":"hi"}`, + `{"type":"user","text":"yo"}`, + `{"type":"item.completed","item":{"type":"agent_message","text":"ok"}}`, + }, "\n") + + var infos []string + infoFn := func(msg string) { infos = append(infos, msg) } + + message, threadID := parseJSONStreamInternal(strings.NewReader(input), nil, infoFn, nil, nil) + if message != "ok" { + t.Fatalf("message=%q, want %q (infos=%v)", message, "ok", infos) + } + if threadID != "" { + t.Fatalf("threadID=%q, want empty (infos=%v)", threadID, infos) + } + + for _, msg := range infos { + if strings.Contains(msg, "Agent event:") { + t.Fatalf("unexpected log for unknown event: %q", msg) + } + } +} +