Tree Compare: replace change-type chips with freeform (from → to) status pair filter
@felipebergamin is already working on this.
Since Aug 25, 2026.
- Dominant language
- Python
- Stars
- 9
- Forks
- 31
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 16
Description
Summary
On the Tree Compare breakdown tables, replace the current change-type filter chips (regression, fixed, newFailure, etc.) with a freeform filter where users build their own (from, to) status pairs, can add multiple pairs, and can remove them individually.
Filtering stays client-side (same as today). Table change badges can remain as derived labels; only the filter UX changes.
Motivation
Change chips are named buckets over sideA → sideB transitions and are lossy (e.g. “regression” covers more than PASS → FAIL). Letting users pick exact status pairs matches what’s shown in the table and gives finer control.
Behavior
- Users pick From and To from:
PASS/FAIL/INCONCLUSIVE/—(absent) - Add appends the pair to the active filter list (no duplicates)
- Each active pair is shown as a removable chip (e.g.
PASS → FAIL) - Multiple pairs use OR semantics: a row matches if its
(sideA, sideB)equals any selected pair - Empty list = show all rows
- Default (preserve today’s useful default):
PASS → FAILandFAIL → PASS - Would be nice to have a persistence of the filters created by user (maybe using localStorage?)
UI sketch
- Label + short tooltip explaining the four statuses (including absent)
- Two Selects (From, To) + Add
- Disable Add when incomplete or duplicate
- Removable chips for active pairs
- Reuse existing shadcn
Select/ chip styling patterns from Tree Compare
Acceptance criteria
- Change-type filter chips are gone from the compare breakdown filter
- Users can add/remove multiple
(from, to)pairs using all statuses - Tables (builds / boots / tests) filter by those pairs with OR semantics
- Empty selection shows all rows; default is
PASS→FAIL+FAIL→PASS - Active pairs are reflected in the URL
- Unit tests cover parse/normalize/apply helpers
Visual reference
This is just a concept/mockup—it doesn't have to look exactly like this.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.