feat: robust library sync with adaptive watchdog, resume-on-failure &… (#22)

* feat: robust library sync with adaptive watchdog, resume-on-failure & parallel pre-warming

* update copy
This commit is contained in:
Harvey
2026-04-05 15:36:42 +01:00
committed by GitHub
parent e76ed59b44
commit e84f2d6127
19 changed files with 819 additions and 136 deletions
@@ -101,3 +101,46 @@
max={5}
/>
</div>
<div class="divider my-4"></div>
<h4 class="font-medium text-sm text-base-content/70 mb-3">Library Sync</h4>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-4">
<SettingsNumberField
label="Stall Timeout"
description="Cancel sync if no progress (default: 10 min)"
bind:value={data.sync_stall_timeout_minutes}
min={2}
max={30}
unit="min"
/>
<SettingsNumberField
label="Max Timeout"
description="Hard sync timeout (default: 8 hrs)"
bind:value={data.sync_max_timeout_hours}
min={1}
max={48}
unit="hrs"
/>
<SettingsNumberField
label="AudioDB Prewarm Concurrency"
description="Parallel AudioDB requests (default: 4)"
bind:value={data.audiodb_prewarm_concurrency}
min={1}
max={8}
/>
<SettingsNumberField
label="AudioDB Prewarm Delay"
description="Delay between items (default: 0.3s)"
bind:value={data.audiodb_prewarm_delay}
min={0}
max={5}
step={0.1}
unit="sec"
/>
<SettingsNumberField
label="Discovery Precache Concurrency"
description="Parallel discovery fetches (default: 3)"
bind:value={data.artist_discovery_precache_concurrency}
min={1}
max={8}
/>
</div>
@@ -59,4 +59,9 @@ export interface AdvancedSettingsForm {
cache_ttl_audiodb_not_found: number;
cache_ttl_audiodb_library: number;
cache_ttl_recently_viewed_bytes: number;
sync_stall_timeout_minutes: number;
sync_max_timeout_hours: number;
audiodb_prewarm_concurrency: number;
audiodb_prewarm_delay: number;
artist_discovery_precache_concurrency: number;
}