Skip to content

Commit 59b4740

Browse files
authored
Dashboard: include L4/L5 skip in single-badge precedence
The previous single-badge logic only considered skip at L3 and xfail at L2-L5, which meant L4/L5 skip statuses (the dominant skip population — many models have YAML cases marked skip_reason) showed no badge at all. Replace the if/else cascade with a loop that walks L5 → L2 and emits the first xfail OR skip encountered. Both exception kinds are now reportable at every level where the data model permits them.
1 parent ce12232 commit 59b4740

1 file changed

Lines changed: 31 additions & 19 deletions

File tree

scripts/templates/dashboard.html.j2

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -584,29 +584,41 @@ function renderModelRow(m) {
584584
// Per-level inline badge next to the model_type. To avoid duplicated
585585
// badges (e.g. an L3 Skip alongside an L5 XFail for the same model), we
586586
// emit at most ONE badge per row, picking the highest-level non-pass
587-
// status. Higher-level failures supersede lower-level ones because the
587+
// status. Higher-level outcomes supersede lower-level ones because the
588588
// confidence column already reflects the highest attained level — the
589589
// badge calls out the most consequential outstanding issue.
590590
//
591-
// Precedence (highest → lowest): L5 xfail > L4 xfail > L3 xfail/skip >
592-
// L2 xfail / xfail_graph_only. Positive states (L3 parity pass, L5 e2e
593-
// verified) are intentionally NOT badged: they would duplicate the
594-
// Confidence column and the L1-L5 dot strip. Only exception states
595-
// (xfail / skip) get inline badges, since those are the signals not
596-
// otherwise distinguishable at a glance.
591+
// Precedence: walk L5 → L2 and emit the first xfail/skip encountered.
592+
// Both xfail and skip are reportable at every level (each level can be
593+
// skipped or marked xfail independently). Within a level, xfail and
594+
// skip are mutually exclusive in the data model, so we just check each.
595+
// L2 also admits "xfail_graph_only" (parse passes, full-graph build
596+
// xfails). Positive states (L3 parity pass, L5 e2e verified) are
597+
// intentionally NOT badged: they would duplicate the Confidence column
598+
// and the L1-L5 dot strip. Only exception states (xfail / skip) get
599+
// inline badges, since those are the signals not otherwise
600+
// distinguishable at a glance.
601+
const xfailBadge = (level, reason) =>
602+
` <span class="status-badge status-xfail" title="L${level} known failure: ${esc(reason || '')}">XFail</span>`;
603+
const skipBadge = (level, reason) =>
604+
` <span class="status-badge status-skip" title="L${level} skipped / not run: ${esc(reason || '')}">Skip</span>`;
597605
let statusBadge = '';
598-
if (m.l5_status === 'xfail') {
599-
statusBadge = ` <span class="status-badge status-xfail" title="L5 known failure: ${esc(m.l5_reason || '')}">XFail</span>`;
600-
} else if (m.l4_status === 'xfail') {
601-
statusBadge = ` <span class="status-badge status-xfail" title="L4 known failure: ${esc(m.l4_reason || '')}">XFail</span>`;
602-
} else if (m.l3_status === 'xfail') {
603-
statusBadge = ` <span class="status-badge status-xfail" title="L3 known failure: ${esc(m.l3_reason || '')}">XFail</span>`;
604-
} else if (m.l3_status === 'skip') {
605-
statusBadge = ` <span class="status-badge status-skip" title="L3 skipped / not run: ${esc(m.l3_reason || '')}">Skip</span>`;
606-
} else if (m.l2_status === 'xfail') {
607-
statusBadge = ` <span class="status-badge status-xfail" title="L2 known failure: ${esc(m.l2_reason || '')}">XFail</span>`;
608-
} else if (m.l2_status === 'xfail_graph_only') {
609-
statusBadge = ` <span class="status-badge status-xfail" title="L2 graph-build xfail: ${esc(m.l2_reason || '')}">XFail</span>`;
606+
for (const [level, status, reason] of [
607+
[5, m.l5_status, m.l5_reason],
608+
[4, m.l4_status, m.l4_reason],
609+
[3, m.l3_status, m.l3_reason],
610+
[2, m.l2_status, m.l2_reason],
611+
]) {
612+
if (status === 'xfail' || status === 'xfail_graph_only') {
613+
statusBadge = (level === 2 && status === 'xfail_graph_only')
614+
? ` <span class="status-badge status-xfail" title="L2 graph-build xfail: ${esc(reason || '')}">XFail</span>`
615+
: xfailBadge(level, reason);
616+
break;
617+
}
618+
if (status === 'skip') {
619+
statusBadge = skipBadge(level, reason);
620+
break;
621+
}
610622
}
611623
612624
// min_token_match_ratio badge

0 commit comments

Comments
 (0)