Milestone-4-5: Upload + job tracking, Import + completion #4

Merged
Martin merged 5 commits from milestone-4-5 into main 2026-04-14 18:49:50 +02:00
Owner

Milestone 4 — Upload + job tracking

  • qBittorrent client adapter (qbittorrentClient.ts) — auth, upload, status polling
  • BFF upload endpoint (POST /api/upload) — accept .torrent file, compute info_hash, send to qBittorrent, persist job in SQLite
  • Job status endpoint (GET /api/jobs?ids=)
  • BFF startup: resume polling for in-progress jobs from DB
  • Frontend: file drop area, root folder selector, submit button (returns 202 + jobId)
  • localStorage job tracking, polling, toast notifications
  • Persistent job status indicator visible outside the details modal
  • Tests: upload flow, job status endpoint

Milestone 5 — Import + completion

  • Post-download: call GET /api/v3/manualimport?folder= on Radarr/Sonarr to get import candidates
  • Trigger POST /api/v3/command with ManualImport and importMode: "copy"
  • Poll Radarr/Sonarr command status until complete or failed
  • Full status lifecycle: queued → downloading → stalled → importing → complete / failed
  • Frontend: reflect all statuses in UI, display failure reasons
  • Tests: import flow (happy + error)
## Milestone 4 — Upload + job tracking - qBittorrent client adapter (`qbittorrentClient.ts`) — auth, upload, status polling - BFF upload endpoint (`POST /api/upload`) — accept .torrent file, compute info_hash, send to qBittorrent, persist job in SQLite - Job status endpoint (`GET /api/jobs?ids=`) - BFF startup: resume polling for in-progress jobs from DB - Frontend: file drop area, root folder selector, submit button (returns 202 + jobId) - localStorage job tracking, polling, toast notifications - Persistent job status indicator visible outside the details modal - Tests: upload flow, job status endpoint ## Milestone 5 — Import + completion - Post-download: call `GET /api/v3/manualimport?folder=` on Radarr/Sonarr to get import candidates - Trigger `POST /api/v3/command` with `ManualImport` and `importMode: "copy"` - Poll Radarr/Sonarr command status until complete or failed - Full status lifecycle: queued → downloading → stalled → importing → complete / failed - Frontend: reflect all statuses in UI, display failure reasons - Tests: import flow (happy + error)
Martin merged commit bdcc37d5cb into main 2026-04-14 18:49:50 +02:00
Martin deleted branch milestone-4-5 2026-04-14 18:49:50 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Martin/torrent-findarr!4
No description provided.