[PR #15] [MERGED] Scale the regression history to nine or more workflows #15

Closed
opened 2026-10-31 22:06:01 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/comfyci-dashboard/pull/15
Author: @marawan206
Created: 10/19/2026
Status: ✅ Merged
Merged: 10/19/2026
Merged by: @marawan206

Base: main ← Head: regression-nine-workflows


📝 Commits (1)

  • de9445b Scale the regression history to nine or more workflows

📊 Changes

7 files changed (+640 additions, -87 deletions)

View changed files

📝 components/HistoryTable.tsx (+67 -38)
📝 components/RegressionBadge.tsx (+12 -3)
➕ components/WorkflowDots.tsx (+193 -0)
➕ components/WorkflowStrip.tsx (+175 -0)
📝 pages/regression/index.tsx (+158 -46)
➕ src/regression/workflows.ts (+32 -0)
📝 utils/format.ts (+3 -0)

📄 Description

Why

The regression corpus went from two workflows to nine today (comfyci-runpod-worker #8, #9, #10) and will keep growing. The history page drew one table column and one sparkline per workflow, so the latest row already scrolled sideways with sdxl_t2i pushed off-screen, seven of nine drift cards were flat lines, and the "Median exec" KPI silently measured whichever workflow sorted first alphabetically.

What changes

One Workflows cell per run. Each row shows a dot per workflow in a fixed lane order (blessed goldens first, in the order lanes.json lists them, then unblessed ids alphabetically), grouped in fives so slot positions line up from row to row. Open regressions and execution errors are spelled out under the dots with the existing RegressionBadge, fresh ones first; accepted drift, infra errors and missing baselines stay in their dot and the Overall cell's note (which now names the infra workflows). The table keeps the same width at 2 or 25 workflows.

Shape before colour. Eight states, each with its own glyph so the row reads in greyscale: filled circle (pass), filled square (regression), hollow square (inherited drift), diamond (accepted drift), red ! square (execution error), triangle (infra error), ? ring (no baseline), dash (not run in this run). Every dot has a role="img" accessible name and a hover title with #slot id · verdict, the verdict's explanation, MSE, exec, peak VRAM and golden tag. A legend sits under the table. Texts and titles come from one badgeMeta helper, so dots, badges and legend cannot disagree.

Per-workflow strip above the table replaces the Median Exec KPI: #n, dot, id, latest badge, exec · VRAM · golden tag, and either failing since <sha> · N runs (open chain, same rule as the banners), last drift <when> · <sha> (or last execution error), no drift in N runs, or first run. The strip folds past 12 tiles unless a hidden tile is not a plain pass.

Drift section draws a sparkline only for workflows that moved in the 60-run window, open ones first, with the workflow's current badge and a k of n runs off golden · drift at <sha> footer. Stable workflows become one line; workflows that were only ever infra errors or had no baseline are counted separately as "without comparison" rather than passed off as stable.

Also: first_bad banners sort in lane order like everything else, the KPI row is three cards, and formatGb is shared from utils/format.ts. The commit page is untouched.

Verified

  • npx tsc --noEmit clean, pnpm lint clean.
  • Against the live results branch in both themes at 1600px wide (phone widths were not exercised in a browser; the strip and KPI grids collapse to one column by CSS and the table keeps its existing horizontal scroll container): latest row shows nine dots in groups of 5 + 4; the 306 older two-workflow rows show two dots and seven dashes; page 2's accepted-drift rows render the amber diamond; the one execution error in the window (c21e547) gets the red !, the row tint and an expanded Execution Error flux_dev_t2i line; the drift section shows one flux card (16 of 60 runs off golden · failed at c21e547) and 8 stable; the strip lists all nine with #1 to #9.
  • Lane order on the live data: flux, sdxl, krea2, qwen 2.1 edit, z-image, mage-flow, pixeldit, qwen 2.1 t2i, qwen 2.1 turbo.

Preview deployment renders the live data, so the easiest review is to open /regression there and page to the c21e547 row.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/comfyci-dashboard/pull/15 **Author:** [@marawan206](https://github.com/marawan206) **Created:** 10/19/2026 **Status:** ✅ Merged **Merged:** 10/19/2026 **Merged by:** [@marawan206](https://github.com/marawan206) **Base:** `main` ← **Head:** `regression-nine-workflows` --- ### 📝 Commits (1) - [`de9445b`](https://github.com/Comfy-Org/comfyci-dashboard/commit/de9445bb1c78c905aef8a6995df3c69e7497d53d) Scale the regression history to nine or more workflows ### 📊 Changes **7 files changed** (+640 additions, -87 deletions) <details> <summary>View changed files</summary> 📝 `components/HistoryTable.tsx` (+67 -38) 📝 `components/RegressionBadge.tsx` (+12 -3) ➕ `components/WorkflowDots.tsx` (+193 -0) ➕ `components/WorkflowStrip.tsx` (+175 -0) 📝 `pages/regression/index.tsx` (+158 -46) ➕ `src/regression/workflows.ts` (+32 -0) 📝 `utils/format.ts` (+3 -0) </details> ### 📄 Description ## Why The regression corpus went from two workflows to nine today (comfyci-runpod-worker #8, #9, #10) and will keep growing. The history page drew one table column and one sparkline per workflow, so the latest row already scrolled sideways with `sdxl_t2i` pushed off-screen, seven of nine drift cards were flat lines, and the "Median exec" KPI silently measured whichever workflow sorted first alphabetically. ## What changes **One Workflows cell per run.** Each row shows a dot per workflow in a fixed lane order (blessed goldens first, in the order `lanes.json` lists them, then unblessed ids alphabetically), grouped in fives so slot positions line up from row to row. Open regressions and execution errors are spelled out under the dots with the existing `RegressionBadge`, fresh ones first; accepted drift, infra errors and missing baselines stay in their dot and the Overall cell's note (which now names the infra workflows). The table keeps the same width at 2 or 25 workflows. **Shape before colour.** Eight states, each with its own glyph so the row reads in greyscale: filled circle (pass), filled square (regression), hollow square (inherited drift), diamond (accepted drift), red `!` square (execution error), triangle (infra error), `?` ring (no baseline), dash (not run in this run). Every dot has a `role="img"` accessible name and a hover title with `#slot id · verdict`, the verdict's explanation, MSE, exec, peak VRAM and golden tag. A legend sits under the table. Texts and titles come from one `badgeMeta` helper, so dots, badges and legend cannot disagree. **Per-workflow strip** above the table replaces the Median Exec KPI: `#n`, dot, id, latest badge, exec · VRAM · golden tag, and either `failing since <sha> · N runs` (open chain, same rule as the banners), `last drift <when> · <sha>` (or `last execution error`), `no drift in N runs`, or `first run`. The strip folds past 12 tiles unless a hidden tile is not a plain pass. **Drift section** draws a sparkline only for workflows that moved in the 60-run window, open ones first, with the workflow's current badge and a `k of n runs off golden · drift at <sha>` footer. Stable workflows become one line; workflows that were only ever infra errors or had no baseline are counted separately as "without comparison" rather than passed off as stable. Also: first_bad banners sort in lane order like everything else, the KPI row is three cards, and `formatGb` is shared from `utils/format.ts`. The commit page is untouched. ## Verified - `npx tsc --noEmit` clean, `pnpm lint` clean. - Against the live results branch in both themes at 1600px wide (phone widths were not exercised in a browser; the strip and KPI grids collapse to one column by CSS and the table keeps its existing horizontal scroll container): latest row shows nine dots in groups of 5 + 4; the 306 older two-workflow rows show two dots and seven dashes; page 2's accepted-drift rows render the amber diamond; the one execution error in the window (c21e547) gets the red `!`, the row tint and an expanded `Execution Error flux_dev_t2i` line; the drift section shows one flux card (`16 of 60 runs off golden · failed at c21e547`) and `8 stable`; the strip lists all nine with `#1` to `#9`. - Lane order on the live data: flux, sdxl, krea2, qwen 2.1 edit, z-image, mage-flow, pixeldit, qwen 2.1 t2i, qwen 2.1 turbo. Preview deployment renders the live data, so the easiest review is to open `/regression` there and page to the c21e547 row. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 22:06:01 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/comfyci-dashboard#15
No description provided.