diff --git a/frontend/src/components/subscriptions/DownloadsTab.vue b/frontend/src/components/subscriptions/DownloadsTab.vue
index 9a48144..5c26b07 100644
--- a/frontend/src/components/subscriptions/DownloadsTab.vue
+++ b/frontend/src/components/subscriptions/DownloadsTab.vue
@@ -58,6 +58,7 @@
:retrying-all="retryingAll"
@retry="onRetrySource"
@retry-all="onRetryAll"
+ @view-logs="onViewFailingLogs"
/>
@@ -364,6 +365,23 @@ watch(filterModel, async (m) => {
async function openDetail(id) {
await store.loadOne(id)
}
+
+async function onViewFailingLogs(source) {
+ // Find and open the most recent DownloadEvent for this source.
+ // Reuses the existing DownloadDetailModal — same stdout/stderr/error
+ // surface the row-click in the events feed shows.
+ try {
+ const ev = await store.loadLastForSource(source.id)
+ if (!ev) {
+ toast({
+ text: `No download events recorded for ${source.artist_name || source.platform} yet.`,
+ type: 'warning',
+ })
+ }
+ } catch (e) {
+ toast({ text: `Failed to load logs: ${e.message}`, type: 'error' })
+ }
+}