feat: add scan progress bar with phase indicator
Add live progress reporting during library scans: - Pre-walk count: fast WalkDir to count audio files upfront for percentage calculation (~1-2s overhead) - Progress ticker: emits ScanProgress events every 300ms with phase, file counts (added/skipped/updated), and total - Phase labels: counting → scanning → thumbnails → orphans - Frontend: progress bar with percentage, file counts breakdown, and phase indicator in both config-page and library-manager Replaces the static 'Scanning...' text with a live progress bar showing e.g. '62% — Scanning... 1,247 / 2,013 files (891 new, 356 skipped)'
This commit is contained in:
@@ -54,6 +54,17 @@ type ScanMetrics struct {
|
||||
Warnings []ScanWarning `json:"warnings"`
|
||||
}
|
||||
|
||||
// ScanProgress is the payload emitted periodically during a scan to
|
||||
// report live progress to the frontend.
|
||||
type ScanProgress struct {
|
||||
Phase string `json:"phase"` // "counting", "scanning", "orphans", "thumbnails"
|
||||
Total int64 `json:"total"` // total audio files from pre-walk count
|
||||
Processed int64 `json:"processed"` // added + skipped + updated so far
|
||||
Added int64 `json:"added"`
|
||||
Skipped int64 `json:"skipped"`
|
||||
Updated int64 `json:"updated"`
|
||||
}
|
||||
|
||||
// ScanWarning represents a non-fatal issue encountered during scanning.
|
||||
type ScanWarning struct {
|
||||
FilePath string `json:"filePath"`
|
||||
|
||||
Reference in New Issue
Block a user