Files
ds-galo/openspec/changes/photo-color-editing/tasks.md
T
iu 502f2766d7 docs(openspec): изменение photo-color-editing
Предложение, дельта-спека photos, дизайн и задачи для инструмента «Цвет».
2026-10-23 21:57:51 +03:00

3.4 KiB

Tasks

1. Backend: цветовая модель и рендер (Go)

  • 1.1 Добавить ColorParams и EditParams.Color в backend/internal/photos/edit.go, обновить Normalized/IsEmpty/JSON с учетом цвета — проверить go build ./internal/photos/
  • 1.2 Реализовать applyColor / applyColorRows и включить цвет в decodeAndAdjust после света (backend/internal/photos/edit_render.go) — проверить go test ./internal/photos/ -run TestColor -v
  • 1.3 Добавить тесты цветовых параметров (edit_test.go): валидация диапазонов, IsEmpty, рендер с цветом — проверить go test ./internal/photos/ -v

2. Фронтенд: цветовая модель (TypeScript)

  • 2.1 Добавить ColorParams, цветовые ползунки, emptyColor, обновить readEditParams/isEmptyEditParams/normalizeEditParams в frontend/src/lib/edit.ts — проверить npm run check (в frontend)
  • 2.2 Реализовать applyColorToPixels в edit.ts, зеркальное серверной математике — проверить npm run test (в frontend, edit.test.ts)
  • 2.3 Поддержать цвет в light-wasm.ts и тест паритета wasmMatchesReference — проверить npm run test (в frontend, light-wasm.test.ts)

3. WASM модуль цвета (Rust)

  • 3.1 Реализовать цветовые операции (баланс белого, вибрация, насыщенность, микшер, точечный цвет) в frontend/wasm/light/ — проверить сборку модуля
  • 3.2 Пересобрать static/light.wasm — проверить файл обновился

4. UI: панель и превью цвета

  • 4.1 Добавить раздел «Цвет» в PhotoEditPanel.svelte (баланс белого, вибрация, насыщенность, микшер, точечный цвет) — проверить открытие/сворачивание панели
  • 4.2 Поддержать цвет вライブ-превью Viewer.svelte через applyLight + applyColor — проверить изменение превью при движении ползунков
  • 4.3 Подключить сохранение цветовых параметров через photosApi.edit — проверить сохранение на сервере

5. Интеграция и проверка

  • 5.1 Проверить эндпоинт правки (POST /api/photos/:id/edit) с цветовыми параметрами — проверить ответ с edit_url
  • 5.2 Проверить сброс цветовых правок — проверить возврат к оригиналу
  • 5.3 Проверить обратную совместимость: фото без ключа color в edit_params рендерятся без цветовых правок — проверить make test (бэкенд)

Workflow follow-up

  • Архивировать изменение после удовлетворения требований ревью проекта.
  • Проверить архивированный результат.