From 2949a665f37df65fbdf0ec6163eea0d68fcba238 Mon Sep 17 00:00:00 2001 From: Momentry Studio Date: Sun, 1 Nov 2026 14:40:57 +0800 Subject: [PATCH] Revert "fix: add requiresApiKey to API endpoints and simplify cluster name persistence" This reverts commit 98aacc3d9c9db36bd58be258e7627bb81aa7a660. --- src/store.ts | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/src/store.ts b/src/store.ts index faa2b0f..75dc022 100644 --- a/src/store.ts +++ b/src/store.ts @@ -369,14 +369,51 @@ export function getClusterResults(fileUuid: string): any[] { } export function setClusterResults(fileUuid: string, results: any[]) { + console.log('[setClusterResults] Called with', results.length, 'groups') + if (results.length > 0) { + console.log('[setClusterResults] First group trace_ids:', results[0]?.trace_ids) + } + + // 直接從 localStorage 讀取自定義名稱,不受 clusterResultsCache 刪除影響 + let existingNames: Record = {} + try { + const saved = localStorage.getItem('momentry_cluster_results') + if (saved) { + const savedCache = JSON.parse(saved) + const existing = savedCache[fileUuid] || [] + for (const r of existing) { + // Use cluster_id as key (can be integer or string like "Person_0") + const key = r.cluster_id ?? r.name + if (key && r.name && !r.name.startsWith('Person_') && !r.name.startsWith('Trace ') && !r.name.startsWith('Face Trace ')) { + existingNames[String(key)] = r.name + } + } + console.log('[setClusterResults] Loaded custom names from localStorage:', existingNames) + } + } catch (e) { + console.error('[setClusterResults] Failed to read from localStorage:', e) + } + // Create new objects to trigger Vue reactivity - const newResults = results.map(r => ({ - ...r, - trace_ids: [...(r.trace_ids || [])] - })) + const newResults = results.map(r => { + const newR = { ...r, trace_ids: [...(r.trace_ids || [])] } + // Apply custom names - try matching by cluster_id first, then by original name + const cidKey = String(r.cluster_id ?? '') + const nameKey = r.name || '' + const customName = existingNames[cidKey] || existingNames[nameKey] + if (customName) { + newR.name = customName + console.log('[setClusterResults] Applied custom name:', customName, 'for cluster:', r.cluster_id, '(name:', r.name, ')') + } + return newR + }) clusterResultsCache.value = { ...clusterResultsCache.value, [fileUuid]: newResults } - // Save to localStorage for basic persistence (names now come from database) + console.log('[setClusterResults] Updated cache for', fileUuid, ':', newResults.length, 'groups') + if (newResults.length > 0) { + console.log('[setClusterResults] First group after update:', newResults[0]) + } + // Save to localStorage for persistence across page refreshes try { localStorage.setItem('momentry_cluster_results', JSON.stringify(clusterResultsCache.value)) } catch (e) {}