docs(openspec): описать правки редактора, сделанные без спецификаций
Дополнены спеки ui-workspace (сворачивание кривой, живая гистограмма, точки кривой, навигация в зуме, Space к центру), media-objects (роли edit*, привязка отредактированной версии, отдельная очередь рендера правок), photos (рендер по оригиналу) и dev-make-workflow (сборка WASM-модуля).
This commit is contained in:
@@ -25,7 +25,8 @@
|
||||
|
||||
Каждый физический объект SHALL иметь ровно одну запись в слое метаданных с ключом,
|
||||
MIME-типом, размером, габаритами и состоянием; фото SHALL ссылаться на объекты по
|
||||
ролям original, thumb, medium, preview и playback.
|
||||
ролям original, thumb, medium, preview, playback, edit, edit_thumb, edit_medium и
|
||||
edit_preview.
|
||||
|
||||
#### Scenario: Привязка ролей
|
||||
|
||||
@@ -42,10 +43,18 @@ MIME-типом, размером, габаритами и состоянием;
|
||||
- **WHEN** видео обработано
|
||||
- **THEN** медиа ссылается на объект playback наряду с оригиналом и постером
|
||||
|
||||
#### Scenario: Привязка отредактированной версии
|
||||
|
||||
- **WHEN** фото отредактировано и отредактированная версия отрендерена
|
||||
- **THEN** фото ссылается на объекты edit, edit_thumb, edit_medium и edit_preview рядом с
|
||||
исходными вариантами
|
||||
|
||||
### Requirement: Совместные объекты
|
||||
Несколько фото SHALL иметь возможность ссылаться на один и тот же физический
|
||||
объект; перенос и копирование SHALL изменять только ссылки и SHALL не изменять
|
||||
объекты хранилища.
|
||||
объекты хранилища. Отредактированная версия SHALL создаваться и привязываться только
|
||||
к тому фото, чьи правки её породили, в отличие от обычных вариантов, которые
|
||||
разделяются копиями того же оригинала.
|
||||
|
||||
#### Scenario: Копирование
|
||||
- **WHEN** пользователь копирует фото в другой альбом
|
||||
@@ -55,6 +64,16 @@ MIME-типом, размером, габаритами и состоянием;
|
||||
- **WHEN** пользователь переносит фото в другой альбом
|
||||
- **THEN** изменяется только привязка к альбому, объекты хранилища не меняются
|
||||
|
||||
#### Scenario: Правка не распространяется на копии
|
||||
- **WHEN** фото скопировали в другой альбом, а затем отредактировали исходное фото
|
||||
- **THEN** отредактированные объекты привязаны только к отредактированному фото, а копия
|
||||
остаётся в исходном виде
|
||||
|
||||
#### Scenario: Копия отредактированного фото
|
||||
- **WHEN** фото с уже отрендеренной отредактированной версией копируют в другой альбом
|
||||
- **THEN** копия разделяет те же объекты, включая отредактированные, но не наследует
|
||||
параметры правок
|
||||
|
||||
### Requirement: Сборка мусора по ссылкам
|
||||
Объект хранилища SHALL удаляться только когда на него не ссылается ни одно фото и ни один
|
||||
аватар пользователя; удаление альбома и попадание фото в корзину SHALL сохранять объекты.
|
||||
@@ -93,7 +112,9 @@ MIME-типом, размером, габаритами и состоянием;
|
||||
однократным выполнением и повтором при сбое; готовый результат SHALL
|
||||
транслироваться подписчикам альбома. Очередь SHALL поддерживать настраиваемую
|
||||
пропускную способность, SHALL обрабатывать более свежие фото раньше остальных и
|
||||
SHALL различать короткие задания изображений и длительные задания видео.
|
||||
SHALL различать короткие задания изображений и длительные задания видео. Рендер
|
||||
отредактированных версий SHALL использовать отдельную очередь, чтобы правки не
|
||||
блокировали генерацию обычных вариантов.
|
||||
|
||||
#### Scenario: Повтор после рестарта
|
||||
- **WHEN** процесс перезапускается с незавершёнными заданиями
|
||||
@@ -115,6 +136,10 @@ SHALL различать короткие задания изображений
|
||||
- **WHEN** выполняется длительная подготовка видео
|
||||
- **THEN** задание удерживается на весь срок выполнения и не вытесняет генерацию вариантов изображений
|
||||
|
||||
#### Scenario: Рендер правок не блокирует варианты
|
||||
- **WHEN** в фоне выполняется рендер отредактированной версии
|
||||
- **THEN** генерация обычных вариантов продолжается независимо от него
|
||||
|
||||
### Requirement: Аватар пользователя как объект журнала
|
||||
Аватар пользователя SHALL храниться как объект журнала, привязанный к пользователю по ролям,
|
||||
соответствующим нарезкам аватара. Замена и удаление аватара SHALL менять привязку, а объекты
|
||||
|
||||
Reference in New Issue
Block a user