From 35cf08071756146a81f4a8b1622109a609d14565 Mon Sep 17 00:00:00 2001 From: jcfs Date: Sun, 11 Jan 2026 00:27:01 +0000 Subject: [PATCH] fix: Structure session_info event correctly for protocol.Message parsing The session_id must be in the 'data' field, not at the top level, so the watcher can parse it into protocol.Message and the handler can find it at msg.Data["session_id"]. --- apps/backend/internal/agent/lifecycle/manager.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/backend/internal/agent/lifecycle/manager.go b/apps/backend/internal/agent/lifecycle/manager.go index 5482391683..126f774655 100644 --- a/apps/backend/internal/agent/lifecycle/manager.go +++ b/apps/backend/internal/agent/lifecycle/manager.go @@ -456,12 +456,16 @@ func (m *Manager) publishSessionInfo(instance *AgentInstance, sessionID string) return } + // Structure must match protocol.Message so it can be parsed correctly + // The session_id goes in the "data" field, not at the top level data := map[string]interface{}{ - "type": "session_info", - "timestamp": time.Now(), - "agent_id": instance.ID, - "task_id": instance.TaskID, - "session_id": sessionID, + "type": "session_info", + "timestamp": time.Now().UTC().Format(time.RFC3339Nano), + "agent_id": instance.ID, + "task_id": instance.TaskID, + "data": map[string]interface{}{ + "session_id": sessionID, + }, } event := bus.NewEvent(events.ACPMessage, "agent-manager", data)