mirror of
https://github.com/nimbold/Firelink.git
synced 2026-08-12 04:26:57 +00:00
feat(torrents): safely remove unselected files
This commit is contained in:
+10
-7
@@ -37,6 +37,12 @@ belong in the download UI. The Aria2 reference is the [1.37.0 manual](https://ar
|
||||
- Optional `bt-prioritize-piece` preview policy for the head, tail, or both
|
||||
ends of every selected file. The constrained policy is validated, persisted,
|
||||
normalized, and reapplied when a Torrent starts or retries.
|
||||
- Optional `bt-remove-unselected-file` cleanup after completion when a
|
||||
selected-file subset is configured. Firelink requires explicit confirmation,
|
||||
reserves the unselected paths against competing downloads, keeps those
|
||||
paths separate from removable download ownership, and clears the reservation
|
||||
after observing Aria2's completion cleanup (or on terminal failure,
|
||||
cancellation, or reconfiguration).
|
||||
- Deterministic local Aria2 smoke coverage for metadata resolution, selected
|
||||
output, piece priority, pause/resume, ownership, cancellation/removal,
|
||||
unavailable trackers, daemon failure, and `bt-stop-timeout` terminal behavior;
|
||||
@@ -55,14 +61,10 @@ No remaining Tier 0 items.
|
||||
per-file priority option. Firelink therefore does not pretend that
|
||||
`select-file` is file priority; this remains pending an engine capability or
|
||||
a safe product-level model.
|
||||
2. **Safe removal of unselected files** — expose
|
||||
`bt-remove-unselected-file` only as an explicit destructive choice, with
|
||||
ownership-aware confirmation and tests for cancellation, retry, and
|
||||
reconfiguration.
|
||||
3. **Encryption policy** — expose `bt-force-encryption`,
|
||||
2. **Encryption policy** — expose `bt-force-encryption`,
|
||||
`bt-require-crypto`, and `bt-min-crypto-level` as one validated policy so
|
||||
users cannot accidentally select contradictory combinations.
|
||||
4. **Tracker timing controls** — expose tracker connect timeout, request
|
||||
3. **Tracker timing controls** — expose tracker connect timeout, request
|
||||
timeout, and interval only when their effect on battery/network behavior is
|
||||
explained and persisted.
|
||||
|
||||
@@ -77,4 +79,5 @@ No remaining Tier 0 items.
|
||||
|
||||
The first implementation in this task was remote `.torrent` metadata intake;
|
||||
follow-up implementations add stall-timeout control, bounded peer diagnostics,
|
||||
persisted tracker exclusion, and piece-preview priority.
|
||||
persisted tracker exclusion, piece-preview priority, and safe unselected-file
|
||||
removal.
|
||||
|
||||
Reference in New Issue
Block a user