diff --git a/ethend/public/index.html b/ethend/public/index.html index 4b44185..36d9928 100644 --- a/ethend/public/index.html +++ b/ethend/public/index.html @@ -6291,43 +6291,8 @@ async function refreshTrace() { } } - // Try pipeline view first (new format) + // Pipeline view (new format) or flat timeline var pipelines = data.pipelines || []; - if (pipelines.length > 0) { - var html = '
'; - for (var pi = 0; pi < pipelines.length; pi++) { - var pl = pipelines[pi]; - var steps = pl.steps || []; - var hasMsg = steps.some(function(s){ return s.hop === 'msg_received'; }); - html += '
'; - // Pipeline header - html += '
'; - html += '๐Ÿ“จ ' + escHtml(pl.sender || '?') + (pl.platform ? ' ยท ' + escHtml(pl.platform) : '') + ''; - html += '' + (pl.timestamp || '').substring(11,19) + ''; - html += '
'; - // Pipeline steps - html += '
'; - for (var si = 0; si < steps.length; si++) { - var s = steps[si]; - var hopIcon = {msg_received:'๐Ÿ“ฅ',msg_sent:'๐Ÿ“ค',llm_call:'๐Ÿง ',tool_call:'๐Ÿ”ง',session:'๐Ÿ‘ค'}[s.hop] || 'โ—'; - var hopColor = s.status === 'error' ? 'var(--red)' : (s.hop === 'msg_received' ? 'var(--blue)' : s.hop === 'msg_sent' ? 'var(--green)' : 'var(--text2)'); - html += '
'; - html += '' + hopIcon + ''; - html += '' + escHtml(s.label) + ''; - if (s.detail) html += '
' + escHtml(s.detail) + ''; - if (s.durationMs > 0) html += ' (' + (s.durationMs >= 1000 ? (s.durationMs/1000).toFixed(1)+'s' : s.durationMs+'ms') + ')'; - html += '
'; - } - html += '
'; - } - html += '
'; - contentEl.innerHTML = html; - // Also update stats - updateTraceStatsEl(statsEl, traces, stats, data.session); - return; - } - - // Fallback: flat timeline var timeline = contentEl.querySelector('.trace-timeline'); if (!timeline) { if (traces.length === 0 && pipelines.length === 0) {