From d8a99b5bd2cce47b22756a47c0eb229f513c583a Mon Sep 17 00:00:00 2001 From: James Date: Sat, 7 Feb 2026 00:58:19 -0500 Subject: [PATCH] fix: implement source filter for /messages and /messages/new endpoints The ?source= query parameter was documented but never implemented. Both endpoints now properly filter by source when specified. --- main.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/main.go b/main.go index 5d1604c..affaad4 100644 --- a/main.go +++ b/main.go @@ -279,6 +279,18 @@ func handleMessages(w http.ResponseWriter, r *http.Request) { return } + // Filter by source if specified + sourceFilter := r.URL.Query().Get("source") + if sourceFilter != "" { + var filtered []UnifiedMessage + for _, msg := range messages { + if msg.Source == sourceFilter { + filtered = append(filtered, msg) + } + } + messages = filtered + } + json.NewEncoder(w).Encode(messages) } @@ -294,9 +306,17 @@ func handleMessagesNew(w http.ResponseWriter, r *http.Request) { return } + // Filter by source if specified + sourceFilter := r.URL.Query().Get("source") + // Filter by orchestration state and record new messages var filtered []UnifiedMessage for _, msg := range messages { + // Skip if source filter is set and doesn't match + if sourceFilter != "" && msg.Source != sourceFilter { + continue + } + // Record that we've seen this message source, sourceID, _ := parseMessageID(msg.ID) orch.RecordSeen(msg.ID, source, sourceID, "INBOX")