Commit 89204c2
committed
Select dialog: a size or date filter with an empty name bar now selects matching files
Fixes the headline correctness bug: in the Select/Deselect dialog, a size filter like `≥ 1 MB` with an empty name pattern returned zero results. `buildMatchQuery()` returned `null` whenever the pattern was empty, so the JS matcher short-circuited to `[]` and the size/date chips were effectively decorative unless a glob was also typed.
Now an empty name bar WITH an active filter (size ≠ any or date ≠ any) runs as match-all: `buildMatchQuery` substitutes a glob `*`, and the size/date predicates narrow the set, so `≥ 1 MB` with no glob selects every file ≥ 1 MB. Empty pattern AND no filters still yields `null` (nothing to run). The new `hasActiveFilter()` predicate is the single "is there anything to run?" check, written so a future type filter slots in cleanly.
- The run path already re-fires correctly: the size/date popovers call `scheduleSearch` on edit, and the Enter / `runOnMount` paths have no empty-query gate. No change needed there.
- Search needed no change: its backend already match-alls on a null `namePattern` with size filters, and `buildSearchQuery` already builds `{ namePattern: null, minSize: X }` for an empty bar. Added a regression test proving the frontend doesn't block it.
- Tests (TDD red→green): a `SelectionDialog.svelte` test (empty bar + `≥ 1 MB` size popover pick → commit selects exactly the matching index) that failed red against the old null-gate; a `selection-matching` test pinning the match-all + size contract; a `search-state` regression test for the match-all `SearchQuery`.
- Docs: `selection-dialog/CLAUDE.md` § Match semantics now documents the filter-only behavior plus a gotcha against reintroducing the empty-pattern early-return.1 parent a5c6035 commit 89204c2
5 files changed
Lines changed: 114 additions & 3 deletions
File tree
- apps/desktop/src/lib
- search
- selection-dialog
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
101 | 115 | | |
102 | 116 | | |
103 | 117 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
51 | 57 | | |
52 | 58 | | |
53 | 59 | | |
| |||
Lines changed: 26 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
155 | 166 | | |
156 | 167 | | |
157 | 168 | | |
158 | 169 | | |
159 | 170 | | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
160 | 177 | | |
161 | 178 | | |
162 | 179 | | |
| |||
181 | 198 | | |
182 | 199 | | |
183 | 200 | | |
184 | | - | |
| 201 | + | |
| 202 | + | |
185 | 203 | | |
186 | 204 | | |
187 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
188 | 212 | | |
189 | 213 | | |
190 | 214 | | |
| |||
Lines changed: 47 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
525 | 525 | | |
526 | 526 | | |
527 | 527 | | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
528 | 575 | | |
529 | 576 | | |
530 | 577 | | |
| |||
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
103 | 123 | | |
104 | 124 | | |
105 | 125 | | |
| |||
0 commit comments