web-ui: добавлена страница группового удаления загрузок

- выбор → поимённое подтверждение → отчёт: пачка до 20 загрузок, гарды входа
  на обеих границах, потолок времени и остановка после трёх подряд отказов
  внешнего сервиса
- допуск полного удаления сведён в единую точку store.State.CanDelete() —
  worker, страница загрузки и Telegram больше не держат своих перечней
This commit is contained in:
av
2026-08-10 17:43:36 +03:00
parent a7c1efd8eb
commit 288be8ec34
35 changed files with 3185 additions and 31 deletions
+5 -2
View File
@@ -37,8 +37,11 @@ Go 1.26, один статический бинарь (`CGO_ENABLED=0`). Module
Исключения два, и оба — не наши операции с файловой системой, а вызов
`torrents/delete` qBittorrent с `deleteFiles=true`: (1) `Delete` из
`done`/`orphaned`/`target_missing` по явному подтверждению человека — гард
последней копии там выключен сознательно
([state-reconciliation](openspec/specs/state-reconciliation/spec.md));
последней копии там выключен сознательно; подтверждение допустимо **одно на
пачку**, если называет каждую загрузку поимённо, и условия допуска групповой
путь не смягчает
([state-reconciliation](openspec/specs/state-reconciliation/spec.md),
[web-ui](openspec/specs/web-ui/spec.md));
(2) уборка воркером **собственного** торрента, добавленного этим же `add`
секундами ранее, когда закрытие **любым** путём (`Cancel` или `Dismiss`)
увело задачу из `catched` в окне после `add` — уборка привязана к состоянию,