86222d95d1
Now that rescan_show + rescan_movie run on the v2 release repositories (Phase 4 Steps 1-2), the v1 dot_alfred stack and its abstract domain ports have zero callers. Delete them and lift the Phase 3 quarantines. Deleted * alfred/infrastructure/persistence/dot_alfred/bridge.py * alfred/infrastructure/persistence/dot_alfred/repository.py (v1) * alfred/infrastructure/persistence/dot_alfred/serializer.py (v1) * alfred/infrastructure/persistence/dot_alfred/sidecar.py (v1) * alfred/domain/tv_shows/repositories.py (TVShowRepository ABC) * alfred/domain/movies/repositories.py (MovieRepository ABC) * tests/infrastructure/persistence/dot_alfred/test_repository.py * tests/infrastructure/persistence/dot_alfred/test_serializer.py Rewrite alfred/infrastructure/persistence/dot_alfred/__init__.py now re- exports only the v2 surface: the four concrete repositories (DotAlfredSeriesReleaseRepository, DotAlfredMovieReleaseRepository, DotAlfredTVShowLibraryIndex, DotAlfredMovieLibraryIndex) plus ShowFolderUnknown. DTO-level imports go through alfred.infrastructure.persistence.dot_alfred.v2 directly. No backwards-compat shims (per CLAUDE.md): the v1 names are gone, not aliased. Test suite drops from 10 → 8 skips (the two Phase 3 module-level skips disappear with the quarantined files). Full suite: 1233 passed / 8 skipped / 4 xfailed. The MediaWithTracks mixin in alfred.domain.shared.media is now orphaned (Episode lost its tracks in Phase 3, MovieRelease doesn't inherit it). Parked for Phase 5, which will either mount it on MovieRelease / SeasonRelease or delete it for good.