From 8227d29e9a995ff18c52c001ace557048ad64260 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 17 Jan 2026 17:01:06 +0000 Subject: [PATCH 1/3] Initial plan From cd34cce78b470d0a1d33b3de3da187f25e3cc115 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 17 Jan 2026 17:06:28 +0000 Subject: [PATCH 2/3] Fix critical performance issues: retry timeout, caching, N+1 queries, and optimization Co-authored-by: Brogrammer1912 <89769614+Brogrammer1912@users.noreply.github.com> --- .../streamspace/content/Indexer.java | 32 +++++++++++-------- .../streamspace/content/MusicRepository.java | 16 +++++++++- .../streamspace/content/VideoRepository.java | 15 ++++++++- .../preferences/UserPreferences.java | 7 ++++ .../streamspace/resilience/RetryService.java | 2 +- .../torrentengine/TorrentDownloadManager.java | 2 +- 6 files changed, 56 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/brogrammer/streamspace/content/Indexer.java b/src/main/java/com/brogrammer/streamspace/content/Indexer.java index dba7563..0cf1ae2 100644 --- a/src/main/java/com/brogrammer/streamspace/content/Indexer.java +++ b/src/main/java/com/brogrammer/streamspace/content/Indexer.java @@ -35,6 +35,8 @@ public class Indexer { @Value("${audio.file.extensions.streaming}") private String audioFileExtensions; + + private String cachedGlobPattern; private final UnaryOperator decodePathSegment = pathSegment -> UriUtils.decode(pathSegment, StandardCharsets.UTF_8.name()); private final Function decodeContentType = fileEntryPath -> MediaTypeFactory.getMediaType(new FileSystemResource(fileEntryPath)).orElse(MediaType.APPLICATION_OCTET_STREAM).toString(); @@ -45,11 +47,7 @@ public class Indexer { public void indexMovie(TorrentFile file, String torrentName, String fileName, TorrentId torrentId, String contentMimeType) { log.info("FileName {}", fileName); log.info("TorrentName {}", torrentName); - List