diff --git a/.jules/bolt.md b/.jules/bolt.md new file mode 100644 index 00000000..d646023e --- /dev/null +++ b/.jules/bolt.md @@ -0,0 +1,3 @@ +## 2025-05-12 - Parallelize Gateway Surface Fetching +**Learning:** In gateway surface aggregation (`src/lib/forge-openai-surface.ts`), querying multiple paths sequentially with await blocks the event loop on I/O. +**Action:** Use `Promise.all` to fetch parallel paths for API routes, iterating through the returned results array sequentially afterward to maintain state-dependent side effects exactly identical to the original behavior (such as `lastStatus` and `lastRaw`). \ No newline at end of file diff --git a/src/lib/forge-openai-surface.ts b/src/lib/forge-openai-surface.ts index 93415262..127315b2 100644 --- a/src/lib/forge-openai-surface.ts +++ b/src/lib/forge-openai-surface.ts @@ -118,8 +118,12 @@ export async function collectZimaOSV1ModelEntries( let lastError: string | undefined; let lastRaw: unknown = null; - for (const path of V1_MODELS_PATHS) { - const r = await fetchZimaOSJson(email, path); + // ⚡ Bolt: Parallelized sequential fetch operations for faster gateway response + const results = await Promise.all( + V1_MODELS_PATHS.map((path) => fetchZimaOSJson(email, path)) + ); + + for (const r of results) { lastStatus = r.status; lastError = r.error; lastRaw = r.data;