Summary
Create the comparison view shell: a revision picker for selecting two commits, tab structure, and headline flip counts.
Details
Revision picker
User manually selects Side A and Side B commits on the same tree/branch
Reuse useCommits hook (same data feeding the commit navigation graph) to populate available commits
No auto-selection — user always picks explicitly
Tab structure
Same as current Tree Details: Builds | Boots | Tests
Each tab shows its own headline numbers
Headline summary
Per tab: "N regressions (PASS→FAIL), M fixes (FAIL→PASS)"
Transitions involving INCONCLUSIVE or a null side are visible in the table but not in headline counts
Empty / edge states
When no rows differ between the two commits, show a clear "No changes between these commits" state
When a selected commit has no data at all (every row null on that side), surface it clearly rather than showing an all-null table
Implementation notes
Can be built with a mocked API response until the BE endpoint (BE: Compare endpoint for builds, boots, and tests #2009 ) lands
Borrow patterns from Hardware Details multi-commit selection (treeCommits URL param, navigateToThePast callback)
Entry point TBD: new route vs query param on existing Tree Details route (resolved together with the URL state issue)
Summary
Create the comparison view shell: a revision picker for selecting two commits, tab structure, and headline flip counts.
Details
Revision picker
useCommitshook (same data feeding the commit navigation graph) to populate available commitsTab structure
Headline summary
Empty / edge states
Implementation notes
treeCommitsURL param,navigateToThePastcallback)