feat: run comparison - graph diff view - #2602
Conversation
🎩 PreviewA preview build has been created at: |
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
e34d81d to
22f985a
Compare
f58787e to
6d8d1a9
Compare
a1c4ec9 to
69226d7
Compare
6d8d1a9 to
15d5b88
Compare
69226d7 to
cf080ba
Compare
15d5b88 to
16384ae
Compare
e6b562b to
659f92c
Compare
1c31e0a to
63ee9b6
Compare
659f92c to
3605a8d
Compare
3605a8d to
eefad45
Compare
63ee9b6 to
e57e483
Compare
| <div | ||
| title={label ? `${label} · ${text}` : text} | ||
| className={cn( | ||
| "h-8.75 overflow-hidden rounded-t-md px-2.5 py-1 text-[10px]", |
There was a problem hiding this comment.
🤖 This is an AI-generated code review comment.
The extraction changes how the existing indicator renders (Medium)
StatusTab is a clean extraction, but it adds overflow-hidden here plus whitespace-nowrap and truncate on the inner row — none of which the original markup had — and StatusIndicator below now renders through it. So editor and run-graph task nodes start truncating status text instead of wrapping it, which is outside this PR's stated scope.
If the truncation is only needed for the two side-by-side tabs in the compare graph, pass it in via className from MergedTaskNode and leave the shared path rendering as it did.
There was a problem hiding this comment.
🤖 AI-generated reply.
Checked this one and I do not think it changes the existing indicator — leaving the extraction as is.
- On the
StatusIndicatorpath the new classes are inert: the wrapper isabsolute … flex items-startwith no width cap, so the tab is shrink-to-fit and there is nothing formin-w-0/truncate/overflow-hiddento act on. - They are load-bearing in
MergedTaskNode, which passesmin-w-0 flex-1into aw-64node — that is what the extraction was for.
One real change I will own: the shared tab adds a native title tooltip, so the editor and run graph now get a hover tooltip on the status label where they previously had none. Happy to gate that behind a prop if it is unwanted.
e57e483 to
53c193a
Compare
eefad45 to
1ac3709
Compare
1ac3709 to
7b1a733
Compare
53c193a to
3886fe5
Compare
7b1a733 to
38a92d3
Compare
3886fe5 to
6294327
Compare
6294327 to
de2ad56
Compare
38a92d3 to
05c821c
Compare

Description
Seventh PR in the Compare Runs stack. Adds the Graph view — a visual, side-by-side-in-one-canvas take on the comparison.
It renders the merged graph (from #2597) with colour-coded nodes and edges: green for added, red for removed, amber for changed, grey for unchanged, plus a legend. Nodes show each task's status, digest and a short change summary; clicking one opens a detail popover reusing the same task/IO diff detail from the Structured view. A Highlight A / B / Both control dims everything not present in the chosen run and switches nodes to show that run's actual values.
Also refactors the run view's status indicator to extract a reusable
StatusTabso the merged task nodes can show per-run (A/B) status tabs.Related Issue and Pull requests
Part of the Compare Runs stack. Builds on #2601; the final PR (#2603) builds on this branch.
Type of Change
Checklist
Screenshots (if applicable)
Test Instructions
Reachable once the stack is wired up (#2603).
Additional Comments