feat: framework color dots in sessions table, filter toolbar panel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
William Valentin
2026-03-14 12:05:40 -07:00
parent 1c6255d688
commit eb12319f19
2 changed files with 35 additions and 9 deletions
+13 -9
View File
@@ -299,15 +299,19 @@
sessionsState.cursor = data.next_cursor;
const tbody = document.getElementById('sessions-body');
tbody.innerHTML = sessionsState.sessions.map(s => `
<tr class="clickable" data-session="${escapeHTML(s.session_id)}">
<td class="id-cell">${escapeHTML(s.session_id.substring(0, 12))}...</td>
<td>${escapeHTML(s.framework || '-')}</td>
<td>${escapeHTML(s.host || '-')}</td>
<td>${s.run_count}</td>
<td title="${escapeHTML(s.started_at)}">${escapeHTML(relativeTime(s.started_at))}</td>
</tr>
`).join('') || '<tr><td colspan="5" class="empty-state">No sessions found</td></tr>';
tbody.innerHTML = sessionsState.sessions.map(s => {
const fw = s.framework || 'unknown';
const fwClass = fw.replace(/[^a-z0-9-]/g, '-');
return `
<tr class="clickable" data-session="${escapeHTML(s.session_id)}">
<td class="id-cell">${escapeHTML(s.session_id.substring(0, 12))}</td>
<td><span class="fw-dot ${escapeHTML(fwClass)}"></span>${escapeHTML(fw)}</td>
<td>${escapeHTML(s.host || '-')}</td>
<td>${s.run_count}</td>
<td title="${escapeHTML(s.started_at)}">${escapeHTML(relativeTime(s.started_at))}</td>
</tr>
`;
}).join('') || '<tr><td colspan="5" class="empty-state">No sessions found</td></tr>';
tbody.querySelectorAll('tr.clickable').forEach(row => {
row.addEventListener('click', () => navigate('/sessions/' + row.dataset.session));