chore(openspec): предложить phone-album-two-way-sync и обновить спеку phone-album-sync

Новое изменение: двусторонний миррор альбома устройства и серверного альбома
(материализация серверных фото, признак происхождения, двусторонние удаления с
явным намерением, устойчивое выключение, первый проход, n:1). Purpose основной
спеки phone-album-sync обновлён под двустороннюю синхронизацию.

Change проходит `openspec validate --strict`.
This commit is contained in:
iu
2026-10-16 23:19:08 +03:00
parent cd326c0ae6
commit d17f62f676
7 changed files with 643 additions and 3 deletions
@@ -0,0 +1,58 @@
# Spec Delta
## MODIFIED Requirements
### Requirement: Экран альбома устройства и настройки синхронизации
Приложение SHALL открывать альбом устройства с сеткой медиа и SHALL предоставлять
настройки синхронизации этого альбома по свайпу вправо. Настройки SHALL содержать
только выбор режима синхронизации. Сетка SHALL включать как локальные элементы, так и
скачанные с сервера при двусторонней синхронизации.
#### Scenario: Открытие альбома устройства
- **WHEN** пользователь выбирает альбом устройства в списке
- **THEN** открывается сетка медиа этого альбома
#### Scenario: Настройки по свайпу
- **WHEN** пользователь свайпает вправо в открытом альбоме устройства
- **THEN** открываются настройки синхронизации с выбором режима и только им
#### Scenario: Метка перенесённого элемента
- **WHEN** оригинал элемента разгружен на сервер в режиме переноса
- **THEN** в сетке на элементе показывается значок облака
#### Scenario: Метка потерянного элемента
- **WHEN** серверной копии разгруженного элемента больше нет в целевом альбоме
- **THEN** в сетке на элементе показывается перечёркнутый значок облака
#### Scenario: Скачанный элемент в сетке
- **WHEN** серверное фото материализовано на устройстве
- **THEN** элемент показывается в сетке альбома устройства наряду с локальными
## ADDED Requirements
### Requirement: Серверный состав в сетке альбома устройства
Сетка альбома устройства SHALL отражать состав целевого серверного альбома: новые
серверные фото SHALL появляться, а удалённые SHALL исчезать по мере синхронизации, без
ручного обновления.
#### Scenario: Новое фото с сервера
- **WHEN** в целевом серверном альбоме появилось новое фото, и синхронизация прошла
- **THEN** материализованный элемент появляется в сетке альбома устройства
#### Scenario: Фото удалено на сервере
- **WHEN** серверное фото удалено на сервере, и синхронизация прошла
- **THEN** соответствующий элемент исчезает из сетки альбома устройства
#### Scenario: Обновление открытого экрана
- **WHEN** экран альбома устройства открыт, и синхронизация изменила состав
- **THEN** сетка обновляется без ручного действия пользователя