Lowy review on PR #791 flagged that CodeFilterBar conflates two unrelated volatility axes:
- Mode selection (sequence volatility — adding/changing modes)
- Filename filter input (activity volatility — search ownership, algorithm, placement)
They're grouped because they share chrome space, but they change for unrelated reasons. The seam was visible in the PR itself: the search-ownership change touched CodeFilterBar even though mode-selection logic didn't change.
A split would look like:
ModeChipPicker.tsx — chip + popover, parameterized by modes: ModeOption[]
FileSearchInput.tsx — input + clear button, parameterized by value + onChange
CodeFilterBar.tsx shrinks to a layout container (or this file goes away and CodeTab arranges the two siblings directly)
The Lowy reviewer flagged this as optional ("visual grouping provides UX justification") — filing it so the structural debt is tracked rather than lost. Pick up if a follow-up touches either concern.
Filed from the /do deferred-finding audit on PR #791.
Lowy review on PR #791 flagged that
CodeFilterBarconflates two unrelated volatility axes:They're grouped because they share chrome space, but they change for unrelated reasons. The seam was visible in the PR itself: the search-ownership change touched
CodeFilterBareven though mode-selection logic didn't change.A split would look like:
ModeChipPicker.tsx— chip + popover, parameterized bymodes: ModeOption[]FileSearchInput.tsx— input + clear button, parameterized byvalue+onChangeCodeFilterBar.tsxshrinks to a layout container (or this file goes away andCodeTabarranges the two siblings directly)The Lowy reviewer flagged this as optional ("visual grouping provides UX justification") — filing it so the structural debt is tracked rather than lost. Pick up if a follow-up touches either concern.
Filed from the
/dodeferred-finding audit on PR #791.