chore(openspec): отметить задачи fix-copy-edit-variant-sharing выполненными
Все 9 задач закрыты; в design.md уточнено, что удалённые привязки не осиротевают объекты: отредактированная версия живёт вместе с фото.
This commit is contained in:
@@ -2,34 +2,34 @@
|
||||
|
||||
## 1. Список edit-ролей
|
||||
|
||||
- [ ] 1.1 В `backend/internal/photos/edit_render.go` собрать общий список ролей
|
||||
- [x] 1.1 В `backend/internal/photos/edit_render.go` собрать общий список ролей
|
||||
(`RoleEdit`, `RoleEditThumb`, `RoleEditMedium`, `RoleEditPreview`) и хелпер проверки
|
||||
роли; проверить, что список используется в обоих хранилищах и не дублируется
|
||||
строковыми литералами
|
||||
|
||||
## 2. Копирование без отредактированной версии
|
||||
|
||||
- [ ] 2.1 В `Store.Clone` (`backend/internal/photos/store.go`) исключить edit-роли из
|
||||
- [x] 2.1 В `Store.Clone` (`backend/internal/photos/store.go`) исключить edit-роли из
|
||||
переносимых привязок `photo_objects`; проверить тестом `copy_test.go`: копия
|
||||
получает обычные варианты и не получает edit-объекты
|
||||
- [ ] 2.2 В `SQLiteStore.Clone` (`backend/internal/photos/sqlite_store.go`) сделать то же
|
||||
- [x] 2.2 В `SQLiteStore.Clone` (`backend/internal/photos/sqlite_store.go`) сделать то же
|
||||
для SQLite; проверить тем же тестом, прогнанным на SQLite-хранилище
|
||||
|
||||
## 3. Разовая чистка существующих копий
|
||||
|
||||
- [ ] 3.1 Добавить миграцию Postgres `backend/migrations/000016_*.up.sql` и `.down.sql`,
|
||||
- [x] 3.1 Добавить миграцию Postgres `backend/migrations/000016_*.up.sql` и `.down.sql`,
|
||||
удаляющую edit-привязки у фото с пустыми `edit_params`; проверить на тестовой базе,
|
||||
что привязки исходных фото с правками остались, а «чужие» удалены
|
||||
- [ ] 3.2 Добавить миграцию SQLite `backend/migrations/sqlite/000008_*.up.sql` и
|
||||
- [x] 3.2 Добавить миграцию SQLite `backend/migrations/sqlite/000008_*.up.sql` и
|
||||
`.down.sql` с тем же действием; проверить тем же сценарием на SQLite
|
||||
- [ ] 3.3 Убедиться, что удалённые объекты подбираются сборщиком мусора
|
||||
- [x] 3.3 Убедиться, что удалённые объекты подбираются сборщиком мусора
|
||||
(`ClaimGarbage` не возвращает объекты с привязками); проверить существующим тестом
|
||||
`objects_test.go`
|
||||
|
||||
## 4. Интеграционная проверка
|
||||
|
||||
- [ ] 4.1 Прогнать `cd backend && go test ./internal/photos/ -v`; убедиться, что тесты
|
||||
- [x] 4.1 Прогнать `cd backend && go test ./internal/photos/ -v`; убедиться, что тесты
|
||||
зелёные
|
||||
- [ ] 4.2 Прогнать `make test`; убедиться, что весь бэкенд зелёный
|
||||
- [ ] 4.3 Проверить вручную: отредактировать фото, скопировать его в другой альбом и
|
||||
- [x] 4.2 Прогнать `make test`; убедиться, что весь бэкенд зелёный
|
||||
- [x] 4.3 Проверить вручную: отредактировать фото, скопировать его в другой альбом и
|
||||
убедиться, что копия показывает исходник, а панель правок у копии пустая
|
||||
|
||||
Reference in New Issue
Block a user