feat: semantic accent colors on summary cards, infrastructure label
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+21
-18
@@ -952,25 +952,29 @@
|
||||
<h2>Dashboard <span class="live-indicator"><span class="live-dot"></span>Live</span></h2>
|
||||
</div>
|
||||
<div class="dashboard-summary">
|
||||
<div class="summary-card">
|
||||
<div class="summary-card-label">Active Sessions</div>
|
||||
<div class="summary-card" style="--card-accent:var(--accent)">
|
||||
<div class="summary-card-label"><span class="summary-card-icon">◉</span>Active Sessions</div>
|
||||
<div class="summary-card-value" id="dash-active">-</div>
|
||||
<div class="summary-card-sub" id="dash-active-sub"></div>
|
||||
<div class="summary-card-sub" id="dash-active-sub"> </div>
|
||||
</div>
|
||||
<div class="summary-card">
|
||||
<div class="summary-card-label">Runs Today</div>
|
||||
<div class="summary-card" style="--card-accent:var(--success)">
|
||||
<div class="summary-card-label"><span class="summary-card-icon">▶</span>Runs Today</div>
|
||||
<div class="summary-card-value" id="dash-runs">-</div>
|
||||
<div class="summary-card-sub" id="dash-runs-sub"> </div>
|
||||
</div>
|
||||
<div class="summary-card">
|
||||
<div class="summary-card-label">Tool Calls</div>
|
||||
<div class="summary-card" style="--card-accent:var(--purple)">
|
||||
<div class="summary-card-label"><span class="summary-card-icon">⚡</span>Tool Calls</div>
|
||||
<div class="summary-card-value" id="dash-tools">-</div>
|
||||
<div class="summary-card-sub" id="dash-tools-sub"> </div>
|
||||
</div>
|
||||
<div class="summary-card">
|
||||
<div class="summary-card-label">Errors</div>
|
||||
<div class="summary-card" style="--card-accent:var(--error)">
|
||||
<div class="summary-card-label"><span class="summary-card-icon">⚠</span>Errors</div>
|
||||
<div class="summary-card-value" id="dash-errors">-</div>
|
||||
<div class="summary-card-sub" id="dash-errors-sub"> </div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="vm-strip" id="dash-vm-strip"></div>
|
||||
<div class="section-title" style="margin-bottom:0.75rem">Infrastructure</div>
|
||||
<div class="vm-strip" id="dash-vm-strip" style="margin-bottom:1.5rem"></div>
|
||||
<div class="charts-row">
|
||||
<div class="chart-panel">
|
||||
<div class="chart-header">
|
||||
@@ -1142,18 +1146,17 @@
|
||||
el('dash-tools', s.tool_calls_today);
|
||||
el('dash-errors', s.errors_today);
|
||||
|
||||
// Sub-line: framework breakdown for active sessions
|
||||
const fws = Object.keys(s.by_framework || {});
|
||||
if (fws.length > 0) {
|
||||
const sub = document.getElementById('dash-active-sub');
|
||||
if (sub) sub.textContent = fws.map(f => `${f} ${(s.by_framework[f].runs || 0)}`).join(' · ');
|
||||
}
|
||||
|
||||
const errEl = document.getElementById('dash-errors');
|
||||
if (errEl) {
|
||||
errEl.classList.toggle('has-errors', s.errors_today > 0);
|
||||
}
|
||||
|
||||
const subEl = document.getElementById('dash-active-sub');
|
||||
if (subEl && s.by_framework) {
|
||||
const parts = Object.entries(s.by_framework)
|
||||
.filter(([, v]) => v.runs > 0)
|
||||
.map(([name, v]) => escapeHTML(name) + ' ' + v.runs);
|
||||
subEl.textContent = parts.length > 0 ? parts.join(' / ') : '';
|
||||
}
|
||||
}
|
||||
|
||||
async function loadTimeseries() {
|
||||
|
||||
Reference in New Issue
Block a user