kernelci / kernelci/dashboard

Tree Compare: replace change-type chips with freeform (from → to) status pair filter

Open
#2,052 3 comments 1 reaction 1 assignee View on GitHub

@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 → FAIL and FAIL → 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.

Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.