Files
iu 98aaa3156a chore(openspec): архивировать add-orphaned-preview-handling и синхронизировать спеки
Новое требование в phone-album-sync о потере/возврате серверной копии у
разгруженного превью, требование в android-client о метке потерянного элемента
и действии удаления с устройства.
2026-10-16 14:13:01 +03:00

4.2 KiB

Spec Delta

ADDED Requirements

Requirement: Обнаружение потери серверной копии превью

При проверке синхронизации приложение SHALL сопоставлять серверное фото каждого разгруженного превью с фото целевого альбома и при его отсутствии SHALL помечать элемент как потерявший серверную копию, сохраняя превью и провенанс.

Scenario: Копии больше нет

  • WHEN серверное фото разгруженного превью отсутствует в целевом альбоме
  • THEN приложение помечает элемент как потерявший серверную копию

Scenario: Превью не трогается

  • WHEN элемент помечен как потерявший серверную копию
  • THEN превью-файл на устройстве сохраняется и не загружается повторно как оригинал

Requirement: Восстановление связи при возврате серверного фото

При проверке синхронизации приложение SHALL снимать пометку с элемента, если его серверное фото снова присутствует в целевом альбоме.

Scenario: Фото вернулось на сервер

  • WHEN серверное фото помеченного элемента снова присутствует в целевом альбоме
  • THEN элемент возвращается к обычному разгруженному состоянию с серверной копией

Requirement: Удаление потерянного превью с устройства

Приложение SHALL позволять удалить потерявшее серверную копию превью с устройства; удаление SHALL удалять превью-файл и запись локального индекса и SHALL NOT обращаться к серверу, поскольку копии там уже нет.

Scenario: Удаление с устройства

  • WHEN пользователь удаляет потерявшее серверную копию превью с устройства
  • THEN превью-файл и запись локального индекса удаляются, а сервер не затрагивается

Scenario: Согласие системы

  • WHEN превью-файл не принадлежит приложению
  • THEN удаление выполняется после системного согласия на удаление

Requirement: Повторная заливка вернувшегося оригинала

Если содержимое с исходной контрольной суммой потерявшего копию элемента снова присутствует на устройстве, приложение SHALL загрузить его на сервер как новую загрузку этого элемента.

Scenario: Вернулся в тот же альбом

  • WHEN оригинал с исходной контрольной суммой снова появился в альбоме устройства
  • THEN приложение загружает его в целевой серверный альбом

Scenario: Вернулся в другой альбом

  • WHEN содержимое с исходной контрольной суммой присутствует в другом альбоме устройства
  • THEN приложение загружает его в целевой серверный альбом

Scenario: Режим переноса

  • WHEN загрузка вернувшегося оригинала завершена в режиме переноса
  • THEN элемент снова проходит обычную разгрузку в превью