From 4d2851cb2fa40f9434fb6ea8418199facd64e3ab Mon Sep 17 00:00:00 2001 From: leex279 Date: Sat, 8 Nov 2025 23:38:01 +0100 Subject: [PATCH] Address CodeRabbit review: Improve openrouterService robustness MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Lazy initialization of baseUrl via getBaseUrl() method - Allows API URL to be updated at runtime without stale URL issues 2. Runtime validation of API response structure - Validates embedding_models array exists before caching - Prevents invalid responses from being cached Addresses CodeRabbit nitpick comments on PR #852 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- archon-ui-main/src/services/openrouterService.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/archon-ui-main/src/services/openrouterService.ts b/archon-ui-main/src/services/openrouterService.ts index 4693e58f..b70cf3ad 100644 --- a/archon-ui-main/src/services/openrouterService.ts +++ b/archon-ui-main/src/services/openrouterService.ts @@ -23,7 +23,7 @@ export interface OpenRouterModelListResponse { } class OpenRouterService { - private baseUrl = getApiUrl(); + private getBaseUrl = () => getApiUrl(); private cacheKey = "openrouter_models_cache"; private cacheTTL = 5 * 60 * 1000; // 5 minutes @@ -101,7 +101,7 @@ class OpenRouterService { return cached; } - const response = await fetch(`${this.baseUrl}/api/openrouter/models`, { + const response = await fetch(`${this.getBaseUrl()}/api/openrouter/models`, { method: "GET", headers: { "Content-Type": "application/json", @@ -115,6 +115,11 @@ class OpenRouterService { const data = await response.json(); + // Validate response structure + if (!data.embedding_models || !Array.isArray(data.embedding_models)) { + throw new Error("Invalid response structure from OpenRouter API"); + } + // Cache the successful response this.cacheModels(data);