diff --git a/frontend/src/api/__tests__/attachments.spec.ts b/frontend/src/api/__tests__/attachments.spec.ts index 1dd182e..3221383 100644 --- a/frontend/src/api/__tests__/attachments.spec.ts +++ b/frontend/src/api/__tests__/attachments.spec.ts @@ -16,7 +16,9 @@ describe('attachments api', () => { sourceId: '1001', }); - const [url, body] = vi.mocked(post).mock.calls[0]; + const firstCall = vi.mocked(post).mock.calls[0]; + expect(firstCall).toBeDefined(); + const [url, body] = firstCall as [string, FormData]; expect(url).toBe('/attachments/upload'); expect(body).toBeInstanceOf(FormData); diff --git a/frontend/src/api/modelProvider.ts b/frontend/src/api/modelProvider.ts index 128f89a..1f158e5 100644 --- a/frontend/src/api/modelProvider.ts +++ b/frontend/src/api/modelProvider.ts @@ -40,7 +40,9 @@ export interface ModelRouteRule { matchScope: string; scopeId?: string; primaryModelId: string; + primaryModelCode?: string; fallbackModelIdsJson?: string; + fallbackModelCode?: string; routeStrategy: string; maxLatencyMs?: number; enabled: boolean; diff --git a/frontend/src/pages/studio/McpImportPage.vue b/frontend/src/pages/studio/McpImportPage.vue index 83b01ec..a7e70f0 100644 --- a/frontend/src/pages/studio/McpImportPage.vue +++ b/frontend/src/pages/studio/McpImportPage.vue @@ -66,8 +66,9 @@ async function loadServers() { try { const response = await listMcpServers(); servers.value = response.data ?? []; - if (!selectedServerCode.value && servers.value.length > 0) { - selectedServerCode.value = servers.value[0].serverCode; + const firstServer = servers.value[0]; + if (!selectedServerCode.value && firstServer?.serverCode) { + selectedServerCode.value = firstServer.serverCode; } } finally { loading.value = false; @@ -193,7 +194,7 @@ onMounted(async () => {

- 当前服务:{{ selectedServer.serverName }} / {{ selectedServer.importType }} / {{ selectedServer.healthStatus }} + 当前服务:{{ selectedServer?.serverName }} / {{ selectedServer?.importType }} / {{ selectedServer?.healthStatus }}

diff --git a/frontend/src/pages/studio/ModelWorkspacePage.vue b/frontend/src/pages/studio/ModelWorkspacePage.vue index e201654..1f8b8a3 100644 --- a/frontend/src/pages/studio/ModelWorkspacePage.vue +++ b/frontend/src/pages/studio/ModelWorkspacePage.vue @@ -52,7 +52,7 @@ onMounted(loadWorkspace);
{{ route.taskType }} {{ route.primaryModelCode || route.primaryModelId }} - {{ route.fallbackModelCode || route.fallbackModelId || '无' }} + {{ route.fallbackModelCode || route.fallbackModelIdsJson || '无' }} {{ routeStatus(route.enabled) }} diff --git a/frontend/src/pages/studio/ObservabilityPage.vue b/frontend/src/pages/studio/ObservabilityPage.vue index b9b139a..dde8af5 100644 --- a/frontend/src/pages/studio/ObservabilityPage.vue +++ b/frontend/src/pages/studio/ObservabilityPage.vue @@ -47,8 +47,9 @@ async function loadRuns() { try { const response = await listObservabilityRuns(); runs.value = response.data ?? []; - if (runs.value.length > 0) { - await loadTrace(runs.value[0].requestId); + const firstRun = runs.value[0]; + if (firstRun?.requestId) { + await loadTrace(firstRun.requestId); } } finally { loading.value = false;