Repository navigation
Commit d053db3
fixup! feat: add Git-aware dua clean subcommand
Simplify clean refresh and candidate bookkeeping (change `wtrtlqx`).
- Resolve clean refresh targets directly, preserving whole-candidate Git
revalidation and the ignore-pattern scope of their original discovery root.
- Share filesystem path construction and candidate-provenance removal with
traversal code, and reuse ignore-pattern rebasing during discovery and sizing.
- Remove redundant root total updates before cleanup grouping.
Validation: `cargo test --offline clean_`, `cargo test --offline --bin dua`,
`cargo fmt --all --check`, and `git diff --check`.
Diff-stat: 160 insertions, 221 deletions (61 fewer lines).
# d773114 fixup! feat: update deletion progress without blocking navigation
fixup! feat: update deletion progress without blocking navigation
Give `dua clean` a dedicated hub for discovering and grouping deletion candidates.
This follows change `nokwszk` so deletion progress can use the same flat, stable
candidate roots while the user navigates between the hub and the browser.
- Title the hub with its search inputs, group siblings and contained candidates,
and preserve the selected path as candidates arrive, disappear, or leave a
singleton. Keep the hub in largest-first order with its own limited controls.
- Open a candidate or group at a detached browser root backed by existing real
nodes. Reuse ordinary sorting, glob search, Gitignore annotations, navigation,
marking, and deletion without copying or reparenting candidate trees.
- Keep group membership, group marking, labels, and refresh policy in `CleanHub`.
Remove group metadata and action-specific clean branches from ordinary entries,
widgets, and handlers. The explicit hub adds code but reduces browser coupling.
- Preserve whole-candidate Git revalidation and original ignore-pattern scope on
refresh. Restore the original search directory before replaying a glob, and
keep navigation inside the scoped results when their viewed entry is deleted.
- Clear browser rows and annotation messages when returning to the hub, so
deletion cannot consult removed entries after leaving the browser.
Validation:
- Clean journeys cover input titles, grouping, scoped browsing/search, Gitignore
annotations, refresh provenance, selection, and deletion safety.
- `make check-pre-push`
- `cargo clippy --offline --workspace --all-targets --all-features -- -D warnings`
- Linux and Windows workspace compilation with all targets and features.
- Independent review of scoped navigation, refresh, and deletion. Codex CLI review
remains unavailable because of expired authentication and a reported usage limit.
# df12220 fixup! fixup! feat: update deletion progress without blocking navigation
fixup! fixup! feat: update deletion progress without blocking navigation
Reduce the UI adaptation introduced in change `mzunukt` while keeping cleanup
grouping separate from ordinary interactive browsing.
- Render borrowed entry rows with presentation flags and an optional label.
The shared widget consumes an iterator and a selected row position; it no
longer needs filesystem indices or the application's mark and annotation maps.
- Remove the hub's cloned entry bundles, temporary maps, and fake row indices.
Use the usual directory marker before appending a group label.
- Share path opening, deletion guards, and opener errors between the hub and
browser. Keep the distinct partial-group marking rule inside `CleanHub`.
- Simplify hub state access without adding clean-specific branches to ordinary
browser handlers or changing traversal and deletion scopes.
Validation:
- `cargo test --offline --all-features --bin dua --quiet`
- `cargo clippy --offline --workspace --all-targets --all-features -- -D warnings`
- Regression assertions for fully and partially marked group rendering.
- Independent review of rendering, navigation, group marks, and deletion guards.1 parent 4f20ea9 commit d053db3
27 files changed
Lines changed: 1224 additions & 1001 deletions
File tree
- src
- interactive
- app
- tests
- widgets
- snapshot
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
217 | 217 | | |
218 | 218 | | |
219 | 219 | | |
220 | | - | |
221 | | - | |
222 | | - | |
| 220 | + | |
| 221 | + | |
223 | 222 | | |
224 | 223 | | |
225 | 224 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
413 | | - | |
| 413 | + | |
414 | 414 | | |
415 | 415 | | |
416 | 416 | | |
| |||
0 commit comments