8ca31beee3
DeleteDialog header now includes the total recursive size of all paths to be deleted (formatted via format_size). For example: 'Delete 3 (1.2 MB) ?' instead of just 'Delete ?'. Computed eagerly at construction via crate::ops::count_bytes so render() does not block on filesystem traversal. DeleteDialog (delete_dialog.rs): - New field total_bytes: u64 (cached at construction) - new() calls crate::ops::count_bytes(&paths) to populate it - render() prepends '(N items)' to header and appends size when > 0 Tests (3 new in delete_dialog::tests): - new_computes_total_bytes_for_directory (recursive dir sum) - new_total_bytes_zero_for_missing_paths - new_total_bytes_sums_multiple_paths Total: 1271 passing (was 1268; +3 new).