Built on gosh-dl 0.5.0.
Added
- Recursive HTTP mirroring: new
gosh mirror <URL>command (wget -r style) — flags for--depth,--include/--excludeglobs,--prefix,--span-hosts,--flatten,--overwrite,--fail-fast,--discovery-concurrency, plus--dry-run(discover-only preview) and--detach(fire and forget) - Mirror job management:
gosh mirror list|status|cancel|removewith UUID-prefix job resolution - Batch commands:
gosh pause-all,gosh resume-all, andgosh cancel-all [--delete-files] [-y]with per-download outcome reporting (succeeded/skipped/failed) in table and JSON formats - TUI batch keybindings:
Shift+Ppause all,Shift+Rresume all,Shift+Ccancel all (with confirmation dialog); outcomes shown as toasts - TUI: active mirror jobs shown in the top bar, activity log scrolling with
[/], Tab highlights the focused panel general.storage_backendconfig option:sqlite(default),file(one JSON sidecar per download, aria2-style), ornone
Changed
- Upgrade gosh-dl engine from 0.3.2 to 0.5.0
- Pausing now also holds queued downloads:
pause all/pause-allfreezes the entire queue - TUI redraws are coalesced — at most one repaint per refresh interval instead of one per engine event (significantly lower CPU)
- TUI search (
/) now actually filters the download list; Enter commits the filter and releases the keyboard - Subcommands shut the engine down cleanly; batch/mirror exit codes (0/1/2/130) propagate
Fixed
- TUI double input on Windows (#1): key Release events are now filtered out
gosh add --waitcould hang forever (missed-event race + lossy GID round-trip in event matching)- Direct mode missed-event race and lag stall; both paths now reconcile against engine state periodically
- TUI: selection jumping on refresh, un-editable Max Peers/Seed Ratio settings, settings overscroll, UTF-8 truncation panic in batch import, tiny-terminal underflow panic, event-loop busy-spin on closed streams
Full changelog: https://github.com/goshitsarch-eng/gosh-dl-cli/blob/main/CHANGELOG.md
Full Changelog: v0.3.2...v0.5.0