diff --git a/app/api/evaluations/[id]/route.ts b/app/api/evaluations/[id]/route.ts
index bdf4fc5..98961ad 100644
--- a/app/api/evaluations/[id]/route.ts
+++ b/app/api/evaluations/[id]/route.ts
@@ -53,11 +53,12 @@ export async function GET(
 
     const searchParams = request.nextUrl.searchParams;
     const exportFormat = searchParams.get('export_format') || 'row';
+    const resyncScore = searchParams.get('resync_score') || 'false';
 
     // Build URL with query parameters
     const url = new URL(`${backendUrl}/api/v1/evaluations/${id}`);
     url.searchParams.set('get_trace_info', 'true');
-    url.searchParams.set('resync_score', 'false');
+    url.searchParams.set('resync_score', resyncScore);
     url.searchParams.set('export_format', exportFormat);
 
     console.log(`[REAL BACKEND] Fetching evaluation ${id} from ${url.toString()}`);
diff --git a/app/components/ConfigCard.tsx b/app/components/ConfigCard.tsx
index 446665b..096d180 100644
--- a/app/components/ConfigCard.tsx
+++ b/app/components/ConfigCard.tsx
@@ -181,7 +181,7 @@ export default function ConfigCard({
                         }}
                       >
                         <span style={{ color: colors.text.secondary, fontSize: '11px' }}>
-                          Vector Store IDs ({allVectorStoreIds.length})
+                          Knowledge Base IDs ({allVectorStoreIds.length})
                         </span>
                         <svg
                           className={`w-3 h-3 transition-transform ${showVectorStores ? 'rotate-180' : ''}`}
diff --git a/app/components/ConfigDrawer.tsx b/app/components/ConfigDrawer.tsx
index e78025c..5070268 100644
--- a/app/components/ConfigDrawer.tsx
+++ b/app/components/ConfigDrawer.tsx
@@ -635,7 +635,7 @@ export default function ConfigDrawer({
                           marginBottom: '4px',
                         }}
                       >
-                        Vector Store ID
+                        Knowledge Base ID
                       </label>
                       <input
                         type="text"
diff --git a/app/components/ConfigModal.tsx b/app/components/ConfigModal.tsx
index 15b0269..1994b49 100644
--- a/app/components/ConfigModal.tsx
+++ b/app/components/ConfigModal.tsx
@@ -23,6 +23,7 @@ interface ConfigVersionInfo {
   tools?: any[];
   provider?: string;
   type?: 'text' | 'stt' | 'tts';
+  knowledge_base_ids?: string[];
 }
 
 export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: ConfigModalProps) {
@@ -83,6 +84,25 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
           const blob = versionData.data.config_blob;
           const params = blob?.completion?.params || {};
 
+          // Extract knowledge base IDs from multiple sources
+          const knowledgeBaseIds: string[] = [];
+
+          // 1. Check direct params.knowledge_base_ids
+          if (Array.isArray(params.knowledge_base_ids)) {
+            knowledgeBaseIds.push(...params.knowledge_base_ids);
+          }
+
+          // 2. Check tools array for knowledge_base_ids
+          if (params.tools) {
+            const toolKbIds = params.tools
+              .filter((tool: any) => Array.isArray(tool.knowledge_base_ids) && tool.knowledge_base_ids.length > 0)
+              .flatMap((tool: any) => tool.knowledge_base_ids);
+            knowledgeBaseIds.push(...toolKbIds);
+          }
+
+          // Remove duplicates
+          const uniqueKbIds = [...new Set(knowledgeBaseIds)];
+
           setConfigVersionInfo({
             name: configName || 'Unknown Config',
             version: job.config_version!,
@@ -92,6 +112,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
             tools: params.tools,
             provider: blob?.completion?.provider,
             type: blob?.completion?.type || 'text',
+            knowledge_base_ids: uniqueKbIds.length > 0 ? uniqueKbIds : undefined,
           });
         }
       } catch (error) {
@@ -124,13 +145,16 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
       >
         {/* Header */}
         <div className="px-6 py-4 border-b" style={{ borderColor: '#e5e5e5' }}>
-          <div className="flex items-center justify-between mb-3">
+          <div className="flex items-center justify-between">
             <div className="flex items-center gap-2">
               <svg className="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" style={{ color: '#737373' }}>
                 <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" />
                 <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" />
               </svg>
-              <h3 className="text-lg font-semibold" style={{ color: '#171717' }}>Detailed Configuration</h3>
+              <h3 className="text-lg font-semibold" style={{ color: '#171717' }}>
+                {configVersionInfo?.name || 'Detailed Configuration'}
+                {configVersionInfo?.version && <span className="text-sm font-normal" style={{ color: '#737373' }}> v{configVersionInfo.version}</span>}
+              </h3>
             </div>
             <button
               onClick={onClose}
@@ -154,47 +178,6 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
               </svg>
             </button>
           </div>
-
-          {/* Config Name and Version */}
-          {job.config_id && job.config_version && (
-            <div className="mt-2 px-4 py-3 rounded-lg" style={{ backgroundColor: '#f0f9ff', borderWidth: '1px', borderColor: '#bae6fd' }}>
-              {isLoadingConfig ? (
-                <div className="text-sm" style={{ color: '#0369a1' }}>Loading config info...</div>
-              ) : configVersionInfo ? (
-                <div>
-                  <div className="flex items-center gap-2 mb-2">
-                    <svg className="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" style={{ color: '#0369a1' }}>
-                      <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z" />
-                    </svg>
-                    <span className="text-sm font-semibold" style={{ color: '#0369a1' }}>
-                      {configVersionInfo.name} <span className="font-normal">v{configVersionInfo.version}</span>
-                    </span>
-                  </div>
-                  <div className="text-xs ml-6 space-y-1" style={{ color: '#0369a1' }}>
-                    {configVersionInfo.provider && configVersionInfo.model && (
-                      <div>
-                        <span className="font-medium">Model:</span> {configVersionInfo.provider}/{configVersionInfo.model}
-                      </div>
-                    )}
-                    {configVersionInfo.type && (
-                      <div>
-                        <span className="font-medium">Type:</span> {configVersionInfo.type.toUpperCase()}
-                      </div>
-                    )}
-                    {configVersionInfo.temperature !== undefined && (
-                      <div>
-                        <span className="font-medium">Temperature:</span> {configVersionInfo.temperature}
-                      </div>
-                    )}
-                  </div>
-                </div>
-              ) : (
-                <div className="text-sm" style={{ color: '#0369a1' }}>
-                  Config ID: {job.config_id} (v{job.config_version})
-                </div>
-              )}
-            </div>
-          )}
         </div>
 
         {/* Content */}
@@ -220,6 +203,19 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
             </div>
           </div>
 
+          {configVersionInfo?.knowledge_base_ids && configVersionInfo.knowledge_base_ids.length > 0 && (
+            <div>
+              <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#737373' }}>Knowledge Base IDs</div>
+              <div className="text-sm font-mono p-3 rounded-md border mb-4" style={{
+                backgroundColor: '#fafafa',
+                borderColor: '#e5e5e5',
+                color: '#171717'
+              }}>
+                {configVersionInfo.knowledge_base_ids.join(', ')}
+              </div>
+            </div>
+          )}
+
           {(configVersionInfo?.temperature !== undefined || assistantConfig?.temperature !== undefined || job.config?.temperature !== undefined) && (
             <div>
               <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#737373' }}>Temperature</div>
@@ -258,7 +254,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                       backgroundColor: '#fafafa',
                       borderWidth: '1px',
                       borderColor: '#e5e5e5',
-                      color: '#171717'
+                      color: '#000000'
                     }}
                   >
                     {tool.type}
@@ -266,20 +262,36 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                 ))}
               </div>
               {configVersionInfo.tools.map((tool, idx) => (
-                Array.isArray(tool.knowledge_base_ids) && tool.knowledge_base_ids.length > 0 && (
-                  <div key={`vs-${idx}`} className="mb-4">
-                    <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#737373' }}>
-                      Vector Store IDs ({tool.type})
+                <div key={`tool-details-${idx}`}>
+                  {Array.isArray(tool.knowledge_base_ids) && tool.knowledge_base_ids.length > 0 && (
+                    <div className="mb-3">
+                      <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#000000' }}>
+                        Knowledge Base IDs ({tool.type})
+                      </div>
+                      <div className="text-sm font-mono p-3 rounded-md border" style={{
+                        backgroundColor: '#fafafa',
+                        borderColor: '#e5e5e5',
+                        color: '#171717'
+                      }}>
+                        {tool.knowledge_base_ids.join(', ')}
+                      </div>
                     </div>
-                    <div className="text-sm font-mono p-3 rounded-md border" style={{
-                      backgroundColor: '#fafafa',
-                      borderColor: '#e5e5e5',
-                      color: '#171717'
-                    }}>
-                      {tool.knowledge_base_ids.join(', ')}
+                  )}
+                  {tool.max_num_results !== undefined && (
+                    <div className="mb-4">
+                      <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#000000' }}>
+                        Max Results ({tool.type})
+                      </div>
+                      <div className="text-sm font-mono p-3 rounded-md border" style={{
+                        backgroundColor: '#fafafa',
+                        borderColor: '#e5e5e5',
+                        color: '#171717'
+                      }}>
+                        {tool.max_num_results}
+                      </div>
                     </div>
-                  </div>
-                )
+                  )}
+                </div>
               ))}
             </div>
           )}
