Admin: Suspect sources report (#5410) #153

Merged
bvandeusen merged 2 commits from dev into main 2026-10-08 16:03:54 -04:00
Owner

Adds the admin Suspect sources report (#5410). It lists present tracks whose file name reads like a video title rather than an album track: "(Official Video)", "[Audio]", "Visualizer", "MV", reaction videos. They are grouped by folder, like Missing files.

  • GET /api/admin/library/suspect-sources. One marker list in Go builds both the Postgres ~* filter and the labels on each row. Matching is on the file's basename only, and missing files are left out.
  • I calibrated the markers against the live library:
    • "live in/at" is dropped, because it matches real live albums.
    • "reaction" only fires on reaction-video phrasing, because a bare match caught "Chain Reaction".
  • New admin tab after Duplicates. Read-only, loads as you scroll.

Commits: 3f0540cb, 2205b292. dev run 8841 is green on every validation lane.

🤖 Generated with Claude Code

Adds the admin **Suspect sources** report (#5410). It lists present tracks whose file name reads like a video title rather than an album track: "(Official Video)", "[Audio]", "Visualizer", "MV", reaction videos. They are grouped by folder, like Missing files. - `GET /api/admin/library/suspect-sources`. One marker list in Go builds both the Postgres `~*` filter and the labels on each row. Matching is on the file's basename only, and missing files are left out. - I calibrated the markers against the live library: - "live in/at" is dropped, because it matches real live albums. - "reaction" only fires on reaction-video phrasing, because a bare match caught "Chain Reaction". - New admin tab after Duplicates. Read-only, loads as you scroll. Commits: 3f0540cb, 2205b292. dev run 8841 is green on every validation lane. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 2 commits 2026-10-08 16:03:50 -04:00
feat: admin Suspect sources report, for files named like video rips (#5410)
release / govulncheck (push) Successful in 37s
release / go (push) Failing after 1m10s
release / Attach APK to the Release (tag releases only) (push) Canceled after 0s
release / web (push) Failing after 1m24s
release / integration (push) Successful in 4m38s
release / android (push) Successful in 5m5s
release / Build + push container image (push) Canceled after 0s
release / Verify release artifacts (tag releases only) (push) Canceled after 0s
release / Build signed APK (releases and dev) (push) Canceled after 5m18s
3f0540cb7a
Humanz turned out to be YouTube rips: "(Official Video)", "Visualizer", a
reaction video filed as a song, junk disc numbers (#5401). The library holds
about 200 more files named the same way. This report lists them, grouped by
folder like Missing files, with the markers each file name carries.

- GET /api/admin/library/suspect-sources: one marker list in Go builds both
  the Postgres ~* filter and each row's labels, so they cannot drift.
  Basename only; missing files are left out.
- Markers calibrated on the live library: "live in/at" dropped (real live
  albums), "reaction" narrowed (it caught "Chain Reaction").
- Admin tab "Suspect sources", read-only, loads as you scroll; a folder split
  across pages is joined back into one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test: fix the Suspect sources tests CI rejected (#5410)
release / govulncheck (push) Successful in 15s
release / web (push) Successful in 1m23s
release / go (push) Successful in 1m36s
release / integration (push) Successful in 4m36s
release / android (push) Successful in 5m4s
release / Build signed APK (releases and dev) (push) Successful in 5m13s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 1m11s
release / Verify release artifacts (tag releases only) (push) Skipped
2205b2927b
- staticcheck QF1001: the nil-vs-empty check in TestSourceMarkersFor is
  now an early continue instead of a negated conjunction.
- The page test mocks #lib/api/admin.js whole, so suspectSourcesNextOffset
  was undefined there. Its test moves to admin.suspect-sources.test.ts,
  beside admin.scan.test.ts, against the real module.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bvandeusen merged commit d1fe3758d5 into main 2026-10-08 16:03:54 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#153