From c3bd04e25995beba9ca62b4e2ea098bdcd48cdb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D9=8A?= Date: Mon, 9 Mar 2026 12:06:49 +0530 Subject: [PATCH] Fix huddle SSE auth fallback with query token support --- backend/api/agents_api.py | 4 ++-- frontend/src/hooks/useAgentHuddleFeed.ts | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/backend/api/agents_api.py b/backend/api/agents_api.py index 1dad9de0..17ac1eab 100644 --- a/backend/api/agents_api.py +++ b/backend/api/agents_api.py @@ -12,7 +12,7 @@ import os from datetime import datetime import json -from middleware.auth_middleware import get_current_user +from middleware.auth_middleware import get_current_user, get_current_user_with_query_token from utils.logger_utils import get_service_logger from services.intelligence.agents.agent_orchestrator import ( execute_marketing_strategy, get_agent_system_status, process_market_signals_for_user @@ -715,7 +715,7 @@ async def get_agent_huddle_feed_endpoint( @router.get("/huddle/stream") async def stream_agent_huddle_endpoint( detail_tier: str = DETAIL_TIER_SUMMARY, - current_user: dict = Depends(get_current_user), + current_user: dict = Depends(get_current_user_with_query_token), ): user_id = str(current_user.get("id")) resolved_tier = _resolve_detail_tier(detail_tier, current_user) diff --git a/frontend/src/hooks/useAgentHuddleFeed.ts b/frontend/src/hooks/useAgentHuddleFeed.ts index 75f28809..1ed7f37e 100644 --- a/frontend/src/hooks/useAgentHuddleFeed.ts +++ b/frontend/src/hooks/useAgentHuddleFeed.ts @@ -126,7 +126,11 @@ export const useAgentHuddleFeed = (options?: { detailTier?: 'summary' | 'detaile const token = tokenGetter ? await tokenGetter() : null; if (!token) throw new Error('No auth token available for SSE stream'); - const streamUrl = `${getApiUrl()}/api/agents/huddle/stream?detail_tier=${detailTier}`; + const query = new URLSearchParams({ detail_tier: detailTier }); + if (token) { + query.set('token', token); + } + const streamUrl = `${getApiUrl()}/api/agents/huddle/stream?${query.toString()}`; const response = await fetch(streamUrl, { headers: { Authorization: `Bearer ${token}`, Accept: 'text/event-stream' }, });