@@ -36,6 +36,10 @@ function headersFingerprint(headers: Record<string, string> | undefined): string
3636 return crypto . createHash ( 'sha256' ) . update ( JSON . stringify ( ordered ) ) . digest ( 'hex' ) . slice ( 0 , 16 ) ;
3737}
3838
39+ function recordFingerprint ( value : Record < string , string > | undefined ) : string {
40+ return headersFingerprint ( value ) ;
41+ }
42+
3943interface ResolvedEndpoint {
4044 name : string ;
4145 endpoint : TEndpoint ;
@@ -171,7 +175,7 @@ export function createLoadConfigModels(deps: LoadConfigModelsDeps) {
171175 // endpoints that happen to share the same baseURL+apiKey but configure
172176 // different (potentially user-bound) headers don't reuse each other's
173177 // fetched model list within the same request.
174- const uniqueKey = `${ BASE_URL } __${ API_KEY } __${ headersFingerprint ( endpointHeaders ) } ` ;
178+ const uniqueKey = `${ BASE_URL } __${ API_KEY } __${ headersFingerprint ( endpointHeaders ) } __ ${ recordFingerprint ( models ?. fetchQuery ) } ` ;
175179
176180 if ( models ?. fetch && ! apiKeyIsUserProvided && ! baseURLIsUserProvided ) {
177181 if ( ! fetchPromisesMap [ uniqueKey ] ) {
@@ -190,6 +194,7 @@ export function createLoadConfigModels(deps: LoadConfigModelsDeps) {
190194 headers : endpointHeaders ,
191195 direct : endpoint . directEndpoint ,
192196 userIdQuery : models . userIdQuery ,
197+ fetchQuery : models . fetchQuery ,
193198 tokenKey,
194199 } ) ;
195200 }
@@ -233,6 +238,7 @@ export function createLoadConfigModels(deps: LoadConfigModelsDeps) {
233238 headers : baseURLIsUserProvided ? undefined : endpointHeaders ,
234239 direct : endpoint . directEndpoint ,
235240 userIdQuery : models . userIdQuery ,
241+ fetchQuery : models . fetchQuery ,
236242 skipCache : true ,
237243 /** Fetched with the user's key/URL — always user-scoped */
238244 tokenKey : getTokenConfigKey ( endpoint , name , req . user ?. id ?? '' , tenantId ) ,
0 commit comments