Skip to content

feat(eval-view): add run comparison dashboard and visualize - #1010

Open
psiarkiewicz wants to merge 6 commits into
feat/cli-eval-comparefrom
dashboard-skill-compare
Open

feat(eval-view): add run comparison dashboard and visualize#1010
psiarkiewicz wants to merge 6 commits into
feat/cli-eval-comparefrom
dashboard-skill-compare

Conversation

@psiarkiewicz

@psiarkiewicz psiarkiewicz commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Part 3 of 3 (stacked on #<PR2_NUMBER>). Split from original monolithic PR #1010 per review feedback.

Adds interactive web UI for side-by-side run comparisons in eval-view.

  • Compare UI: Interactive side-by-side viewer (/compare.html) showing trajectory divergence, code diffs, Playwright outputs, and metric charts.
  • Guide View: Multi-run selection badges and compare modal in eval-view/guide.html.
  • Server Endpoints: /api/compare, /api/download-run, and on-demand /api/trajectory-summary.

@micahjo7 micahjo7 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Our evals execute 1 run per task, and 1 task per guide. In the future, if we expand this (multiple runs per task, or multiple tasks per guide, or both), there are some things to consider:

What does the guide view show for these scenarios? IIUC it shows an aggregate of everything for that guide run on that day?
Given this^, should you be able to compare between different “runs” within the same suite? What about comparing guided vs unguided from the same run? In the guide view UI, you have to click on two separate data points (from separate suites), so not sure if it is possible.
For multiple tasks that run per guide, what will the guide comparison page show? Should you be able to select which task you want to compare (or which run?) similar to how you can select guided vs unguided? It looks like there might be some functionality for this currently, but from my testing it doesn’t look like it is working.

Another (less important) scenario is having multiple suite runs on the same day- I believe the guide view shows only the latest- should it aggregate instead? Or show two separate arrows?

In general, there is some aggregation that occurs for these scenarios when converting to the guide view- in the comparison view, we should be able to fully disaggregate into the specific permutations.

Comment thread bin/gd.ts Outdated
Comment thread harness/lib/gcs-downloader.ts
Comment thread eval-view/guide.js
Comment thread eval-view/server.js
Comment thread harness/lib/trajectory-parser.ts Outdated
Comment thread harness/lib/gcs-downloader.ts Outdated
Comment thread harness/lib/gcs-downloader.ts Outdated
Comment thread results/compare_work/response_debug.json Outdated
Comment thread .gitignore
Comment thread tsconfig.json Outdated
@micahjo7

Copy link
Copy Markdown
Collaborator

General comment for the PR:

there is a lot of code here, and several different components. I'm thinking it might be a better idea to separate this into multiple PRs- the first thought that comes to mind is that the trajectory parsing / summary is a feature in itself. then there is the gd compare workflow, then the UI component which presents and visualizes it all (and runs agent analysis). wdyt?

@psiarkiewicz

Copy link
Copy Markdown
Collaborator Author

General comment for the PR:

there is a lot of code here, and several different components. I'm thinking it might be a better idea to separate this into multiple PRs- the first thought that comes to mind is that the trajectory parsing / summary is a feature in itself. then there is the gd compare workflow, then the UI component which presents and visualizes it all (and runs agent analysis). wdyt?

That makes sense.

@psiarkiewicz

Copy link
Copy Markdown
Collaborator Author

Our evals execute 1 run per task, and 1 task per guide. In the future, if we expand this (multiple runs per task, or multiple tasks per guide, or both), there are some things to consider:

Added multi-guide view. For now, you can selected different versions on the same day, but the arrow shows the latest one. Can fix later when we know what's useful. Blending daily scores doesn't seem right.

@psiarkiewicz

Copy link
Copy Markdown
Collaborator Author

General comment for the PR:

there is a lot of code here, and several different components. I'm thinking it might be a better idea to separate this into multiple PRs- the first thought that comes to mind is that the trajectory parsing / summary is a feature in itself. then there is the gd compare workflow, then the UI component which presents and visualizes it all (and runs agent analysis). wdyt?

Agreed.
Splitting this into 3 chained PRs:

  1. Trajectory Normalization Framework: trajectory-parser.ts, viewer updates, and agent hooks emitting trajectory_summary.json.
  2. gd compare CLI & AI Variance Diagnosis: CLI command, lazy GCS downloader, prompt modules, and multi-stage subagent synthesis.
  3. Dashboard Comparison UI: Side-by-side web comparison interface, guide view integration, and server endpoints.

@psiarkiewicz
psiarkiewicz force-pushed the dashboard-skill-compare branch from 5ff6dfd to 56da4dc Compare August 4, 2026 01:12
@psiarkiewicz
psiarkiewicz changed the base branch from main to feat/cli-eval-compare August 4, 2026 01:16
@psiarkiewicz psiarkiewicz changed the title Dashboard skill compare feat(eval-view): add run comparison dashboard and visualize Aug 4, 2026
@psiarkiewicz

psiarkiewicz commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

Split complete into 3 stacked PRs:

@psiarkiewicz
psiarkiewicz force-pushed the feat/cli-eval-compare branch from 8ca6b89 to 59e76b0 Compare August 5, 2026 20:38
@psiarkiewicz
psiarkiewicz force-pushed the dashboard-skill-compare branch from 56da4dc to 2085f2f Compare August 5, 2026 20:38
@paulirish
paulirish force-pushed the feat/cli-eval-compare branch from 59e76b0 to 4f1edf8 Compare August 11, 2026 04:32
@paulirish
paulirish force-pushed the dashboard-skill-compare branch from 36138a5 to 8bd11ee Compare August 11, 2026 04:32
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.

3 participants