@@ -296,7 +308,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                       backgroundColor: '#fafafa',
                       borderWidth: '1px',
                       borderColor: '#e5e5e5',
-                      color: '#171717'
+                      color: '#000000'
                     }}
                   >
                     {tool.type}
@@ -304,27 +316,43 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                 ))}
               </div>
               {job.config.tools.map((tool, idx) => (
-                Array.isArray(tool.knowledge_base_ids) && tool.knowledge_base_ids.length > 0 && (
-                  <div key={`vs-${idx}`} className="mb-4">
-                    <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#737373' }}>
-                      Vector Store IDs ({tool.type})
+                <div key={`tool-details-${idx}`}>
+                  {Array.isArray(tool.knowledge_base_ids) && tool.knowledge_base_ids.length > 0 && (
+                    <div className="mb-3">
+                      <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#000000' }}>
+                        Knowledge Base IDs ({tool.type})
+                      </div>
+                      <div className="text-sm font-mono p-3 rounded-md border" style={{
+                        backgroundColor: '#fafafa',
+                        borderColor: '#e5e5e5',
+                        color: '#171717'
+                      }}>
+                        {tool.knowledge_base_ids.join(', ')}
+                      </div>
                     </div>
-                    <div className="text-sm font-mono p-3 rounded-md border" style={{
-                      backgroundColor: '#fafafa',
-                      borderColor: '#e5e5e5',
-                      color: '#171717'
-                    }}>
-                      {tool.knowledge_base_ids.join(', ')}
+                  )}
+                  {tool.max_num_results !== undefined && (
+                    <div className="mb-4">
+                      <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#000000' }}>
+                        Max Results ({tool.type})
+                      </div>
+                      <div className="text-sm font-mono p-3 rounded-md border" style={{
+                        backgroundColor: '#fafafa',
+                        borderColor: '#e5e5e5',
+                        color: '#171717'
+                      }}>
+                        {tool.max_num_results}
+                      </div>
                     </div>
-                  </div>
-                )
+                  )}
+                </div>
               ))}
             </div>
           )}
 
           {Array.isArray(assistantConfig?.knowledge_base_ids) && assistantConfig.knowledge_base_ids.length > 0 && (
             <div>
-              <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#737373' }}>Vector Store IDs</div>
+              <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#000000' }}>Knowledge Base IDs</div>
               <div className="text-sm font-mono p-3 rounded-md border" style={{
                 backgroundColor: '#fafafa',
                 borderColor: '#e5e5e5',
@@ -377,4 +405,4 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
       </div>
     </div>
   );
-}
+}
\ No newline at end of file
diff --git a/app/components/ConfigSelector.tsx b/app/components/ConfigSelector.tsx
index 84f9263..e0c7893 100644
--- a/app/components/ConfigSelector.tsx
+++ b/app/components/ConfigSelector.tsx
@@ -4,7 +4,7 @@
  */
 
 "use client"
-import React, { useState, useEffect } from 'react';
+import { useState } from 'react';
 import { useRouter } from 'next/navigation';
 import { colors } from '@/app/lib/colors';
 import { useConfigs, SavedConfig, formatRelativeTime } from '@/app/lib/useConfigs';
@@ -30,16 +30,31 @@ export default function ConfigSelector({
   const router = useRouter();
   const { configs, configGroups, isLoading, error } = useConfigs();
   const [isDropdownOpen, setIsDropdownOpen] = useState(false);
+  const [searchQuery, setSearchQuery] = useState('');
 
   // Find currently selected config
   const selectedConfig = configs.find(
     c => c.config_id === selectedConfigId && c.version === selectedVersion
   );
 
+  // Filter config groups based on search query
+  const filteredConfigGroups = searchQuery.trim()
+    ? configGroups.filter(group =>
+        group.name.toLowerCase().includes(searchQuery.toLowerCase())
+      )
+    : configGroups;
+
   // Handle config selection
   const handleSelect = (config: SavedConfig) => {
     onConfigSelect(config.config_id, config.version);
     setIsDropdownOpen(false);
+    setSearchQuery(''); // Clear search on selection
+  };
+
+  // Handle dropdown close
+  const handleCloseDropdown = () => {
+    setIsDropdownOpen(false);
+    setSearchQuery(''); // Clear search on close
   };
 
   // Build URL params preserving evaluation context
@@ -204,48 +219,82 @@ export default function ConfigSelector({
         <>
           {/* Dropdown Selector */}
           <div className="relative">
-            <button
-              onClick={() => !disabled && setIsDropdownOpen(!isDropdownOpen)}
-              disabled={disabled}
-              className="w-full px-4 py-3 rounded-md text-left flex items-center justify-between transition-colors"
-              style={{
-                backgroundColor: disabled ? colors.bg.secondary : colors.bg.primary,
-                border: `1px solid ${selectedConfig ? colors.accent.primary : colors.border}`,
-                color: colors.text.primary,
-                cursor: disabled ? 'not-allowed' : 'pointer',
-              }}
-            >
-              {selectedConfig ? (
-                <div className="flex-1 min-w-0">
-                  <div className="flex items-center gap-2">
-                    <span className="font-medium truncate">{selectedConfig.name}</span>
-                    <span
-                      className="text-xs px-1.5 py-0.5 rounded"
-                      style={{ backgroundColor: colors.bg.secondary, color: colors.text.secondary }}
-                    >
-                      v{selectedConfig.version}
-                    </span>
-                  </div>
-                  <div className="text-xs mt-0.5" style={{ color: colors.text.secondary }}>
-                    {selectedConfig.provider}/{selectedConfig.modelName} • T:{selectedConfig.temperature.toFixed(2)}
-                  </div>
-                </div>
-              ) : (
-                <span style={{ color: colors.text.secondary }}>Select a configuration...</span>
-              )}
-              <svg
-                className="w-5 h-5 flex-shrink-0 ml-2 transition-transform"
+            {isDropdownOpen ? (
+              /* Search Input when dropdown is open */
+              <div
+                className="w-full px-4 py-3 rounded-md flex items-center justify-between"
+                style={{
+                  backgroundColor: colors.bg.primary,
+                  border: `1px solid ${colors.accent.primary}`,
+                }}
+              >
+                <input
+                  type="text"
+                  value={searchQuery}
+                  onChange={(e) => setSearchQuery(e.target.value)}
+                  placeholder="Search configurations..."
+                  className="flex-1 bg-transparent text-sm focus:outline-none"
+                  style={{ color: colors.text.primary }}
+                  autoFocus
+                />
+                <svg
+                  className="w-5 h-5 flex-shrink-0 ml-2 transition-transform"
+                  style={{
+                    color: colors.text.secondary,
+                    transform: 'rotate(180deg)'
+                  }}
+                  fill="none"
+                  viewBox="0 0 24 24"
+                  stroke="currentColor"
+                >
+                  <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M19 9l-7 7-7-7" />
+                </svg>
+              </div>
+            ) : (
+              /* Button when dropdown is closed */
+              <button
+                onClick={() => !disabled && setIsDropdownOpen(!isDropdownOpen)}
+                disabled={disabled}
+                className="w-full px-4 py-3 rounded-md text-left flex items-center justify-between transition-colors"
                 style={{
-                  color: colors.text.secondary,
-                  transform: isDropdownOpen ? 'rotate(180deg)' : 'rotate(0deg)'
+                  backgroundColor: disabled ? colors.bg.secondary : colors.bg.primary,
+                  border: `1px solid ${selectedConfig ? colors.accent.primary : colors.border}`,
+                  color: colors.text.primary,
+                  cursor: disabled ? 'not-allowed' : 'pointer',
                 }}
-                fill="none"
-                viewBox="0 0 24 24"
-                stroke="currentColor"
               >
-                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M19 9l-7 7-7-7" />
-              </svg>
-            </button>
+                {selectedConfig ? (
+                  <div className="flex-1 min-w-0">
+                    <div className="flex items-center gap-2">
+                      <span className="font-medium truncate">{selectedConfig.name}</span>
+                      <span
+                        className="text-xs px-1.5 py-0.5 rounded"
+                        style={{ backgroundColor: colors.bg.secondary, color: colors.text.secondary }}
+                      >
+                        v{selectedConfig.version}
+                      </span>
+                    </div>
+                    <div className="text-xs mt-0.5" style={{ color: colors.text.secondary }}>
+                      {selectedConfig.provider}/{selectedConfig.modelName} • T:{selectedConfig.temperature.toFixed(2)}
+                    </div>
+                  </div>
+                ) : (
+                  <span style={{ color: colors.text.secondary }}>Select a configuration...</span>
+                )}
+                <svg
+                  className="w-5 h-5 flex-shrink-0 ml-2 transition-transform"
+                  style={{
+                    color: colors.text.secondary,
+                    transform: 'rotate(0deg)'
+                  }}
+                  fill="none"
+                  viewBox="0 0 24 24"
+                  stroke="currentColor"
+                >
+                  <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M19 9l-7 7-7-7" />
+                </svg>
+              </button>
+            )}
 
             {/* Dropdown Menu */}
             {isDropdownOpen && (
@@ -256,7 +305,12 @@ export default function ConfigSelector({
                   border: `1px solid ${colors.border}`,
                 }}
               >
-                {configGroups.map((group) => (
+                {filteredConfigGroups.length === 0 ? (
+                  <div className="px-4 py-6 text-center text-sm" style={{ color: colors.text.secondary }}>
+                    {searchQuery ? `No configurations match "${searchQuery}"` : 'No configurations available'}
+                  </div>
+                ) : (
+                  filteredConfigGroups.map((group) => (
                   <div key={group.config_id}>
                     {/* Config group header */}
                     <div
@@ -309,7 +363,7 @@ export default function ConfigSelector({
                       </button>
                     ))}
                   </div>
-                ))}
+                )))}
               </div>
             )}
           </div>
@@ -381,7 +435,7 @@ export default function ConfigSelector({
       {isDropdownOpen && (
         <div
           className="fixed inset-0 z-40"
-          onClick={() => setIsDropdownOpen(false)}
+          onClick={handleCloseDropdown}
         />
       )}
     </div>
diff --git a/app/components/DetailedResultsTable.tsx b/app/components/DetailedResultsTable.tsx
index e63c66d..8b7f7ef 100644
--- a/app/components/DetailedResultsTable.tsx
+++ b/app/components/DetailedResultsTable.tsx
@@ -5,7 +5,7 @@
  * Supports both row format (individual traces) and grouped format (multiple answers per question)
  */
 
-import { IndividualScore, TraceScore, getScoreObject, normalizeToIndividualScores, isNewScoreObject, isNewScoreObjectV2, isGroupedFormat, GroupedTraceItem } from './types';
+import { IndividualScore, TraceScore, getScoreObject, normalizeToIndividualScores, hasSummaryScores, isNewScoreObjectV2, isGroupedFormat, GroupedTraceItem } from './types';
 import { EvalJob } from './types';
 
 interface DetailedResultsTableProps {
@@ -15,7 +15,8 @@ interface DetailedResultsTableProps {
 export default function DetailedResultsTable({ job }: DetailedResultsTableProps) {
   const scoreObject = getScoreObject(job);
 
-  if (!scoreObject || (!isNewScoreObject(scoreObject) && !isNewScoreObjectV2(scoreObject))) {
+  // 1. First check: Does it have summary_scores at all?
+  if (!scoreObject || !hasSummaryScores(scoreObject)) {
     return (
       <div className="border rounded-lg p-6 text-center" style={{ backgroundColor: '#fef3c7', borderColor: '#fbbf24' }}>
         <p className="text-sm" style={{ color: '#92400e' }}>
@@ -25,19 +26,25 @@ export default function DetailedResultsTable({ job }: DetailedResultsTableProps)
     );
   }
 
-  // Check if grouped format
-  if (isNewScoreObjectV2(scoreObject) && isGroupedFormat(scoreObject.traces)) {
-    return <GroupedResultsTable traces={scoreObject.traces as GroupedTraceItem[]} />;
+  // 2. Second check: Does it have traces? (NewScoreObjectV2)
+  if (isNewScoreObjectV2(scoreObject)) {
+    // Check if grouped format
+    if (isGroupedFormat(scoreObject.traces)) {
+      return <GroupedResultsTable traces={scoreObject.traces as GroupedTraceItem[]} />;
+    }
+    // Otherwise show row format
   }
 
-  // Normalize to IndividualScore format for backward compatibility
+  // 3. Try to normalize to IndividualScore format
+  // This handles NewScoreObjectV2 (with traces)
   const individual_scores = normalizeToIndividualScores(scoreObject);
 
+  // 4. If no individual scores available (e.g., BasicScoreObject with only summary_scores)
   if (!individual_scores || individual_scores.length === 0) {
     return (
       <div className="border rounded-lg p-6 text-center" style={{ backgroundColor: '#fef3c7', borderColor: '#fbbf24' }}>
         <p className="text-sm" style={{ color: '#92400e' }}>
-          No individual scores available
+          No individual scores available. Only summary metrics are available for this evaluation.
         </p>
       </div>
     );
diff --git a/app/components/ScoreDisplay.tsx b/app/components/ScoreDisplay.tsx
index cbefccf..8299e0f 100644
--- a/app/components/ScoreDisplay.tsx
+++ b/app/components/ScoreDisplay.tsx
@@ -5,7 +5,7 @@
 
 "use client"
 import React from 'react';
-import { ScoreObject, isNewScoreObject, isNewScoreObjectV2 } from './types';
+import { ScoreObject, hasSummaryScores } from './types';
 
 interface ScoreDisplayProps {
   score: ScoreObject | null;
@@ -36,10 +36,8 @@ export default function ScoreDisplay({ score, errorMessage }: ScoreDisplayProps)
     );
   }
 
-  // Handle new score format (V1 or V2) - show summary scores
-  const isNewFormat = isNewScoreObject(score) || isNewScoreObjectV2(score);
-
-  if (isNewFormat && 'summary_scores' in score) {
+  // Handle score format with summary_scores (V1, V2, or Basic)
+  if (hasSummaryScores(score)) {
     const summaryScores = score.summary_scores || [];
 
     if (summaryScores.length === 0) {
@@ -81,33 +79,32 @@ export default function ScoreDisplay({ score, errorMessage }: ScoreDisplayProps)
       );
     }
 
-    // Display numeric scores in a compact format
+    // Display each numeric score in its own box
     return (
-      <div className="inline-flex items-center gap-3 flex-wrap">
-        {numericScores.map((summary) => (
-          <div
-            key={summary.name}
-            className="inline-flex items-center gap-2 px-3 py-1.5 rounded-md text-sm"
-            style={{
-              backgroundColor: 'hsl(0, 0%, 98%)',
-              borderWidth: '1px',
-              borderColor: 'hsl(0, 0%, 85%)',
-              color: 'hsl(330, 3%, 19%)'
-            }}
-          >
-            <span className="font-medium text-xs" style={{ color: 'hsl(330, 3%, 49%)' }}>
-              {summary.name}:
-            </span>
-            <span className="font-semibold">
-              {summary.avg !== undefined ? summary.avg.toFixed(2) : 'N/A'}
-            </span>
-            {summary.std !== undefined && (
-              <span className="text-xs" style={{ color: 'hsl(330, 3%, 49%)' }}>
-                ±{summary.std.toFixed(2)}
-              </span>
-            )}
-          </div>
-        ))}
+      <div className="inline-flex items-center gap-3">
+        {numericScores.map((summary, idx) => {
+          const value = summary.avg !== undefined ? summary.avg.toFixed(2) : 'N/A';
+          const std = summary.std !== undefined ? summary.std.toFixed(2) : null;
+
+          return (
+            <div
+              key={idx}
+              className="inline-flex items-center gap-1.5 px-4 py-2 rounded-lg text-sm"
+              style={{
+                backgroundColor: '#ffffff',
+                borderWidth: '1px',
+                borderColor: '#e5e5e5',
+                color: '#737373'
+              }}
+            >
+              <span>{summary.name}:</span>
+              <span className="font-bold" style={{ color: '#171717' }}>{value}</span>
+              {std !== null && (
+                <span>±{std}</span>
+              )}
+            </div>
+          );
+        })}
       </div>
     );
   }
@@ -127,4 +124,4 @@ export default function ScoreDisplay({ score, errorMessage }: ScoreDisplayProps)
       <span>Unsupported format</span>
     </div>
   );
-}
+}
\ No newline at end of file
diff --git a/app/components/prompt-editor/ConfigEditorPane.tsx b/app/components/prompt-editor/ConfigEditorPane.tsx
index d63e2e6..0c43c9c 100644
--- a/app/components/prompt-editor/ConfigEditorPane.tsx
+++ b/app/components/prompt-editor/ConfigEditorPane.tsx
@@ -66,6 +66,7 @@ export default function ConfigEditorPane({
   onToggle,
 }: ConfigEditorPaneProps) {
   const [isDropdownOpen, setIsDropdownOpen] = useState(false);
+  const [showTooltip, setShowTooltip] = useState<number | null>(null);
 
   const provider = configBlob.completion.provider;
   const params = configBlob.completion.params;
@@ -587,7 +588,7 @@ export default function ConfigEditorPane({
                 }}
               >
                 <div className="flex justify-between items-center mb-2">
-                  <span className="text-xs font-semibold">File Search</span>
+                  <span className="text-xs font-semibold" style={{ color: colors.text.primary }}>File Search</span>
                   <button
                     onClick={() => handleRemoveTool(index)}
                     className="text-xs"
@@ -604,9 +605,9 @@ export default function ConfigEditorPane({
                 <div className="mb-2">
                   <label
                     className="block text-xs mb-1"
-                    style={{ color: colors.text.secondary }}
+                    style={{ color: colors.text.primary }}
                   >
-                    Vector Store ID
+                    Knowledge Base ID
                   </label>
                   <input
                     type="text"
@@ -619,16 +620,69 @@ export default function ConfigEditorPane({
                     style={{
                       border: `1px solid ${colors.border}`,
                       backgroundColor: colors.bg.primary,
+                      color: colors.text.primary,
                     }}
                   />
                 </div>
                 <div>
-                  <label
-                    className="block text-xs mb-1"
-                    style={{ color: colors.text.secondary }}
-                  >
-                    Max Results
-                  </label>
+                  <div className="flex items-center gap-1 mb-1">
+                    <label
+                      className="text-xs"
+                      style={{ color: colors.text.primary }}
+                    >
+                      Max Results
+                    </label>
+                    <div
+                      className="relative inline-flex items-center justify-center cursor-help"
+                      style={{ width: '14px', height: '14px' }}
+                      onMouseEnter={() => setShowTooltip(index)}
+                      onMouseLeave={() => setShowTooltip(null)}
+                    >
+                      <svg
+                        className="w-3.5 h-3.5"
+                        fill="none"
+                        viewBox="0 0 24 24"
+                        stroke="currentColor"
+                        style={{ color: colors.text.secondary }}
+                      >
+                        <path
+                          strokeLinecap="round"
+                          strokeLinejoin="round"
+                          strokeWidth={2}
+                          d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
+                        />
+                      </svg>
+                      {showTooltip === index && (
+                        <div
+                          className="absolute left-full ml-2 px-2 py-1.5 rounded text-xs z-50"
+                          style={{
+                            backgroundColor: '#1f2937',
+                            color: '#ffffff',
+                            top: '50%',
+                            transform: 'translateY(-50%)',
+                            boxShadow: '0 2px 8px rgba(0, 0, 0, 0.15)',
+                            whiteSpace: 'nowrap',
+                            lineHeight: '1.4',
+                          }}
+                        >
+                          Controls how many matching results are returned<br />from the search
+                          <div
+                            style={{
+                              position: 'absolute',
+                              right: '100%',
+                              top: '50%',
+                              transform: 'translateY(-50%)',
+                              width: 0,
+                              height: 0,
+                              borderTop: '4px solid transparent',
+                              borderBottom: '4px solid transparent',
+                              borderRight: '4px solid #1f2937',
+                            }}
+                          />
+                        </div>
+                      )}
+                    </div>
+                  </div>
                   <input
                     type="number"
                     value={tool.max_num_results}
@@ -643,6 +697,7 @@ export default function ConfigEditorPane({
                     style={{
                       border: `1px solid ${colors.border}`,
                       backgroundColor: colors.bg.primary,
+                      color: colors.text.primary,
                     }}
                   />
                 </div>
diff --git a/app/components/prompt-editor/CurrentConfigTab.tsx b/app/components/prompt-editor/CurrentConfigTab.tsx
index aba579b..0656078 100644
--- a/app/components/prompt-editor/CurrentConfigTab.tsx
+++ b/app/components/prompt-editor/CurrentConfigTab.tsx
@@ -393,7 +393,7 @@ export default function CurrentConfigTab({
                   marginBottom: '4px',
                 }}
               >
-                Vector Store ID
+                Knowledge Base ID
               </label>
               <input
                 type="text"
diff --git a/app/components/prompt-editor/DiffView.tsx b/app/components/prompt-editor/DiffView.tsx
index a2bba25..a11304d 100644
--- a/app/components/prompt-editor/DiffView.tsx
+++ b/app/components/prompt-editor/DiffView.tsx
@@ -212,10 +212,10 @@ export default function DiffView({
                         <div className="text-sm space-y-2">
                           {selectedCommit.tools.map((tool, idx) => (
                             <div key={idx} className="p-2 rounded" style={{ backgroundColor: colors.bg.secondary }}>
-                              <div className="text-xs font-semibold">{tool.type}</div>
+                              <div className="text-xs font-semibold" style={{ color: colors.text.secondary }}>{tool.type}</div>
                               {tool.knowledge_base_ids && (
                                 <div className="text-xs mt-1" style={{ color: colors.text.secondary }}>
-                                  Vector Store: {tool.knowledge_base_ids[0]}
+                                  Knowledge Base: {tool.knowledge_base_ids[0]}
                                 </div>
                               )}
                             </div>
diff --git a/app/components/types.ts b/app/components/types.ts
index bfae124..8dad6e3 100644
--- a/app/components/types.ts
+++ b/app/components/types.ts
@@ -61,12 +61,6 @@ export interface NewScoreObjectV2 {
   traces: TraceItem[] | GroupedTraceItem[];
 }
 
-// Original new score object with individual_scores
-export interface NewScoreObject {
-  summary_scores: SummaryScore[];
-  individual_scores: IndividualScore[];
-}
-
 // Legacy score structure (for backward compatibility)
 export interface PerItemScore {
   trace_id: string;
@@ -84,8 +78,13 @@ export interface LegacyScoreObject {
   cosine_similarity: CosineSimilarity;
 }
 
+// Basic score object with only summary scores (no individual scores or traces)
+export interface BasicScoreObject {
+  summary_scores: SummaryScore[];
+}
+
 // Union type to support both old and new structures
-export type ScoreObject = NewScoreObjectV2 | NewScoreObject | LegacyScoreObject;
+export type ScoreObject = NewScoreObjectV2 | BasicScoreObject | LegacyScoreObject;
 
 export interface AssistantConfig {
   name: string;
@@ -135,14 +134,30 @@ export interface EvalJob {
 }
 
 // Type guard functions
+
+// Shared guard: Check if score has summary_scores and intelligently narrow to NewScoreObjectV2 or BasicScoreObject
+// Priority: If it has traces → NewScoreObjectV2, otherwise → BasicScoreObject
+export function hasSummaryScores(score: ScoreObject | null | undefined): score is NewScoreObjectV2 | BasicScoreObject {
+  if (!score) return false;
+  if (!('summary_scores' in score)) return false;
+
+  // Prioritize traces format if available
+  if ('traces' in score) {
+    return true; 
+  }
+
+  // Otherwise, it's BasicScoreObject (summary_scores only, no traces, no individual_scores)
+  return true;
+}
+
 export function isNewScoreObjectV2(score: ScoreObject | null | undefined): score is NewScoreObjectV2 {
   if (!score) return false;
   return 'summary_scores' in score && 'traces' in score;
 }
 
-export function isNewScoreObject(score: ScoreObject | null | undefined): score is NewScoreObject {
+export function isBasicScoreObject(score: ScoreObject | null | undefined): score is BasicScoreObject {
   if (!score) return false;
-  return 'summary_scores' in score && 'individual_scores' in score;
+  return 'summary_scores' in score && !('traces' in score);
 }
 
 export function isLegacyScoreObject(score: ScoreObject | null | undefined): score is LegacyScoreObject {
@@ -160,24 +175,31 @@ export function isGroupedFormat(traces: TraceItem[] | GroupedTraceItem[]): trace
   return "llm_answers" in traces[0] && Array.isArray(traces[0].llm_answers);
 }
 
-// Normalize traces to IndividualScore format for backward compatibility
+// Normalize traces to IndividualScore format for table display
 export function normalizeToIndividualScores(score: ScoreObject | null | undefined): IndividualScore[] {
   if (!score) return [];
 
   if (isNewScoreObjectV2(score)) {
-    // Convert TraceItem[] to IndividualScore[]
-    return score.traces.map(trace => ({
-      trace_id: trace.trace_id,
-      input: { question: trace.question },
-      output: { answer: trace.llm_answer },
-      metadata: { ground_truth: trace.ground_truth_answer },
-      trace_scores: trace.scores
-    }));
-  }
-
-  if (isNewScoreObject(score)) {
-    return score.individual_scores;
+    // Convert TraceItem[] to IndividualScore[] for table display
+    // Note: Grouped traces should be detected earlier and handled separately
+    return score.traces.map((trace: TraceItem | GroupedTraceItem) => {
+      // Handle regular TraceItem format
+      if ('llm_answer' in trace) {
+        return {
+          trace_id: trace.trace_id,
+          input: { question: trace.question },
+          output: { answer: trace.llm_answer },
+          metadata: { ground_truth: trace.ground_truth_answer },
+          trace_scores: trace.scores
+        };
+      }
+      // Should not reach here if grouped format is handled properly
+      return {
+        trace_id: '',
+        trace_scores: []
+      };
+    });
   }
 
   return [];
-}
+}
\ No newline at end of file
diff --git a/app/evaluations/[id]/page.tsx b/app/evaluations/[id]/page.tsx
index 3844142..27b4ead 100644
--- a/app/evaluations/[id]/page.tsx
+++ b/app/evaluations/[id]/page.tsx
@@ -8,7 +8,7 @@
 import { useState, useEffect, useCallback } from 'react';
 import { useRouter, useParams } from 'next/navigation';
 import { APIKey, STORAGE_KEY } from '../../keystore/page';
-import { EvalJob, AssistantConfig, isNewScoreObject, isNewScoreObjectV2, getScoreObject, normalizeToIndividualScores, GroupedTraceItem, isGroupedFormat } from '../../components/types';
+import { EvalJob, AssistantConfig, hasSummaryScores, isNewScoreObjectV2, getScoreObject, normalizeToIndividualScores, GroupedTraceItem, isGroupedFormat } from '../../components/types';
 import { formatDate, getStatusColor } from '../../components/utils';
 import ConfigModal from '../../components/ConfigModal';
 import Sidebar from '../../components/Sidebar';
@@ -42,7 +42,8 @@ export default function EvaluationReport() {
   const [isConfigModalOpen, setIsConfigModalOpen] = useState(false);
   const [configVersionInfo, setConfigVersionInfo] = useState<ConfigVersionInfo | null>(null);
   const [exportFormat, setExportFormat] = useState<'row' | 'grouped'>('row');
-  
+  const [isResyncing, setIsResyncing] = useState(false);
+  const [showNoTracesModal, setShowNoTracesModal] = useState(false);
 
   // Load API keys from localStorage
   useEffect(() => {
@@ -253,7 +254,7 @@ export default function EvaluationReport() {
       document.body.removeChild(link);
       URL.revokeObjectURL(url);
 
-      toast.info(`Grouped CSV exported with ${traces.length} questions`);
+      toast.success(`Grouped CSV exported with ${traces.length} questions`);
     } catch (error) {
       console.error('Error exporting grouped CSV:', error);
       toast.error('Failed to export grouped CSV');
@@ -319,7 +320,7 @@ export default function EvaluationReport() {
       document.body.removeChild(link);
       URL.revokeObjectURL(url);
 
-      toast.info(`CSV exported successfully with ${rowCount} rows`);
+      toast.success(`CSV exported successfully with ${rowCount} rows`);
     } catch (error) {
       console.error('Error exporting row CSV:', error);
       toast.error('Failed to export CSV');
@@ -358,6 +359,68 @@ export default function EvaluationReport() {
     }
   };
 
+  // Resync metrics from backend
+  const handleResync = async () => {
+    if (!selectedKeyId || !jobId) return;
+
+    const selectedKey = apiKeys.find(k => k.id === selectedKeyId);
+    if (!selectedKey) return;
+
+    setIsResyncing(true);
+
+    try {
+      // Fetch with resync_score=true to trigger backend resync
+      const response = await fetch(`/api/evaluations/${jobId}?get_trace_info=true&resync_score=true&export_format=${exportFormat}`, {
+        method: 'GET',
+        headers: {
+          'X-API-KEY': selectedKey.key,
+        },
+      });
+
+      if (!response.ok) {
+        const errorData = await response.json().catch(() => ({}));
+        throw new Error(errorData.error || errorData.message || `Failed to resync: ${response.status}`);
+      }
+
+      const data = await response.json();
+      const foundJob = data.data || data;
+
+      if (!foundJob) {
+        throw new Error('Evaluation job not found');
+      }
+
+      // Check if the new data has traces
+      const newScoreObject = getScoreObject(foundJob);
+      const hasTraces = newScoreObject && isNewScoreObjectV2(newScoreObject);
+
+      // If no traces in new data, show modal and don't update
+      if (!hasTraces) {
+        setShowNoTracesModal(true);
+        setIsResyncing(false);
+        return;
+      }
+
+      setJob(foundJob);
+
+      // Fetch assistant config if assistant_id exists
+      if (foundJob.assistant_id) {
+        fetchAssistantConfig(foundJob.assistant_id, selectedKey.key);
+      }
+
+      // Fetch config info if config_id exists
+      if (foundJob.config_id && foundJob.config_version) {
+        fetchConfigInfo(foundJob.config_id, foundJob.config_version, selectedKey.key);
+      }
+
+      toast.success('Metrics resynced successfully');
+    } catch (error: any) {
+      console.error('Resync error:', error);
+      toast.error(`Failed to resync metrics: ${error.message || 'Unknown error'}`);
+    } finally {
+      setIsResyncing(false);
+    }
+  };
+
 
   if (isLoading) {
     return (
@@ -406,11 +469,11 @@ export default function EvaluationReport() {
   const hasScore = !!scoreObject;
   const statusColors = getStatusColor(job.status);
 
-  // Check if we have new score structure (V1 or V2)
-  const isNewFormat = isNewScoreObject(scoreObject) || isNewScoreObjectV2(scoreObject);
+  // Check if we have new score structure (V1, V2, or Basic)
+  const isNewFormat = hasSummaryScores(scoreObject);
 
   // Safe access to summary scores
-  const summaryScores = (isNewFormat && scoreObject && 'summary_scores' in scoreObject)
+  const summaryScores = (isNewFormat && scoreObject)
     ? scoreObject.summary_scores || []
     : [];
 
@@ -512,6 +575,16 @@ export default function EvaluationReport() {
                               {configVersionInfo.provider}/{configVersionInfo.model}
                             </span>
                           )}
+                          {configVersionInfo.tools && configVersionInfo.tools.length > 0 && (() => {
+                            const knowledgeBaseIds = configVersionInfo.tools
+                              .filter(tool => Array.isArray(tool.knowledge_base_ids) && tool.knowledge_base_ids.length > 0)
+                              .flatMap(tool => tool.knowledge_base_ids);
+                            return knowledgeBaseIds.length > 0 ? (
+                              <span className="text-[10px]" style={{ color: '#0369a1', opacity: 0.8 }}>
+                                KB: {knowledgeBaseIds.join(', ')}
+                              </span>
+                            ) : null;
+                          })()}
                         </div>
                       </div>
                     </>
@@ -638,11 +711,33 @@ export default function EvaluationReport() {
               {/* Metrics Section */}
               {hasScore && isNewFormat ? (
                 <div>
-                  <div className="flex items-center gap-2 mb-3">
-                    <svg className="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" style={{ color: colors.text.secondary }}>
-                      <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M16 8v8m-4-5v5m-4-2v2m-2 4h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" />
-                    </svg>
-                    <h3 className="text-lg font-semibold" style={{ color: colors.text.primary }}>Metrics Overview</h3>
+                  <div className="flex items-center justify-between mb-3">
+                    <div className="flex items-center gap-2">
+                      <svg className="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" style={{ color: colors.text.secondary }}>
+                        <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M16 8v8m-4-5v5m-4-2v2m-2 4h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" />
+                      </svg>
+                      <h3 className="text-lg font-semibold" style={{ color: colors.text.primary }}>Metrics Overview</h3>
+                    </div>
+                    <button
+                      onClick={handleResync}
+                      disabled={isResyncing}
+                      className="px-4 py-2 rounded-md text-sm font-medium transition-colors"
+                      style={{
+                        backgroundColor: isResyncing ? colors.bg.secondary : colors.bg.primary,
+                        borderWidth: '1px',
+                        borderColor: colors.border,
+                        color: isResyncing ? colors.text.secondary : colors.text.primary,
+                        cursor: isResyncing ? 'not-allowed' : 'pointer'
+                      }}
+                      onMouseEnter={(e) => {
+                        if (!isResyncing) e.currentTarget.style.backgroundColor = colors.bg.secondary;
+                      }}
+                      onMouseLeave={(e) => {
+                        if (!isResyncing) e.currentTarget.style.backgroundColor = colors.bg.primary;
+                      }}
+                    >
+                      {isResyncing ? 'Resyncing...' : 'Resync'}
+                    </button>
                   </div>
                   <div className="border rounded-lg p-6" style={{ backgroundColor: colors.bg.primary, borderColor: colors.border }}>
                     {summaryScores.length > 0 ? (
@@ -733,6 +828,46 @@ export default function EvaluationReport() {
         job={job}
         assistantConfig={assistantConfig}
       />
+
+      {/* No Traces Modal */}
+      {showNoTracesModal && (
+        <div
+          className="fixed inset-0 z-50 flex items-center justify-center"
+          style={{ backgroundColor: 'rgba(0, 0, 0, 0.5)' }}
+          onClick={() => setShowNoTracesModal(false)}
+        >
+          <div
+            className="rounded-lg shadow-lg p-6 max-w-md mx-4"
+            style={{ backgroundColor: colors.bg.primary }}
+            onClick={(e) => e.stopPropagation()}
+          >
+            <div className="mb-4">
+              <h3 className="text-lg font-semibold mb-2" style={{ color: colors.text.primary }}>
+                No Langfuse Traces Available
+              </h3>
+              <p className="text-sm" style={{ color: colors.text.secondary }}>
+                This evaluation does not have Langfuse traces.
+              </p>
+            </div>
+            <div className="flex justify-end">
+              <button
+                onClick={() => setShowNoTracesModal(false)}
+                className="px-4 py-2 rounded-md text-sm font-medium"
+                style={{
+                  backgroundColor: colors.accent.primary,
+                  color: '#ffffff',
+                  cursor: 'pointer',
+                  transition: 'all 0.15s ease'
+                }}
+                onMouseEnter={(e) => e.currentTarget.style.backgroundColor = colors.accent.hover}
+                onMouseLeave={(e) => e.currentTarget.style.backgroundColor = colors.accent.primary}
+              >
+                OK
+              </button>
+            </div>
+          </div>
+        </div>
+      )}
     </div>
   );
 }
diff --git a/app/lib/useConfigs.ts b/app/lib/useConfigs.ts
index 0e74044..6ec6a9b 100644
--- a/app/lib/useConfigs.ts
+++ b/app/lib/useConfigs.ts
@@ -455,11 +455,21 @@ async function fetchAllConfigs(apiKey: string): Promise<FetchResult> {
 // ============ UTILITY FUNCTIONS ============
 
 // Format timestamp as relative time
+// Handles UTC timestamps from the database and converts them to local time
 export const formatRelativeTime = (timestamp: string | number): string => {
   const now = Date.now();
-  const date = typeof timestamp === 'string'
-    ? new Date(timestamp).getTime()
-    : timestamp;
+
+  let date: number;
+  if (typeof timestamp === 'string') {
+    // If timestamp doesn't include timezone info, assume it's UTC
+    // and append 'Z' to ensure it's interpreted as UTC
+    const utcTimestamp = timestamp.endsWith('Z') || timestamp.includes('+') || timestamp.includes('T') && timestamp.split('T')[1].includes('-')
+      ? timestamp
+      : timestamp + 'Z';
+    date = new Date(utcTimestamp).getTime();
+  } else {
+    date = timestamp;
+  }
 
   const diff = now - date;
   const minutes = Math.floor(diff / 60000);
