@@ -280,23 +280,24 @@ async def process_query(
280280 include_patterns = pattern if pattern_type == PatternType .INCLUDE else None ,
281281 )
282282
283- # Check if digest already exists on S3 before cloning
284- s3_response = await _check_s3_cache (
285- query = query ,
286- input_text = input_text ,
287- max_file_size = max_file_size ,
288- pattern_type = pattern_type .value ,
289- pattern = pattern ,
290- token = token ,
291- )
292- if s3_response :
293- return s3_response
294-
295- clone_config = query .extract_clone_config ()
296- short_repo_url = f"{ query .user_name } /{ query .repo_name } "
297-
298- # Track memory usage during the entire ingestion process
283+ # Track memory usage for the entire request (including S3 cache checks)
299284 with MemoryTracker (input_text ) as memory_tracker :
285+ # Check if digest already exists on S3 before cloning
286+ s3_response = await _check_s3_cache (
287+ query = query ,
288+ input_text = input_text ,
289+ max_file_size = max_file_size ,
290+ pattern_type = pattern_type .value ,
291+ pattern = pattern ,
292+ token = token ,
293+ )
294+ if s3_response :
295+ # Even for S3 cache hits, record the memory usage
296+ memory_tracker .update_peak ()
297+ return s3_response
298+
299+ clone_config = query .extract_clone_config ()
300+ short_repo_url = f"{ query .user_name } /{ query .repo_name } "
300301 await clone_repo (clone_config , token = token )
301302
302303 # Update peak memory after cloning
@@ -332,35 +333,35 @@ async def process_query(
332333 _cleanup_repository (clone_config )
333334 return IngestErrorResponse (error = f"{ exc !s} " )
334335
335- if len (content ) > MAX_DISPLAY_SIZE :
336- content = (
337- f"(Files content cropped to { int (MAX_DISPLAY_SIZE / 1_000 )} k characters, "
338- "download full ingest to see more)\n " + content [:MAX_DISPLAY_SIZE ]
339- )
336+ if len (content ) > MAX_DISPLAY_SIZE :
337+ content = (
338+ f"(Files content cropped to { int (MAX_DISPLAY_SIZE / 1_000 )} k characters, "
339+ "download full ingest to see more)\n " + content [:MAX_DISPLAY_SIZE ]
340+ )
340341
341- _print_success (
342- url = query .url ,
343- max_file_size = max_file_size ,
344- pattern_type = pattern_type ,
345- pattern = pattern ,
346- summary = summary ,
347- )
342+ _print_success (
343+ url = query .url ,
344+ max_file_size = max_file_size ,
345+ pattern_type = pattern_type ,
346+ pattern = pattern ,
347+ summary = summary ,
348+ )
348349
349- digest_url = _generate_digest_url (query )
350+ digest_url = _generate_digest_url (query )
350351
351- # Repository was already cleaned up after ingestion to free memory earlier
352+ # Repository was already cleaned up after ingestion to free memory earlier
352353
353- return IngestSuccessResponse (
354- repo_url = input_text ,
355- short_repo_url = short_repo_url ,
356- summary = summary ,
357- digest_url = digest_url ,
358- tree = tree ,
359- content = content ,
360- default_max_file_size = max_file_size ,
361- pattern_type = pattern_type ,
362- pattern = pattern ,
363- )
354+ return IngestSuccessResponse (
355+ repo_url = input_text ,
356+ short_repo_url = short_repo_url ,
357+ summary = summary ,
358+ digest_url = digest_url ,
359+ tree = tree ,
360+ content = content ,
361+ default_max_file_size = max_file_size ,
362+ pattern_type = pattern_type ,
363+ pattern = pattern ,
364+ )
364365
365366
366367def _print_query (url : str , max_file_size : int , pattern_type : str , pattern : str ) -> None :
0 commit comments