2bf4cb2a0f
- Created server/services/DownloadBuilder.js with buildUserDownloads function - Added private helpers: buildSeriesMapFromRecords, buildMoviesMapFromRecords, matchSabSlots, matchSabHistory, matchTorrents, getSlotStatusAndSpeed - Updated server/routes/dashboard.js to use buildUserDownloads in /user-downloads and SSE /stream - Removed ~500 lines of duplicated download-assembly logic - All unit tests passing (DownloadBuilder: 14, DownloadAssembler: 73, TagMatcher: 26)