Commit 9b8f9dd
committed
Search: David's fix-up rounds 2 part B, 3, and 4
Round 2 part B (the 17 items the round 2 first agent left): the Size and Modified filter popovers became list-style column grids ("any/>=/<=/between" plus a preset list plus a dynamic unit column); "Use current folder" gained a smart fallback that walks the active pane's history past any search-results entry; the result list got header alignment, ResizeObserver-driven path pill measurement, and per-row context menu fixes; the snapshot pane got the full keyboard set (PgUp/PgDn, Home/End, Space, Shift+Up/Down, F3/F4) plus a regression test for the Cmd+A off-by-one that round 2 had quietly fixed without one.
Round 3 (David's next pass after running it): "Search ⏎" instead of "⏎Search⏎", AI search now overwrites the matching hand-typed buffer, filter chip respects kB vs KB, path pill widths re-measure after RAF to stop the late-collapse, Modified popover's Custom row is only selected when the user explicitly clicks it, the snapshot pane's breadcrumb shows "Search results / <label>" with the volume selector and the path the right way round, recent searches strip uses a greedy layout with always-on left label and trailing All searches button, Modified preset labels read as concrete dates ("today 0:00", "this Monday 0:00", "1st of May 0:00") with first-day-of-week from Intl.Locale, "Hide system folders" became "Hide boring folders" with the full exclude list in the tooltip, path column matches the filename font size, and the snapshot pane focuses itself when Show all in main window lands it.
Round 4 (David's screenshot review): the "Search results no longer available" pane was a real bug. The fresh logs caught it: `read_directory_with_progress: ..., volume_id=search-results, path=/Library/...` and the matching "Dropping stale onPathChange" warning. When the user activated a real folder from a snapshot pane (or the search dialog's exit landed on a real path while the active pane was still on the snapshot volume), FilePane.handleNavigate and DualPaneExplorer.navigateToPath were setting currentPath to a real filesystem location without switching volumeId off `search-results`. The pane then tried to render SearchResultsView against a path that wasn't a snapshot URL, the snapshot-id extractor returned null, and the user saw the friendly error pane.
The fix routes both call sites through the volume-change machinery. A new pure helper `isCrossVolumeNavigation(currentVolumeId, targetPath)` (in `pane/snapshot-pane-navigation.ts`) decides whether we're leaving the snapshot volume; when it returns true the caller resolves the real volume via `resolvePathVolume` and reconfigures the pane via `onVolumeChange` / `handleVolumeChange` BEFORE loading the target path. Tests pin the decision with the exact `/Library/Developer/CommandLineTools/...` path that reproduced the user bug.
Also in round 4: the "Loading drive index..." status bar duplicate goes away (status bar stays empty whenever the content area is the source of truth, same rule as Searching and No-files-match). Cmd+Enter and Shift+Enter are explicit no-ops in the dialog; the earlier "Cmd+Enter runs AI" shortcut is gone, bare Enter is the only key that runs a search or opens the cursor row.
The eject-volume worktree apparently churns the same files; left it alone.1 parent 5c35d9e commit 9b8f9dd
43 files changed
Lines changed: 4119 additions & 436 deletions
File tree
- apps/desktop/src
- lib
- file-explorer
- pane
- search
- routes/(main)
- docs/specs
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
182 | 182 | | |
183 | 183 | | |
184 | 184 | | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
185 | 196 | | |
186 | 197 | | |
187 | 198 | | |
| |||
198 | 209 | | |
199 | 210 | | |
200 | 211 | | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
207 | 254 | | |
208 | 255 | | |
209 | 256 | | |
| |||
Lines changed: 14 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
39 | 38 | | |
40 | 39 | | |
41 | 40 | | |
| |||
99 | 98 | | |
100 | 99 | | |
101 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
102 | 105 | | |
103 | | - | |
| 106 | + | |
104 | 107 | | |
105 | 108 | | |
106 | 109 | | |
| |||
110 | 113 | | |
111 | 114 | | |
112 | 115 | | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
117 | 124 | | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 125 | + | |
127 | 126 | | |
128 | 127 | | |
129 | 128 | | |
| |||
Lines changed: 59 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
| 55 | + | |
54 | 56 | | |
55 | 57 | | |
56 | 58 | | |
| |||
2293 | 2295 | | |
2294 | 2296 | | |
2295 | 2297 | | |
| 2298 | + | |
| 2299 | + | |
| 2300 | + | |
| 2301 | + | |
| 2302 | + | |
| 2303 | + | |
| 2304 | + | |
2296 | 2305 | | |
2297 | 2306 | | |
2298 | 2307 | | |
2299 | | - | |
2300 | 2308 | | |
2301 | 2309 | | |
2302 | | - | |
2303 | | - | |
| 2310 | + | |
| 2311 | + | |
| 2312 | + | |
| 2313 | + | |
| 2314 | + | |
| 2315 | + | |
2304 | 2316 | | |
2305 | 2317 | | |
2306 | 2318 | | |
| |||
2398 | 2410 | | |
2399 | 2411 | | |
2400 | 2412 | | |
| 2413 | + | |
| 2414 | + | |
| 2415 | + | |
| 2416 | + | |
| 2417 | + | |
| 2418 | + | |
| 2419 | + | |
| 2420 | + | |
| 2421 | + | |
| 2422 | + | |
| 2423 | + | |
| 2424 | + | |
| 2425 | + | |
| 2426 | + | |
| 2427 | + | |
| 2428 | + | |
| 2429 | + | |
| 2430 | + | |
| 2431 | + | |
| 2432 | + | |
2401 | 2433 | | |
2402 | 2434 | | |
2403 | 2435 | | |
| |||
2571 | 2603 | | |
2572 | 2604 | | |
2573 | 2605 | | |
| 2606 | + | |
| 2607 | + | |
| 2608 | + | |
| 2609 | + | |
| 2610 | + | |
| 2611 | + | |
| 2612 | + | |
| 2613 | + | |
| 2614 | + | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
2574 | 2630 | | |
2575 | 2631 | | |
2576 | 2632 | | |
| |||
0 commit comments