Large albums opened slowly and flickered; the default album cover was also lost in the media-objects refactor. Large-album loading: - quantize signed object URLs within a window and send Cache-Control so previews are reused instead of re-fetched - publish photo.updated (not photo.created) when variants are ready, so clients update in place without reordering the grid - worker concurrency + newest-first variant priority; raise default batch Album cover: - first uploaded photo becomes the cover when none is set - clear the cover when the cover photo is trashed or moved out - "set as album cover" in the photo context menu and actions panel OpenSpec changes: fix-large-album-load, fix-album-cover
1.9 KiB
1.9 KiB
Spec Delta
MODIFIED Requirements
Requirement: События альбома
Система SHALL публиковать события photo.created, photo.updated, photo.deleted, comment.created, like.added, like.removed, member.joined, member.left, album.updated. Событие photo.created SHALL обозначать появление фото в альбоме, а готовность вариантов существующего фото SHALL публиковаться как photo.updated.
Scenario: Новое фото
- WHEN в альбоме появляется фото
- THEN подписчики получают событие photo.created с метаданными и URL превью
Scenario: Готовы варианты
- WHEN для существующего фото сгенерированы thumb и preview
- THEN подписчики получают событие photo.updated с этим фото
ADDED Requirements
Requirement: Различение добавления и обновления фото
Клиент SHALL различать добавление нового фото в альбом и обновление уже показанного: обновление SHALL изменять фото на месте, не меняя порядок сетки.
Scenario: Обновление отображаемого фото
- WHEN приходит событие обновления для фото, которое уже показано
- THEN клиент обновляет его на месте, порядок сетки не меняется
Scenario: Обновление отсутствующего фото
- WHEN приходит событие обновления для фото, которого нет в текущем списке
- THEN клиент не добавляет его в сетку