feat(ui): multi-select group-by for Recent Runs by Client - #258
Merged
Conversation
The suite-details "group by" now allows selecting multiple labels at once (e.g. aot + bal-mode), grouping runs by the composite key=value combination, and defaults to selecting all available labels. - groupBy URL param: unset = all label keys (default), 'none' = no grouping, else a comma-separated key list (parse/serialize mirrors the steps param). - effectiveGroupBy -> effectiveGroupByKeys[]; applyGrouping builds a composite "key=value, key=value" client suffix; the selector is a multi-toggle row (None clears; each label + instance id toggle independently). - RunsHeatmap groupBy is now string[]: it composites the group value, carries a per-group metadata map, and the compare-URL builders emit multi-key client:k1=v1,k2=v2 group specs (the /compare/groups grammar already supports multiple key=value conditions, so no compare-page change is needed).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The suite-details "Group by" (Recent Runs by Client) previously allowed only a single value. It's now multi-select and defaults to all available labels, so runs group by the combination — e.g. selecting
aot+bal-modegroups byaot=…, bal-mode=….Changes
SuiteDetailPage.tsxgroupByURL param semantics: unset = all label keys (the new default),none= no grouping, otherwise a comma-separated key list (aot,bal-mode). NewparseGroupByKeys/serializeGroupByKeyshelpers mirror the existingstepsparam convention.effectiveGroupBy(single) →effectiveGroupByKeys: string[].applyGroupingbuilds a compositekey=value, key=valuesuffix on the client name.instance idtoggle independently.RunsHeatmap.tsx:groupBy?: string→string[]. It composites each run's group value, carries a per-groupmetadatamap, renders thekey=valuecomposite in the group header, and passes the metadata map togetGroupCompareGroupHrefso it can emitclient:k1=v1,k2=v2.The
/compare/groupsgroup-spec parser already ANDs multiplekey=valueconditions per group, so no compare-page changes were needed.Notes
instance_idcombines with labels; it's excluded from the compare metadata filter (it isn't a metadata key) exactly as before.key=valuepairs (disambiguates which value belongs to which label).Validation
No UI test suite exists; verified with
tsc -b,eslint, and a fullvite build— all clean.