From 5617bf71bea42fa87e8ed9b7b5749545f3ae47a4 Mon Sep 17 00:00:00 2001 From: Artyom Bogachenko <32168471+SpectralOne@users.noreply.github.com> Date: Tue, 13 Jan 2026 18:53:14 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AD=20fix:=20Correct=20Subpath=20Routi?= =?UTF-8?q?ng=20for=20SSE=20and=20Favorites=20Endpoints=20(#11339)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Artyom Bogachenco --- client/src/data-provider/SSE/mutations.ts | 7 +++++-- client/src/data-provider/SSE/queries.ts | 6 ++++-- client/src/hooks/SSE/useResumableSSE.ts | 3 ++- packages/data-provider/src/data-service.ts | 4 ++-- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/client/src/data-provider/SSE/mutations.ts b/client/src/data-provider/SSE/mutations.ts index f24fed1b07..0861babbe9 100644 --- a/client/src/data-provider/SSE/mutations.ts +++ b/client/src/data-provider/SSE/mutations.ts @@ -1,5 +1,5 @@ import { useMutation } from '@tanstack/react-query'; -import { request } from 'librechat-data-provider'; +import { apiBaseUrl, request } from 'librechat-data-provider'; export interface AbortStreamParams { /** The stream ID to abort (if known) */ @@ -23,7 +23,10 @@ export interface AbortStreamResponse { */ export const abortStream = async (params: AbortStreamParams): Promise => { console.log('[abortStream] Calling abort endpoint with params:', params); - const result = (await request.post('/api/agents/chat/abort', params)) as AbortStreamResponse; + const result = (await request.post( + `${apiBaseUrl()}/api/agents/chat/abort`, + params, + )) as AbortStreamResponse; console.log('[abortStream] Abort response:', result); return result; }; diff --git a/client/src/data-provider/SSE/queries.ts b/client/src/data-provider/SSE/queries.ts index ec937fe878..76c500c530 100644 --- a/client/src/data-provider/SSE/queries.ts +++ b/client/src/data-provider/SSE/queries.ts @@ -1,5 +1,5 @@ import { useEffect, useMemo, useState } from 'react'; -import { QueryKeys, request, dataService } from 'librechat-data-provider'; +import { apiBaseUrl, QueryKeys, request, dataService } from 'librechat-data-provider'; import { useQuery, useQueries, useQueryClient } from '@tanstack/react-query'; import type { Agents, TConversation } from 'librechat-data-provider'; import { updateConvoInAllQueries } from '~/utils'; @@ -16,7 +16,9 @@ export interface StreamStatusResponse { export const streamStatusQueryKey = (conversationId: string) => ['streamStatus', conversationId]; export const fetchStreamStatus = async (conversationId: string): Promise => { - return request.get(`/api/agents/chat/status/${conversationId}`); + return request.get( + `${apiBaseUrl()}/api/agents/chat/status/${conversationId}`, + ); }; export function useStreamStatus(conversationId: string | undefined, enabled = true) { diff --git a/client/src/hooks/SSE/useResumableSSE.ts b/client/src/hooks/SSE/useResumableSSE.ts index 1bfb2706d5..ee04bcf32f 100644 --- a/client/src/hooks/SSE/useResumableSSE.ts +++ b/client/src/hooks/SSE/useResumableSSE.ts @@ -4,6 +4,7 @@ import { SSE } from 'sse.js'; import { useSetRecoilState } from 'recoil'; import { useQueryClient } from '@tanstack/react-query'; import { + apiBaseUrl, request, Constants, QueryKeys, @@ -144,7 +145,7 @@ export default function useResumableSSE( let { userMessage } = currentSubmission; let textIndex: number | null = null; - const baseUrl = `/api/agents/chat/stream/${encodeURIComponent(currentStreamId)}`; + const baseUrl = `${apiBaseUrl()}/api/agents/chat/stream/${encodeURIComponent(currentStreamId)}`; const url = isResume ? `${baseUrl}?resume=true` : baseUrl; console.log('[ResumableSSE] Subscribing to stream:', url, { isResume }); diff --git a/packages/data-provider/src/data-service.ts b/packages/data-provider/src/data-service.ts index 1c8199ce7a..911cc7863c 100644 --- a/packages/data-provider/src/data-service.ts +++ b/packages/data-provider/src/data-service.ts @@ -32,11 +32,11 @@ export type FavoriteItem = { }; export function getFavorites(): Promise { - return request.get('/api/user/settings/favorites'); + return request.get(`${endpoints.apiBaseUrl()}/api/user/settings/favorites`); } export function updateFavorites(favorites: FavoriteItem[]): Promise { - return request.post('/api/user/settings/favorites', { favorites }); + return request.post(`${endpoints.apiBaseUrl()}/api/user/settings/favorites`, { favorites }); } export function getSharedMessages(shareId: string): Promise {