Pre-existing behavior surfaced during the PR #459 review (its F4 finding, measured byte-identical pre/post): all five filter functions in the report's JavaScript select rows by status class, and expected-failure rows carry none of the filterable statuses — so 'Mixed (0)' and the other filters neither show nor hide them. Before #459 this was invisible (the rows had blank icons); now they render prominent amber icons, making the mismatch noticeable.
Not a #459 defect — the rows were always unfiltered — but worth deciding deliberately: either give expected-failure its own filter bucket (the model has carried .expectedFailure since #443, so the data exists) or explicitly pin them as always-visible. Fits naturally into the A-vs-B redesign round (#439), which owns the filter UI.
Refs #439, #459.
Pre-existing behavior surfaced during the PR #459 review (its F4 finding, measured byte-identical pre/post): all five filter functions in the report's JavaScript select rows by status class, and expected-failure rows carry none of the filterable statuses — so 'Mixed (0)' and the other filters neither show nor hide them. Before #459 this was invisible (the rows had blank icons); now they render prominent amber icons, making the mismatch noticeable.
Not a #459 defect — the rows were always unfiltered — but worth deciding deliberately: either give expected-failure its own filter bucket (the model has carried .expectedFailure since #443, so the data exists) or explicitly pin them as always-visible. Fits naturally into the A-vs-B redesign round (#439), which owns the filter UI.
Refs #439, #459.