From 891cd1557b1f03e96772a19db982d3ba2955a353 Mon Sep 17 00:00:00 2001 From: Kazuki Yamada Date: Thu, 22 Jan 2026 23:19:59 +0900 Subject: [PATCH] refactor(website): Remove ZIP file caching and extend remote repo cache - Remove caching for ZIP file uploads to avoid storing user-uploaded code in server memory for security reasons - Extend remote repository cache TTL from 3 minutes to 10 minutes for better cache hit rate while staying within Cloud Run idle timeout --- website/server/src/domains/pack/processZipFile.ts | 13 ------------- .../server/src/domains/pack/utils/sharedInstance.ts | 2 +- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/website/server/src/domains/pack/processZipFile.ts b/website/server/src/domains/pack/processZipFile.ts index 07db3ecae..a63b64935 100644 --- a/website/server/src/domains/pack/processZipFile.ts +++ b/website/server/src/domains/pack/processZipFile.ts @@ -6,9 +6,7 @@ import { type CliOptions, runDefaultAction, setLogLevel } from 'repomix'; import type { PackOptions, PackResult } from '../../types.js'; import { AppError } from '../../utils/errorHandler.js'; import { logMemoryUsage } from '../../utils/logger.js'; -import { generateCacheKey } from './utils/cache.js'; import { cleanupTempDirectory, copyOutputToCurrentDirectory, createTempDirectory } from './utils/fileUtils.js'; -import { cache } from './utils/sharedInstance.js'; // Enhanced ZIP extraction limits const ZIP_SECURITY_LIMITS = { @@ -27,14 +25,6 @@ export async function processZipFile(file: File, format: string, options: PackOp throw new AppError('File is required for file processing', 400); } - const cacheKey = generateCacheKey(`${file.name}-${file.size}-${file.lastModified}`, format, options, 'file'); - - // Check if the result is already cached - const cachedResult = await cache.get(cacheKey); - if (cachedResult) { - return cachedResult; - } - const outputFilePath = `repomix-output-${randomUUID()}.txt`; // Create CLI options @@ -101,9 +91,6 @@ export async function processZipFile(file: File, format: string, options: PackOp }, }; - // Save the result to cache - await cache.set(cacheKey, packResultData); - // Log memory usage after processing logMemoryUsage('ZIP file processing completed', { fileName: file.name, diff --git a/website/server/src/domains/pack/utils/sharedInstance.ts b/website/server/src/domains/pack/utils/sharedInstance.ts index d9026f3af..b727da4ec 100644 --- a/website/server/src/domains/pack/utils/sharedInstance.ts +++ b/website/server/src/domains/pack/utils/sharedInstance.ts @@ -3,5 +3,5 @@ import { RateLimiter } from '../../../utils/rateLimit.js'; import { RequestCache } from './cache.js'; // Create shared instances -export const cache = new RequestCache(180); // 3 minutes cache +export const cache = new RequestCache(600); // 10 minutes cache export const rateLimiter = new RateLimiter(60_000, process.env.NODE_ENV === 'development' ? 10 : 3); // 10 requests per minute in dev, 3 in production