feat(library): on-demand integrity check

GET /api/library/integrity stats every album folder on disk (via the /music
mount) and flags: missing folders, folders with no audio, zero-byte/
unreadable (truncated) files, and on-disk track count drift vs the names
captured at import/scan. Metadata-only (readdir + stat), so it runs only when
the user clicks "Check now" from a new Integrity section on /library; each
flagged album opens its modal to fix or delete. SectionHeader.note widened to
ReactNode to host the button. web 178 tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonathan
2026-07-14 21:20:39 +02:00
parent 6453cfd27b
commit 7719b2a0d8
4 changed files with 179 additions and 1 deletions
+3 -1
View File
@@ -1,4 +1,6 @@
export function SectionHeader({ title, note }: { title: string; note?: string }) {
import type { ReactNode } from "react";
export function SectionHeader({ title, note }: { title: string; note?: ReactNode }) {
return (
<div className="dept">
<h2>{title}</h2>