Milestone #421 built a sweep that compared each image's `artist_id` to the
name of the directory holding its file, and called every mismatch a misplaced
image. It reported 33,789 of 63,605 as wrongly filed. That number described
the comparison, not the library.
What it actually was:
32,475 (97.1%) one artist's own folder, spelled differently
— Telepurte/ vs telepurte/. Same artist, same art.
657 ( 2.0%) loose at the images root
328 ( 1.0%) in a folder named after a different artist
And the 1% did not mean what the tool assumed either. `ImageProvenance`
records the post and source every file was downloaded from — the
authoritative answer, which the tool never consulted. Querying it for all 328:
144 provenance agrees with the record (move would be right)
87 provenance agrees with the FOLDER (the record is wrong; move wrong)
53 provenance names SEVERAL artists (no single correct folder)
41 no provenance at all
3 agrees with neither
So the sweep would have misfiled or arbitrarily picked for ~41% of the only
set it was really needed for. The system already knew where each file came
from; the tool inferred it from a column and a directory name instead.
Operator, 2026-09-21: *"the current system consistently records where items
are and where they came from this is just complicating something works and
doesn't need fixing."* Correct on both counts.
Removed: the service, the tasks, the model and migration 0099's table, the
/api/cleanup/layout and /placement/* endpoints, the Maintenance card and its
store actions, and the tests. 0100 drops the table (rule #22 — no legacy).
KEPT deliberately, per the operator:
- `utils.paths.canonical_subdir` — new filesystem imports derive their
directory from the artist's slug, matching what the downloader always did.
Not part of this tool; removing it would be churn that fixes nothing.
- The 327 files run 1 moved (InsoUwu/ -> insouwu/). Same artist either way,
and the gallery renders them correctly.
- Everything from #4223 (three-gate dedup, 256-bit pHash) and #4234 (backup
credential exclusion). Those fixed problems that were actually reported.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LVjrnpQjRgHdvq95rASoiR