Skip to content

feat: compare by run#462

Merged
adibarra merged 3 commits into
masterfrom
feat/compare-by-run
Jun 15, 2026
Merged

feat: compare by run#462
adibarra merged 3 commits into
masterfrom
feat/compare-by-run

Conversation

@adibarra

@adibarra adibarra commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Note

Medium Risk
Touches benchmark API routing, new DB queries, and a wide inference comparison UI path (selection state, parallel fetches, legend/changelog sync); behavior changes for multi-run same-day dates but is covered by new unit tests.

Overview
Adds per-run GPU comparison so multiple workflow runs on the same day can appear as separate chart series instead of collapsing to “latest for that date.”

API / data: GET /api/v1/benchmarks gains exactRun=true with a numeric runId, routed to new getBenchmarksForRun (separate cache prefix benchmarks-run). GET /api/v1/workflow-info now includes runConfigs via getRunConfigsByDate so the UI can list runs that produced data even without changelog rows.

Client model: Comparison selections use encoded entries like 2026-06-14~r27489075807 (helpers in comparisonEntry / runEnumeration). useChartData issues exact-run benchmark queries for those entries; fetchBenchmarks and React Query keys distinguish as-of vs exact-run with the same runId.

UI: The comparison changelog is run-aware (per-run add/remove, model-scoped config filtering, “Add all” at run granularity). ChartDisplay auto-expands a plain date into one entry per run when multiple runs exist, shares stable run numbering with GPUGraph legends, and allows comparison with a date range or individually added runs. Legend removal updates selectedDates; roofline CSS selectors escape ~ in series ids.

Reviewed by Cursor Bugbot for commit a4855d2. Bugbot is set up for automated code reviews on this repo. Configure here.

@adibarra adibarra marked this pull request as ready for review June 15, 2026 05:25
@vercel

vercel Bot commented Jun 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
inferencemax-app Ready Ready Preview, Comment Jun 15, 2026 5:26am

Request Review

@adibarra adibarra merged commit 8d8f505 into master Jun 15, 2026
24 checks passed
@adibarra adibarra deleted the feat/compare-by-run branch June 15, 2026 05:28

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a4855d2. Configure here.

const data = query.data as WorkflowInfoResponse;
if (!data.changelogs || data.changelogs.length === 0) continue;

// Group changelog entries by the run that produced them. In the API

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skips dates lacking changelog rows

High Severity

When building comparison changelogs, a date is dropped entirely if changelogs is empty, even when runConfigs lists benchmark runs for that day. Per-run comparison and plain-date expansion never receive runConfigs, so newest data-only runs stay hidden from the changelog and chart sync logic.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit a4855d2. Configure here.

.filter((item) => item.entries.length > 0 || pinnedDates.has(item.date))
.toSorted((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime());
}, [changelogs, selectedGPUs, selectedPrecisions, pinnedDates]);
}, [changelogs, modelDbKeys, selectedGPUs, selectedPrecisions, pinnedDates]);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Filters out data-only changelog dates

Medium Severity

filteredChangelogs removes a date when every changelog entry fails the model, precision, or GPU filter, even if runConfigs still has multiple runs for the selected model. The per-run changelog UI and add-to-chart actions for that day never render.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit a4855d2. Configure here.

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.

1 participant