diff --git a/dashboard/index.html b/dashboard/index.html index f08ec95..8a32984 100644 --- a/dashboard/index.html +++ b/dashboard/index.html @@ -35,12 +35,21 @@

Promptimprover Swarm Dashboard

const tr = document.createElement('tr'); const fmtTime = new Date(log.timestamp).toLocaleTimeString(); const reason = log.reasoning_path && log.reasoning_path.length > 60 ? log.reasoning_path.slice(0,57) + '...' : log.reasoning_path; - ['time', 'span', 'persona', 'action', 'tokens', 'reasoning'].forEach((k, i) => { - const td = document.createElement('td'); - const values = [fmtTime, log.span_id || 'N/A', log.persona || 'Unknown', log.action_type || 'Unknown', log.metrics?.total_tokens || 0, reason || '']; - td.textContent = values[i]; - tr.appendChild(td); - }); + const escapeHtml = (unsafe) => (unsafe || '').toString() + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + + tr.innerHTML = ` + ${escapeHtml(fmtTime)} + ${escapeHtml(log.span_id || 'N/A')} + ${escapeHtml(log.persona || 'Unknown')} + ${escapeHtml(log.action_type || 'Unknown')} + ${escapeHtml(log.metrics?.total_tokens || 0)} + ${escapeHtml(reason || '')} + `; tbody.appendChild(tr); }); }