Commit Graph
7 Commits
Author SHA1 Message Date
cdnutterandClaude Opus 5.5 75e0516434 Drop Artist/Album/Title depth assumptions from layout checks
Matching has always been by relative path, so any folder layout works as
long as both libraries use the same one. Remove the depth and loose-root-file
warnings, which flagged valid layouts, and reword the UI and README to say
"same folder layout on both sides" with Artist/Album/Title.ext only as an
example. The "elsewhere" fallback is now described as same top-level folder,
different subfolder. Add a test covering flat and deeply nested layouts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-22 16:48:55 -07:00
cdnutter f49274360b includes dry-run 2026-09-22 16:40:10 -07:00
cdnutter adfafa88a1 image name 2026-09-22 16:26:27 -07:00
cdnutter 711095aa66 ro to test 2026-09-22 16:23:23 -07:00
cdnutter d54260d2da editted for personal env 2026-09-22 16:21:44 -07:00
cdnutter 8078370852 editted for personal env 2026-09-22 16:21:28 -07:00
cdnutterandClaude Opus 5.5 ac47e61b08 Initial commit: playlink music library hardlink deduplicator
Go backend (chi, SQLite) with an embedded React/TypeScript UI that finds
songs present in both a host and a slave music library and replaces the
slave copy with a hardlink to the host copy.

- Path-first matching with format/title/album-folder fallbacks
- Auto-linking of byte-identical files, re-verified with cmp before linking
- Manual review with ffprobe quality comparison, downgrade guard and
  promote-to-host override
- Build mode to populate an empty slave library from the host
- Dry run by default, atomic stage+rename replacement, quarantine with
  retention, undo, path confinement and authenticated UI
- Dockerfile and compose file for Unraid

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-22 15:38:25 -07:00