Skip to content

Dashboard: collapse per-level status badges into a single highest-level badge - #347

Draft
tadani3 with Copilot wants to merge 3 commits into
mainfrom
copilot/fix-duplicated-badges
Draft

Dashboard: collapse per-level status badges into a single highest-level badge#347
tadani3 with Copilot wants to merge 3 commits into
mainfrom
copilot/fix-duplicated-badges

Conversation

Copilot AI commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Models with both an L3 skip and an L5 xfail (e.g. youtu) rendered two inline badges — Skip next to XFail — instead of a single badge reflecting the most consequential outstanding issue. The same problem applied to L4/L5 skips, which previously weren't badged at all.

Changes

  • scripts/templates/dashboard.html.j2: replace the four independent l2Badge..l5Badge emissions with a single statusBadge selected by walking levels L5 → L2 and emitting the first non-pass status (xfail or skip) encountered. L2 also handles its xfail_graph_only variant.
  • Row template updated to interpolate only ${statusBadge}${ratioBadge}.

Both xfail and skip are now reportable at every level where the data model permits them, so the badge always reflects the highest-level outstanding issue regardless of its kind.

After the change:

  • youtu (L3 skip + L5 xfail) → XFail (from L5)
  • fsmt (L3/L4/L5 skip) → Skip (from L5)
  • apertus (L4/L5 skip) → Skip (from L5)

Lower-level exceptions remain visible via the L1–L5 dot strip and the expanded detail view.

Copilot AI linked an issue Jun 9, 2026 that may be closed by this pull request
Previously a model with both an L3 skip and an L5 xfail rendered two
inline badges (e.g. youtu showed `Skip` next to `XFail`). The badges
were redundant — the highest-level failure conveys the most useful
information.

Collapse the four per-level badges into a single badge whose source
is chosen by precedence: L5 xfail > L4 xfail > L3 xfail > L3 skip >
L2 xfail / xfail_graph_only.
Copilot AI changed the title [WIP] Fix duplicated badges reporting issue Dashboard: collapse per-level status badges into a single highest-level badge Jun 9, 2026
Copilot AI requested a review from tadani3 June 9, 2026 18:01
@tadani3

tadani3 commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@copilot This doesn't look great. Theoretically every level can have some combination of badges (xfail, skip, etc...). It seems from here that skips at other levels (L5, L4) wouldn't be counted and that only XFails would. Theoretically a skip can occur ate every level. Can you ensure these also are reported.

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.

Copilot AI commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

@copilot This doesn't look great. Theoretically every level can have some combination of badges (xfail, skip, etc...). It seems from here that skips at other levels (L5, L4) wouldn't be counted and th...

Good catch — the previous version only badged skip at L3 (which was the original behavior), so L4/L5 skips silently dropped. Reworked the selection into a single L5→L2 loop that emits the first xfail or skip encountered, so any exception status at any level is now surfaced as the one badge. Verified:

  • youtu (L3 skip + L5 xfail) → XFail (from L5)
  • fsmt (L3/L4/L5 skip) → Skip (from L5)
  • apertus (L4/L5 skip) → Skip (from L5)

@tadani3

tadani3 commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@copilot Are there any other badges we need to account for at the time being?

Copilot AI commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Are there any other badges we need to account for at the time being?

Looking at the row next to model_type, the only emitters today are:

  1. statusBadge — the xfail/skip badge (now collapsed to one, with L5→L2 precedence).
  2. ratioBadge — the L5 min_token_match_ratio percentage (e.g. 90%). This is a different signal (not a pass/skip/xfail status) and is per-case rather than per-level, so I left it as-is — it doesn't duplicate statusBadge.

Elsewhere in the dashboard:

  • The Confidence column renders a badge badge-N (e.g. "L4: Golden Match") — that's the highest attained level, not a status, so no overlap.
  • The family-header series histogram uses hist-badge to count models per level — also a different concern.

So with the L5→L2 walk in statusBadge, every pass/xfail/skip outcome across all four levels (L2–L5) is now funneled through one badge. I don't see any other status badge that could collide. If you have a specific case in mind that still looks duplicated, let me know the model and I'll dig in.

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

Performance Comparison

Comparing f97218459b4740

Model Metric Baseline Current Delta
bert (feature-extraction) model_size_bytes 359 KB 359 KB +0.0%
bert (feature-extraction) num_nodes 60 60 +0.0%
falcon model_size_bytes 364 KB 364 KB +0.0%
falcon num_nodes 66 66 +0.0%
gemma2 model_size_bytes 428 KB 428 KB +0.0%
gemma2 num_nodes 107 107 +0.0%
gpt2 model_size_bytes 388 KB 388 KB +0.0%
gpt2 num_nodes 53 53 +0.0%
llama model_size_bytes 425 KB 425 KB +0.0%
llama num_nodes 61 61 +0.0%
llama (static-cache) model_size_bytes 425 KB 425 KB +0.0%
llama (static-cache) num_nodes 58 58 +0.0%
mamba (ssm-text-generation) model_size_bytes 296 KB 296 KB +0.0%
mamba (ssm-text-generation) num_nodes 98 98 +0.0%
phi3 model_size_bytes 421 KB 421 KB +0.0%
phi3 num_nodes 59 59 +0.0%
phi3 (static-cache) model_size_bytes 421 KB 421 KB +0.0%
phi3 (static-cache) num_nodes 56 56 +0.0%
qwen2 model_size_bytes 425 KB 425 KB +0.0%
qwen2 num_nodes 61 61 +0.0%
qwen2 (static-cache) model_size_bytes 425 KB 425 KB +0.0%
qwen2 (static-cache) num_nodes 58 58 +0.0%
qwen3_5_moe (hybrid-text-generation) model_size_bytes 506 KB 506 KB +0.0%
qwen3_5_moe (hybrid-text-generation) num_nodes 275 275 +0.0%
qwen3_5_text (hybrid-text-generation) model_size_bytes 458 KB 458 KB +0.0%
qwen3_5_text (hybrid-text-generation) num_nodes 129 129 +0.0%
qwen3_5_vl (hybrid-qwen-vl) model_size_bytes 977 KB 977 KB +0.0%
qwen3_5_vl (hybrid-qwen-vl) num_nodes 413 413 +0.0%
t5 (seq2seq) model_size_bytes 836 KB 836 KB +0.0%
t5 (seq2seq) num_nodes 166 166 +0.0%
whisper (speech-to-text) model_size_bytes 1008 KB 1008 KB +0.0%
whisper (speech-to-text) num_nodes 128 128 +0.0%

No performance regressions.

@codecov

codecov Bot commented Jun 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Duplicated badges still being reported

2 participants