From c695024241a7513b8fedb3fbf7ff364d0515b392 Mon Sep 17 00:00:00 2001 From: Caleb Allen Date: Fri, 6 Mar 2026 21:28:37 -0500 Subject: [PATCH] feat(09-01): add scan control events and cancelled metrics field - Add LibraryScanCancelled, LibraryScanPaused, LibraryScanResumed events - Regenerate frontend/src/events.ts via go generate - Add Cancelled bool field to ScanMetrics struct --- backend/events/events.go | 8 ++++++++ backend/library/metrics.go | 3 +++ frontend/src/events.ts | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/backend/events/events.go b/backend/events/events.go index 5fbdb9d..1a08660 100644 --- a/backend/events/events.go +++ b/backend/events/events.go @@ -28,6 +28,7 @@ const ( ThemeConfigChanged = "ThemeConfigChanged" TrackListConfigChanged = "TrackListConfigChanged" FavoritesConfigChanged = "FavoritesConfigChanged" + ShortcutsConfigChanged = "ShortcutsConfigChanged" ) // Playlist events. @@ -46,3 +47,10 @@ const ( LibraryScanProgress = "LibraryScanProgress" LibraryScanComplete = "LibraryScanComplete" ) + +// Scan control events. +const ( + LibraryScanCancelled = "LibraryScanCancelled" + LibraryScanPaused = "LibraryScanPaused" + LibraryScanResumed = "LibraryScanResumed" +) diff --git a/backend/library/metrics.go b/backend/library/metrics.go index 01835e4..6635609 100644 --- a/backend/library/metrics.go +++ b/backend/library/metrics.go @@ -50,6 +50,9 @@ type ScanMetrics struct { Skipped int64 `json:"skipped"` Removed int64 `json:"removed"` + // Cancelled is true when the scan was stopped via CancelScan. + Cancelled bool `json:"cancelled"` + // Non-fatal issues encountered during scanning. Warnings []ScanWarning `json:"warnings"` } diff --git a/frontend/src/events.ts b/frontend/src/events.ts index c6446b1..9b43501 100644 --- a/frontend/src/events.ts +++ b/frontend/src/events.ts @@ -19,6 +19,7 @@ export const Events = { ThemeConfigChanged: "ThemeConfigChanged", TrackListConfigChanged: "TrackListConfigChanged", FavoritesConfigChanged: "FavoritesConfigChanged", + ShortcutsConfigChanged: "ShortcutsConfigChanged", // Playlist events PlaylistCreated: "PlaylistCreated", @@ -32,6 +33,11 @@ export const Events = { LibraryScanStarted: "LibraryScanStarted", LibraryScanProgress: "LibraryScanProgress", LibraryScanComplete: "LibraryScanComplete", + + // Scan control events + LibraryScanCancelled: "LibraryScanCancelled", + LibraryScanPaused: "LibraryScanPaused", + LibraryScanResumed: "LibraryScanResumed", } as const; export type EventName = (typeof Events)[keyof typeof Events];